@materia-dex/materia-contracts-proxy
Version:
Proxy contract for the Materia protocol
1,030 lines • 24.5 kB
JSON
{
"compiler": {
"version": "0.8.0+commit.c7dfd78e"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Mint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "NewItem",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "TransferBatch",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "TransferSingle",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "value",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "URI",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "asInteroperable",
"outputs": [
{
"internalType": "contract IEthItemInteroperableInterface",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
}
],
"name": "balanceOfBatch",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "objectIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "burnBatch",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "decimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "emitTransferSingleEvent",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "factoryAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "interoperableInterfaceModel",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "interoperableInterfaceModel",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mainInterfaceVersion",
"outputs": [
{
"internalType": "uint256",
"name": "ethItemInteroperableVersion",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "erc20TokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "address",
"name": "wrapperAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "partialUri",
"type": "string"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "mintETH",
"outputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "address",
"name": "wrapperAddress",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "modelVersion",
"outputs": [
{
"internalType": "uint256",
"name": "modelVersionNumber",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "erc20TokenAddress",
"type": "address"
}
],
"name": "object",
"outputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeBatchTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "source",
"outputs": [
{
"internalType": "address",
"name": "erc20TokenAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ethItemAmount",
"type": "uint256"
}
],
"name": "toInteroperableInterfaceAmount",
"outputs": [
{
"internalType": "uint256",
"name": "interoperableInterfaceAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "erc20WrapperAmount",
"type": "uint256"
}
],
"name": "toMainInterfaceAmount",
"outputs": [
{
"internalType": "uint256",
"name": "mainInterfaceAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "objectId",
"type": "uint256"
}
],
"name": "uri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "All the wrapped ERC20 Tokens will be created following this Model. The minting operation can be done by calling the appropriate method given in this interface. The burning operation will send back the original wrapped ERC20 amount. To initalize it, the original 'init(address,string,string)' function of the EthItem Token Standard will be used, but the first address parameter will be the original ERC20 Source Contract to Wrap, and NOT the ERC20Model, which is always taken by the Contract who creates the Wrapper.",
"kind": "dev",
"methods": {
"balanceOf(address,uint256)": {
"details": "Returns the amount of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address."
},
"balanceOfBatch(address[],uint256[])": {
"details": "xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length."
},
"decimals(uint256)": {
"details": "Returns the decimals of the given token id",
"params": {
"objectId": "the id of the token whose decimals you want to know "
}
},
"factory()": {
"returns": {
"factoryAddress": "the address of the Contract which initialized this EthItem"
}
},
"init(string,string)": {
"details": "Contract Initialization, the caller of this method should be a Contract containing the logic to provide the EthItemERC20WrapperModel to be used to create ERC20-based objectIds",
"params": {
"name": "the chosen name for this NFT",
"symbol": "the chosen symbol (Ticker) for this NFT"
}
},
"isApprovedForAll(address,address)": {
"details": "Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}."
},
"mint(address,uint256)": {
"details": "Mint operation. It inhibits and bypasses the original EthItem Token Standard 'mint(uint256,string)'. The logic will execute a transferFrom call to the given erc20TokenAddress to transfer the chosed amount of tokens",
"params": {
"amount": "The token amount to wrap",
"erc20TokenAddress": "The token address to wrap."
},
"returns": {
"objectId": "the id given by this collection to the given erc20TokenAddress. It can be brand new if it is the first time this collection is created. Otherwhise, the firstly-created objectId value will be used.",
"wrapperAddress": "The address ethItemERC20Wrapper generated after the creation of the returned objectId"
}
},
"modelVersion()": {
"returns": {
"modelVersionNumber": "The version number of the Model, it should be progressive"
}
},
"name(uint256)": {
"details": "Returns the name of the given token id",
"params": {
"objectId": "the id of the token whose name you want to know "
}
},
"object(address)": {
"params": {
"erc20TokenAddress": "the wrapped ERC20 Token address you want to know info about"
},
"returns": {
"objectId": "the id in the collection which correspondes to the given erc20TokenAddress"
}
},
"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
"details": "xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. Emits a {TransferBatch} event. Requirements: - `ids` and `amounts` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value."
},
"safeTransferFrom(address,address,uint256,uint256,bytes)": {
"details": "Transfers `amount` tokens of token type `id` from `from` to `to`. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `amount`. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value."
},
"setApprovalForAll(address,bool)": {
"details": "Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller."
},
"source(uint256)": {
"params": {
"objectId": "the Object Id you want to know info about"
},
"returns": {
"erc20TokenAddress": "the wrapped ERC20 Token address corresponding to the given objectId"
}
},
"supportsInterface(bytes4)": {
"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
},
"symbol(uint256)": {
"details": "Returns the symbol of the given token id",
"params": {
"objectId": "the id of the token whose symbol you want to know "
}
},
"totalSupply(uint256)": {
"details": "Returns the total supply of the given token id",
"params": {
"objectId": "the id of the token whose availability you want to know "
}
},
"uri(uint256)": {
"details": "Returns the uri of the given token id",
"params": {
"objectId": "the id of the token whose uri you want to know "
}
}
},
"title": "ERC20-Based EthItem, version 1.",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"localhost/proxy/contracts/interfaces/IERC20WrapperV1.sol": "IERC20WrapperV1"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 9999
},
"remappings": []
},
"sources": {
"localhost/proxy/contracts/interfaces/IBaseTokenData.sol": {
"keccak256": "0xb02cb2c7ab9fbf94410ea13965f6e62ad4d348b6731396b5a2abddc166ccd6b0",
"license": "MIT",
"urls": [
"bzz-raw://110ed41f2461b9344138b591128b021b92f81d6f476fc709aeb76843a16562b7",
"dweb:/ipfs/QmVJBCMwrVFA6wna2UCypYeY14jxPndotMpYkNztPNpoFj"
]
},
"localhost/proxy/contracts/interfaces/IERC1155.sol": {
"keccak256": "0xaa5e55648d433ba71d84fff3acee448218e17671e2c2ba2eeff1a83fc4b15be5",
"license": "MIT",
"urls": [
"bzz-raw://d1321493739df1579140492d5ee05071da8eb92acad2355a3402d92f6dba8718",
"dweb:/ipfs/QmZsDJqPsJdJBPAv7M8Q2RQPUCJK5HaZeof6kqty45ypcr"
]
},
"localhost/proxy/contracts/interfaces/IERC1155Receiver.sol": {
"keccak256": "0x9c96a59c3d5d16b21c6ebb23b262748059cca44e1ad095fd65beb6b3fdd9ce7a",
"license": "MIT",
"urls": [
"bzz-raw://7eb00d2f71977ce2a09e17fd023f6d73d0982012a522d8e8165a767dd2fe7b7d",
"dweb:/ipfs/QmPRkNMER5Er2LdP5sAAoondAp8R37ULZPpwxVekwf12U4"
]
},
"localhost/proxy/contracts/interfaces/IERC1155Views.sol": {
"keccak256": "0x165133ed153e90263b5cff3656bce55e46aaefc682bed5a593427e9f99c01026",
"license": "MIT",
"urls": [
"bzz-raw://8d8265b2c2503af1140b1bf5e4dd4ba36fdda7268b498288b9f9d40d156a122f",
"dweb:/ipfs/QmNU2dX6ML4S5Kw1kemAxF6qTrcLj9btU5pGmRwAeTRZKC"
]
},
"localhost/proxy/contracts/interfaces/IERC165.sol": {
"keccak256": "0x1e37c0672c8b126c1962605427b70bdb93e6deb37bb086bfa91355072449f810",
"license": "MIT",
"urls": [
"bzz-raw://de7b376c2da4c1ad9fe9e37c31871228778e27a43d7bf9de4a8d8a9a9712f46a",
"dweb:/ipfs/QmPd41MzMckfbxvf2g9W1GPLzFeZt39LCmS4GXGD7AEUbr"
]
},
"localhost/proxy/contracts/interfaces/IERC20.sol": {
"keccak256": "0xa8547ef7a4aabd9c15930d0caaedaf02826ec2345fa5015ba134b4087fd3eb06",
"license": "MIT",
"urls": [
"bzz-raw://ed005dc99628ad306463c7e1909c127fbedcb67ac3035c6ab6c69a438564665c",
"dweb:/ipfs/QmXWTqBYXuNoKq5NgKQE9CzUzBG39a84qTvYTkSMxLZV3f"
]
},
"localhost/proxy/contracts/interfaces/IERC20Data.sol": {
"keccak256": "0xfe4e3c95be7c3f34f3a588d7d643025740b769d48330398a0d6b9e894534e070",
"license": "MIT",
"urls": [
"bzz-raw://5da70697458012ee9e6432d94b1a5258d36902b5f1790c479b0a3f03649de366",
"dweb:/ipfs/QmSpkrRfK4cmVXuBrGb4MDmp9gLNKQrYqgiWCciqRFxJdU"
]
},
"localhost/proxy/contracts/interfaces/IERC20WrapperV1.sol": {
"keccak256": "0xb11ab8431790ecf02d6380277e277a1e44fcf1cbc81973301149e7080157ea4a",
"license": "MIT",
"urls": [
"bzz-raw://1b5dfc1840e8834ba39b1a634fdc2ba67d250adc4f8540f0ee33e16439ccb9cd",
"dweb:/ipfs/QmTyF4vz44kcYuLuZAEW7tBxWuMiNZAojDKopi8oeudgk3"
]
},
"localhost/proxy/contracts/interfaces/IEthItemInteroperableInterface.sol": {
"keccak256": "0xb7820fc5f04f670aa1ce27f25c915faddcc8355b1321353383c51f029772d067",
"license": "MIT",
"urls": [
"bzz-raw://e680c44e472df58af9d9ea1e4d0022155390cb25e9c8939ef814b32883bfad95",
"dweb:/ipfs/QmRtXfDqhZFFRJj1E6fX7YU6YG8fW8yeoAJ3zkhH6RuCxz"
]
},
"localhost/proxy/contracts/interfaces/IEthItemMainInterface.sol": {
"keccak256": "0xb7f4f36ad000e9bd806a344f82b7933edc8b491716e063fe8ccdadf8218c3159",
"license": "MIT",
"urls": [
"bzz-raw://5cdaf6b7b0d2050b84b6247ab5a6e8b047b6f7bca4ee785407f7259864f1ac8b",
"dweb:/ipfs/QmdGkKLMXAqUfGtotBrs6noR6c3QC7eqwmuuwnantscmqs"
]
},
"localhost/proxy/contracts/interfaces/IEthItemModelBase.sol": {
"keccak256": "0x2ef4d851f1127e58dc496490f84ebe5690bff39c48a0ff43338d0087e3b114da",
"license": "MIT",
"urls": [
"bzz-raw://7db0efdf2c2c6c758fa12146e9aa31ebe1fc7b1eaa36d644ada5a7696b22c627",
"dweb:/ipfs/QmXP62zz7qHJtQfxNRoxPsPiJxhXTKaKRfjCHGxetwgYyV"
]
}
},
"version": 1
}