Skip to content
Andy Pan edited this page Nov 27, 2018 · 4 revisions

The interface

Currently Metamonk supports two types of interfaces of proxy contracts, each of which contains a specific function signature and follows a convention:

  1. Traditional: execute(address, uint256, bytes)
  2. Gnosis-compatible: submitTransaction(address, uint256, bytes)

You can see this list in Metamonk when switching identities:

screenshot

The traditional interface is most suitable for designing new contracts.

The Gnosis-compatible interface works as a drop-in replacement of Gnosis' multisig wallet. It mimics what Gnosis' web app has done for you in MetaMask.

The specification of proxy contracts

The three arguments are to, value, data, respectively. The value is transferred from the contract to the destination to, and data is the data attached to this transaction. As a reference, this is a minimal construction. The current Metamonk implementation set value to zero when sending transactions to proxy contract, in case that the function is non-payable. As a result, always check whether the contract balance is sufficient before performing stored operations in the proxy contract.

The above convention is hardcoded for now, but we are planning to make it fully-programmable to support as many proxy contracts as possible.

Clone this wiki locally