智能合约的相互调用(call,delegatecall,callcode)

智能合约的相互调用(call,delegatecall,callcode)

在函数调用的过程中, Solidity 中的内置变量 msg 会随着调用的发起而改变,msg 保存了调用方的信息包括:调用发起的地址,交易金额,被调用函数字符序列等
三种调用方式的异同点:

  1. call: 最常用的调用方式,调用后内置变量 msg的值修改为调用者,执行环境为被调用者运行环境(合约的 storage)。
  2. delegatecall:调用后内置变量msg 的值不会修改为调用者,但执行环境为调用者的运行环境。(相当于复制被调用者的代码到调用者合约)
  3. callcode:调用后内置变量msg 的值修改为调用者,但执行环境为调用者的运行环境。

你可能感兴趣的:(智能合约的相互调用(call,delegatecall,callcode))