-func (m *Manager) CreatePeginContractAddress(accountID string, change bool) (string, []byte, []byte, error) {
- // 通过配置获取
- claimCtrlProg, err := m.CreateAddress(accountID, change)
- if err != nil {
- return "", nil, nil, err
- }
- claimScript := claimCtrlProg.ControlProgram
-
- peginContractPrograms, err := pegin_contract.GetPeginContractPrograms(claimScript)
- if err != nil {
- return "", nil, nil, err
- }
-
- scriptHash := crypto.Sha256(peginContractPrograms)
-
- address, err := common.NewPeginAddressWitnessScriptHash(scriptHash, &consensus.ActiveNetParams)
- if err != nil {
- return "", nil, nil, err
- }
-
- redeemContract := address.ScriptAddress()
-
- program := []byte{}
- program, err = vmutil.P2WSHProgram(redeemContract)
- if err != nil {
- return "", nil, nil, err
- }
-
- return address.EncodeAddress(), program, claimScript, nil
-
-}
-
-func (m *Manager) GetPeginContractControlPrograms(claimScript []byte) (string, []byte) {
-
- peginContractPrograms, err := pegin_contract.GetPeginContractPrograms(claimScript)
- if err != nil {
- return "", nil
- }
- scriptHash := crypto.Sha256(peginContractPrograms)
-
- address, err := common.NewPeginAddressWitnessScriptHash(scriptHash, &consensus.ActiveNetParams)
- if err != nil {
- return "", nil
- }
-
- redeemContract := address.ScriptAddress()
-
- program := []byte{}
- program, err = vmutil.P2WSHProgram(redeemContract)
- if err != nil {
- return "", nil
- }
-
- return address.EncodeAddress(), program