【智能合约】函数调用中的上下文变量

上下文变量有三个:block transaction message

  • 外部账号调用函数时,函数的背后都对应着交易transaction
  • 内部账号调用另外一个合约时,也是用一个类似于transaction的数据结构去调用的,这个结构叫做message
  • msg.sender:address
  • msg.data;
  • msg.value:eth

举个例子
【智能合约】函数调用中的上下文变量_第1张图片
解读

  • 一次外部账号对合约的调用,可能引发一系列合约之间的调用;所有这些调用,背后是一个block,一个transaction
  • 直接被外部账号调用的那个函数,transaction和message是同一的
  • 调用跨越合约时,产生新的message
  • 合约内部的调用,背后是一个message,message没有变化
    -transaction,internal transaction

你可能感兴趣的:(区块链,智能合约)