Proxy系の仕様
定義
ここではProxyは、コントラクト上で
target contractのアドレスを管理し
calldataを(引数ではなく)直接取得して用いる
ことによりsenderから実行されたtransactionを透過的にtarget contract上で実行出来るようにするもののことを指す。
主な利用用途はコントラクトをupgradableにするなど
ref: https://blog.zeppelinos.org/proxy-patterns/
delegated execution系との違い
delegated execution系の仕様は
target contractのアドレスをsenderが指定し
calldata(に該当するもの)を引数で明示的に渡して実行する
ことにより第三者が代わりにtransactionを実行するのを容易にするためのものを指す(たぶん)。
ref: delegated execution系の仕様
仕様
ERC: Proxy standard https://github.com/ethereum/EIPs/issues/121
実装
https://github.com/zeppelinos/zos/blob/master/packages/lib/contracts/upgradeability/Proxy.sol
https://github.com/gnosis/safe-contracts/blob/development/contracts/proxies/Proxy.sol
#Solidity #EIP #ERC