-
Notifications
You must be signed in to change notification settings - Fork 14
Transaction部分修改
FZQA edited this page Oct 23, 2018
·
3 revisions
|——p2p广播交易-收到交易-继续广播和处理交易
初始化-产生交易-签名-本地交易池|——处理交易—打包区块—共识上链-广播区块
eth.sendMintTransaction()
↓↓↓
func SendMintTransaction() internal/ethapi/api.go
↓↓↓
args.toTransaction() //原字段写入
tx.SetTxCode() //新添加字段Code写入
↓↓↓
func SetTxCode() core/types/transaction.go
Transaction struct--txdata struct--code uint8(新添加字段Code)
通过hash得到区块信息
eth.getTransaction()
↓↓↓
func GetTransactionByHash() internal/ethapi/api.go
↓↓↓
ReadTransaction()
newRPCTransaction()
↓↓↓
tx.GetTxCodeStr() core/types/transaction.go
RPCTransaction struct --code string(新添加字段Code)
执行交易(修改金额)
func commitTransactions() miner/worker.go
↓↓↓
func commitTransaction() miner/worker.go
↓↓↓
func AplplyTransaction() core/state_processor.go
↓↓↓
func ApplyMessage() core/state_transition.go
↓↓↓
func TransitionDb() core/state_transition.go
↓↓↓
evm.Call()
func Call() core/vm/evm.go
↓↓↓
evm.Transfer()
func Transfer() //修改金额 core/evm.go
↓↓↓
SubBalance() AddBalance()