新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

Commit e638e2d9 authored by shaozhuguang's avatar shaozhuguang

Merge branch 'v2.3.3_qc_fix_gasbug_zxl' into 'v2.3.3_qc' (merge request !279)

v2.3.3_qc_fix_gasbug_zxl
parents db3f9a6b 1c4bca80
......@@ -5,6 +5,8 @@ import (
"errors"
"fmt"
configPb "chainmaker.org/chainmaker/pb-go/v2/config"
"chainmaker.org/chainmaker/common/v2/crypto"
"chainmaker.org/chainmaker/pb-go/v2/store"
......@@ -258,6 +260,30 @@ func (g *AccountManagerRuntime) getMethodPayer(
return []byte(payerAddress), nil
}
func getPayerAddrByTx(tx *commonPb.Transaction, ac protocol.AccessControlProvider, cfg *configPb.ChainConfig) ([]byte,
error) {
txPayer := tx.GetPayer()
if txPayer != nil {
member, err1 := ac.NewMember(txPayer.GetSigner())
if err1 != nil {
return nil, fmt.Errorf("failed to create access control member from pb, err = %v", err1)
}
addr, err2 := utils.GetStrAddrFromMember(member, cfg.Vm.AddrType)
if err2 != nil {
return nil, fmt.Errorf("member to address failed, err = %v", err2)
}
//utils.GetStrAddrFromMember计算出的地址已经根据地址类型做了区分,只是至信链地址没有加"ZX"前缀
if cfg.Vm.AddrType == configPb.AddrType_ZXL {
addr = "ZX" + addr
}
return []byte(addr), nil
}
return nil, nil
}
//nolint: gocyclo
func (g *AccountManagerRuntime) getTxPayer(
txSimContext protocol.TxSimContext, params map[string][]byte) ([]byte, error) {
......@@ -285,18 +311,9 @@ func (g *AccountManagerRuntime) getTxPayer(
g.log.Debugf("GetTxWithInfo was called, txInfo = %#v", txInfo)
tx := txInfo.Transaction
if txPayer := tx.GetPayer(); txPayer != nil {
member, err1 := ac.NewMember(txPayer.GetSigner())
if err1 != nil {
return nil, fmt.Errorf("failed to create access control member from pb, err = %v", err1)
}
addr, err2 := utils.GetStrAddrFromMember(member, chainConfig.Vm.AddrType)
if err2 != nil {
return nil, fmt.Errorf("member to address failed, err = %v", err2)
}
return []byte(addr), nil
addr, err1 := getPayerAddrByTx(tx, ac, chainConfig)
if addr != nil && err1 == nil {
return addr, nil
}
txPayload := tx.GetPayload()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment