Execution Delegate

The ExecutionDelegate contract is a proxy contract to manage user token approvals.

Methods

transferERC721()

function transferERC721(address collection, address from, address to, uint256 tokenId)

Transfer a ERC721 token using safeTransferFrom.

Parameter Name
Type
Description

collection

address

address of the NFT collection

from

address

address to send the NFT

to

address

address to receive the NFT

tokenId

uint256

token id to transfer

transferERC1155()

function transferERC1155(address collection, address from, address to, uint256 tokenId, uint256 amount)

Transfer ERC1155 tokens using safeTransferFrom.

Parameter Name
Type
Description

collection

address

address of the NFT collection

from

address

address to send the NFT

to

address

address to receive the NFT

tokenId

uint256

token id to transfer

amount

uint256

amount of tokens to transfer

transferERC20()

function transferERC20(address token, address from, address to, uint256 amount)

Transfer ERC20 tokens.

Parameter Name
Type
Description

token

address

address of the token

from

address

address to send the tokens

to

address

address to receive the tokens

amount

uint256

amount of tokens to transfer

ABI

Execution Delegate ABI
{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_contract",
          "type": "address"
        }
      ],
      "name": "approveContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_contract",
          "type": "address"
        }
      ],
      "name": "denyContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "grantApproval",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "revokeApproval",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "collection",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferERC1155",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferERC20",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "collection",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferERC721",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "collection",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferERC721Unsafe",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "approveContract(address)": "07f7aafb",
    "denyContract(address)": "b7e2077e",
    "grantApproval()": "a8034df1",
    "revokeApproval()": "90d02b3c",
    "transferERC1155(address,address,address,uint256,uint256)": "74a9402e",
    "transferERC20(address,address,address,uint256)": "da3e8ce4",
    "transferERC721(address,address,address,uint256)": "789f93f6",
    "transferERC721Unsafe(address,address,address,uint256)": "ca72da8e"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"approveContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"denyContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"grantApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokeApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferERC1155\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferERC721Unsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IExecutionDelegate.sol\":\"IExecutionDelegate\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IExecutionDelegate.sol\":{\"keccak256\":\"0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d\",\"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.16+commit.07a7930e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_contract",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveContract"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_contract",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "denyContract"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "grantApproval"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revokeApproval"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "collection",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferERC1155"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferERC20"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "collection",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferERC721"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "collection",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferERC721Unsafe"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":@chainlink/=lib/chainlink/",
        ":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        ":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        ":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/",
        ":ds-test/=lib/forge-std/lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/interfaces/IExecutionDelegate.sol": "IExecutionDelegate"
      },
      "libraries": {}
    },
    "sources": {
      "src/interfaces/IExecutionDelegate.sol": {
        "keccak256": "0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401",
        "urls": [
          "bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d",
          "dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/interfaces/IExecutionDelegate.sol",
    "id": 49195,
    "exportedSymbols": {
      "IExecutionDelegate": [
        49194
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:673:111",
    "nodes": [
      {
        "id": 49131,
        "nodeType": "PragmaDirective",
        "src": "32:23:111",
        "nodes": [],
        "literals": [
          "solidity",
          "0.8",
          ".16"
        ]
      },
      {
        "id": 49194,
        "nodeType": "ContractDefinition",
        "src": "57:648:111",
        "nodes": [
          {
            "id": 49136,
            "nodeType": "FunctionDefinition",
            "src": "92:53:111",
            "nodes": [],
            "functionSelector": "07f7aafb",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approveContract",
            "nameLocation": "101:15:111",
            "parameters": {
              "id": 49134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49133,
                  "mutability": "mutable",
                  "name": "_contract",
                  "nameLocation": "125:9:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49136,
                  "src": "117:17:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49132,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "117:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "116:19:111"
            },
            "returnParameters": {
              "id": 49135,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "144:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49141,
            "nodeType": "FunctionDefinition",
            "src": "150:50:111",
            "nodes": [],
            "functionSelector": "b7e2077e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "denyContract",
            "nameLocation": "159:12:111",
            "parameters": {
              "id": 49139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49138,
                  "mutability": "mutable",
                  "name": "_contract",
                  "nameLocation": "180:9:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49141,
                  "src": "172:17:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49137,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "172:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "171:19:111"
            },
            "returnParameters": {
              "id": 49140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "199:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49144,
            "nodeType": "FunctionDefinition",
            "src": "205:35:111",
            "nodes": [],
            "functionSelector": "90d02b3c",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "revokeApproval",
            "nameLocation": "214:14:111",
            "parameters": {
              "id": 49142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "228:2:111"
            },
            "returnParameters": {
              "id": 49143,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "239:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49147,
            "nodeType": "FunctionDefinition",
            "src": "245:34:111",
            "nodes": [],
            "functionSelector": "a8034df1",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "grantApproval",
            "nameLocation": "254:13:111",
            "parameters": {
              "id": 49145,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "267:2:111"
            },
            "returnParameters": {
              "id": 49146,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "278:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49158,
            "nodeType": "FunctionDefinition",
            "src": "285:102:111",
            "nodes": [],
            "functionSelector": "ca72da8e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferERC721Unsafe",
            "nameLocation": "294:20:111",
            "parameters": {
              "id": 49156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49149,
                  "mutability": "mutable",
                  "name": "collection",
                  "nameLocation": "323:10:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49158,
                  "src": "315:18:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49148,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "315:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49151,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "343:4:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49158,
                  "src": "335:12:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49150,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "335:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49153,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "357:2:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49158,
                  "src": "349:10:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "349:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49155,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "369:7:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49158,
                  "src": "361:15:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 49154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "361:7:111",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "314:63:111"
            },
            "returnParameters": {
              "id": 49157,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "386:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49169,
            "nodeType": "FunctionDefinition",
            "src": "393:96:111",
            "nodes": [],
            "functionSelector": "789f93f6",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferERC721",
            "nameLocation": "402:14:111",
            "parameters": {
              "id": 49167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49160,
                  "mutability": "mutable",
                  "name": "collection",
                  "nameLocation": "425:10:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49169,
                  "src": "417:18:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "417:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49162,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "445:4:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49169,
                  "src": "437:12:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "437:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49164,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "459:2:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49169,
                  "src": "451:10:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49163,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "451:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49166,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "471:7:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49169,
                  "src": "463:15:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 49165,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:7:111",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "416:63:111"
            },
            "returnParameters": {
              "id": 49168,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "488:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49182,
            "nodeType": "FunctionDefinition",
            "src": "495:113:111",
            "nodes": [],
            "functionSelector": "74a9402e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferERC1155",
            "nameLocation": "504:15:111",
            "parameters": {
              "id": 49180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49171,
                  "mutability": "mutable",
                  "name": "collection",
                  "nameLocation": "528:10:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49182,
                  "src": "520:18:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49170,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "520:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49173,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "548:4:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49182,
                  "src": "540:12:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49172,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "540:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49175,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "562:2:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49182,
                  "src": "554:10:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49174,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "554:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49177,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "574:7:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49182,
                  "src": "566:15:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 49176,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "566:7:111",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49179,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "591:6:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49182,
                  "src": "583:14:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 49178,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "583:7:111",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "519:79:111"
            },
            "returnParameters": {
              "id": 49181,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "607:0:111"
            },
            "scope": 49194,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 49193,
            "nodeType": "FunctionDefinition",
            "src": "614:89:111",
            "nodes": [],
            "functionSelector": "da3e8ce4",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferERC20",
            "nameLocation": "623:13:111",
            "parameters": {
              "id": 49191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 49184,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "645:5:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49193,
                  "src": "637:13:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "637:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49186,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "660:4:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49193,
                  "src": "652:12:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49185,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "652:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49188,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "674:2:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49193,
                  "src": "666:10:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 49187,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "666:7:111",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49190,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "686:6:111",
                  "nodeType": "VariableDeclaration",
                  "scope": 49193,
                  "src": "678:14:111",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 49189,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "678:7:111",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "636:57:111"
            },
            "returnParameters": {
              "id": 49192,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "702:0:111"