chain33
chain33 copied to clipboard
平行链执行器地址格式兼容
// CheckTx default:,tx.To address points to the contract address
func (d *DriverBase) CheckTx(tx *types.Transaction, index int) error {
execer := string(tx.Execer)
if ExecAddress(execer) != tx.To {
return types.ErrToAddrNotSameToExecAddr
}
return nil
}
- 交易执行器地址, 采用默认的地址格式计算
- 平行链交易结构To字段, 需要于对应的执行器地址一致, 在主链交易检查阶段校验
- 当主链和平行链配置的默认地址格式不一致,主链计算出的执行器地址和平行链交易中的To不一致,交易失败
可以解析平行链交易To地址格式,主链计算对应格式的执行器地址并进行检验, 需要增加fork处理