Expand description
Generated by the following Solidity interface…
interface ZeroXTransformERC20Feature {
struct TransformERC20Args {
address payable taker;
address inputToken;
address outputToken;
uint256 inputTokenAmount;
uint256 minOutputTokenAmount;
Transformation[] transformations;
bool useSelfBalance;
address payable recipient;
}
struct Transformation {
uint32 deploymentNonce;
bytes data;
}
event QuoteSignerUpdated(address quoteSigner);
event TransformedERC20(address indexed taker, address inputToken, address outputToken, uint256 inputTokenAmount, uint256 outputTokenAmount);
event TransformerDeployerUpdated(address transformerDeployer);
function FEATURE_NAME() external view returns (string memory);
function FEATURE_VERSION() external view returns (uint256);
function _transformERC20(TransformERC20Args memory args) external payable returns (uint256 outputTokenAmount);
function createTransformWallet() external returns (address wallet);
function getQuoteSigner() external view returns (address signer);
function getTransformWallet() external view returns (address wallet);
function getTransformerDeployer() external view returns (address deployer);
function migrate(address transformerDeployer) external returns (bytes4 success);
function setQuoteSigner(address quoteSigner) external;
function setTransformerDeployer(address transformerDeployer) external;
function transformERC20(address inputToken, address outputToken, uint256 inputTokenAmount, uint256 minOutputTokenAmount, Transformation[] memory transformations) external payable returns (uint256 outputTokenAmount);
}
…which was generated by the following JSON ABI:
[
{
"type": "function",
"name": "FEATURE_NAME",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "FEATURE_VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "_transformERC20",
"inputs": [
{
"name": "args",
"type": "tuple",
"internalType": "struct ITransformERC20Feature.TransformERC20Args",
"components": [
{
"name": "taker",
"type": "address",
"internalType": "address payable"
},
{
"name": "inputToken",
"type": "address",
"internalType": "contract IERC20Token"
},
{
"name": "outputToken",
"type": "address",
"internalType": "contract IERC20Token"
},
{
"name": "inputTokenAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minOutputTokenAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "transformations",
"type": "tuple[]",
"internalType": "struct ITransformERC20Feature.Transformation[]",
"components": [
{
"name": "deploymentNonce",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
]
},
{
"name": "useSelfBalance",
"type": "bool",
"internalType": "bool"
},
{
"name": "recipient",
"type": "address",
"internalType": "address payable"
}
]
}
],
"outputs": [
{
"name": "outputTokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "createTransformWallet",
"inputs": [],
"outputs": [
{
"name": "wallet",
"type": "address",
"internalType": "contract IFlashWallet"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getQuoteSigner",
"inputs": [],
"outputs": [
{
"name": "signer",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getTransformWallet",
"inputs": [],
"outputs": [
{
"name": "wallet",
"type": "address",
"internalType": "contract IFlashWallet"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getTransformerDeployer",
"inputs": [],
"outputs": [
{
"name": "deployer",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "migrate",
"inputs": [
{
"name": "transformerDeployer",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "success",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setQuoteSigner",
"inputs": [
{
"name": "quoteSigner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setTransformerDeployer",
"inputs": [
{
"name": "transformerDeployer",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "transformERC20",
"inputs": [
{
"name": "inputToken",
"type": "address",
"internalType": "contract IERC20Token"
},
{
"name": "outputToken",
"type": "address",
"internalType": "contract IERC20Token"
},
{
"name": "inputTokenAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minOutputTokenAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "transformations",
"type": "tuple[]",
"internalType": "struct ITransformERC20Feature.Transformation[]",
"components": [
{
"name": "deploymentNonce",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
]
}
],
"outputs": [
{
"name": "outputTokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"type": "event",
"name": "QuoteSignerUpdated",
"inputs": [
{
"name": "quoteSigner",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "TransformedERC20",
"inputs": [
{
"name": "taker",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "inputToken",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "outputToken",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "inputTokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "outputTokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "TransformerDeployerUpdated",
"inputs": [
{
"name": "transformerDeployer",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
}
]
Structs§
- Function with signature
FEATURE_NAME()
and selector0x6ae4b4f7
. - Container type for the return parameters of the
FEATURE_NAME()
function. - Function with signature
FEATURE_VERSION()
and selector0x031b905c
. - Container type for the return parameters of the
FEATURE_VERSION()
function. - Event with signature
QuoteSignerUpdated(address)
and selector0xf5550c5eea19b48ac6eb5f03abdc4f59c0a60697abb3d973cd68669703b5c8b9
. - Event with signature
TransformedERC20(address,address,address,uint256,uint256)
and selector0x0f6672f78a59ba8e5e5b5d38df3ebc67f3c792e2c9259b8d97d7f00dd78ba1b3
. - Event with signature
TransformerDeployerUpdated(address)
and selector0xfd45604abad79c16e23348a137ed8292661be1b8eba6e4806ebed6833b1c046a
. - Function with signature
_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bool,address))
and selector0x8aa6539b
. - Container type for the return parameters of the
_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bool,address))
function. - Function with signature
createTransformWallet()
and selector0x287b071b
. - Container type for the return parameters of the
createTransformWallet()
function. - Function with signature
getQuoteSigner()
and selector0x9f1ec78b
. - Container type for the return parameters of the
getQuoteSigner()
function. - Function with signature
getTransformWallet()
and selector0xf028e9be
. - Container type for the return parameters of the
getTransformWallet()
function. - Function with signature
getTransformerDeployer()
and selector0x4d54cdb6
. - Container type for the return parameters of the
getTransformerDeployer()
function. - Function with signature
migrate(address)
and selector0xce5494bb
. - Container type for the return parameters of the
migrate(address)
function. - Function with signature
setQuoteSigner(address)
and selector0x56ce180a
. - Container type for the return parameters of the
setQuoteSigner(address)
function. - Function with signature
setTransformerDeployer(address)
and selector0x87c96419
. - Container type for the return parameters of the
setTransformerDeployer(address)
function. - Function with signature
transformERC20(address,address,uint256,uint256,(uint32,bytes)[])
and selector0x415565b0
. - Container type for the return parameters of the
transformERC20(address,address,uint256,uint256,(uint32,bytes)[])
function.
Enums§
- Container for all the
ZeroXTransformERC20Feature
function calls. - Container for all the
ZeroXTransformERC20Feature
events.