From f04fe156ac95d97b9e062623409aa4b29d0fcbf8 Mon Sep 17 00:00:00 2001 From: Alex Coseru Date: Mon, 14 Feb 2022 10:35:55 +0200 Subject: [PATCH] refactor (#314) * refactor contracts usage * add docker support for barge * add tests --- .dockerignore | 7 + .github/workflows/tests.yml | 55 +- Dockerfile | 9 + README.md | 22 +- abis/BFactory.json | 398 - abis/BMath.json | 314 - abis/BPool.json | 1757 - abis/BToken.json | 489 - abis/Dispenser.json | 371 - abis/ERC20Roles.json | 234 - abis/ERC20Template.json | 1554 - abis/ERC20TemplateEnterprise.json | 1693 - abis/ERC721Factory.json | 1273 - abis/ERC721Template.json | 1616 - abis/FactoryRouter.json | 1420 - abis/FixedRateExchange.json | 930 - docker-entrypoint.sh | 17 + package-lock.json | 67214 +++++----------- package.json | 46 +- scripts/generatebargesubgraph.js | 57 - scripts/generatenetworkssubgraphs.js | 47 + .../subgraph.yaml | 55 +- subgraph.bsc.yaml | 213 - subgraph.catenaxtestnet.yaml | 213 - subgraph.celoalfajores.yaml | 213 - subgraph.energyweb.yaml | 213 - subgraph.gaiaxtestnet.yaml | 213 - subgraph.moonbeamalpha.yaml | 207 - subgraph.moonriver.yaml | 213 - subgraph.mumbai.yaml | 207 - subgraph.polygon.yaml | 213 - subgraph.ropsten.yaml | 213 - subgraph.yaml | 53 +- test/integration/Datatokens.test.ts | 44 - test/integration/Dispenser.test.ts | 235 - test/integration/SimplePublishConsume.test.ts | 193 + 36 files changed, 21819 insertions(+), 60402 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile delete mode 100644 abis/BFactory.json delete mode 100644 abis/BMath.json delete mode 100644 abis/BPool.json delete mode 100644 abis/BToken.json delete mode 100644 abis/Dispenser.json delete mode 100644 abis/ERC20Roles.json delete mode 100644 abis/ERC20Template.json delete mode 100644 abis/ERC20TemplateEnterprise.json delete mode 100644 abis/ERC721Factory.json delete mode 100644 abis/ERC721Template.json delete mode 100644 abis/FactoryRouter.json delete mode 100644 abis/FixedRateExchange.json create mode 100755 docker-entrypoint.sh delete mode 100644 scripts/generatebargesubgraph.js create mode 100644 scripts/generatenetworkssubgraphs.js rename subgraph.rinkeby.yaml => scripts/subgraph.yaml (75%) delete mode 100644 subgraph.bsc.yaml delete mode 100644 subgraph.catenaxtestnet.yaml delete mode 100644 subgraph.celoalfajores.yaml delete mode 100644 subgraph.energyweb.yaml delete mode 100644 subgraph.gaiaxtestnet.yaml delete mode 100644 subgraph.moonbeamalpha.yaml delete mode 100644 subgraph.moonriver.yaml delete mode 100644 subgraph.mumbai.yaml delete mode 100644 subgraph.polygon.yaml delete mode 100644 subgraph.ropsten.yaml delete mode 100644 test/integration/Datatokens.test.ts delete mode 100644 test/integration/Dispenser.test.ts create mode 100644 test/integration/SimplePublishConsume.test.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fc44938 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +contracts +.env.local +.env +build +coverage +__mocks__ \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4ac6f73..81e95cd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,47 +15,56 @@ jobs: max-parallel: 1 steps: - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 + - uses: actions/setup-node@v2 with: node-version: '16' - - - name: Cache node modules + - name: Cache node_modules uses: actions/cache@v2 env: cache-name: cache-node-modules with: path: ~/.npm - key: ${{ runner.os }}-lint-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: ${{ runner.os }}-lint-${{ env.cache-name }}- + key: ${{ runner.os }}-test-integration-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: ${{ runner.os }}-test-integration-${{ env.cache-name }}- - - uses: actions/checkout@v2 - name: Checkout Barge + # Env var expansion workaround + # https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable + - name: Set ADDRESS_FILE + run: echo "ADDRESS_FILE=${HOME}/.ocean/ocean-contracts/artifacts/address.json" >> $GITHUB_ENV + + - name: Checkout Barge + uses: actions/checkout@v2 with: repository: 'oceanprotocol/barge' path: 'barge' - - run: npm ci + ref: v4 + + - name: Login to Docker Hub + if: ${{ env.DOCKERHUB_PASSWORD && env.DOCKERHUB_USERNAME }} + run: | + echo "Login to Docker Hub";echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Run Barge working-directory: ${{ github.workspace }}/barge - env: - ADDRESS_FILE: ${HOME}/.ocean/ocean-contracts/artifacts/address.json run: | - bash -x start_ocean.sh --with-thegraph --no-dashboard 2>&1 > start_ocean.log & - for i in $(seq 1 1500); do - sleep 5 + bash -x start_ocean.sh --with-thegraph --skip-subgraph-deploy --no-dashboard 2>&1 > start_ocean.log & + + - run: npm ci + + - name: Wait for contracts deployment + working-directory: ${{ github.workspace }}/barge + run: | + for i in $(seq 1 250); do + sleep 10 [ -f "$HOME/.ocean/ocean-contracts/artifacts/ready" ] && break done - cat "$HOME/.ocean/ocean-contracts/artifacts/address.json" - - run: npm run bargesetup - env: - ADDRESS_FILE: /home/runner/.ocean/ocean-contracts/artifacts/address.json + - name: create and deploy subgraph run: | - npm run codegen - npm run build - npm run create:local-barge - npm run deploy:local-barge + npm run quickstart:development sleep 20 env: ADDRESS_FILE: /home/runner/.ocean/ocean-contracts/artifacts/address.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..19cc595 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:16 + +COPY package*.json /usr/src/app/ +WORKDIR /usr/src/app +RUN npm install + +COPY . /usr/src/app +ENV DEPLOY_SUBGRAPH=true +ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 5ed1dc2..c5a1618 100644 --- a/README.md +++ b/README.md @@ -137,27 +137,35 @@ cd ocean-subgraph npm i ``` -3. Let the components know where to pickup the smart contract addresses: +3. If you use barge, then let the components know where to pickup the smart contract addresses. For production networks, skip this step ``` export ADDRESS_FILE="${HOME}/.ocean/ocean-contracts/artifacts/address.json" ``` -4. Generate the subgraph +4. Generate the subgraphs ```bash +node ./scripts/generatenetworkssubgraphs.js npm run codegen -npm run bargesetup ``` -5. To deploy a subgraph connected to Barge, use: +To generate subgraph for just one network, add the network name as parameter +```bash +node ./scripts/generatenetworkssubgraphs.js rinkeby +``` + +5. To deploy a subgraph use: + +npm run create:local-[network] +npm run deploy:local-[network] ```bash -npm run create:local-barge -npm run deploy:local-barge +npm run create:local-development +npm run deploy:local-development ``` - Alternatively, if you want to get the sub-graph quickly running on barge, you can run `npm run quickstart:barge` which combines steps 3-5 above. -You now have a local graph-node running on http://localhost:9000 +You now have a local graph-node running on http://127.0.0.1:9000/subgraphs/name/oceanprotocol/ocean-subgraph/graphql diff --git a/abis/BFactory.json b/abis/BFactory.json deleted file mode 100644 index 51bfdca..0000000 --- a/abis/BFactory.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BFactory", - "sourceName": "contracts/pools/balancer/BFactory.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_bpoolTemplate", - "type": "address" - }, - { - "internalType": "address", - "name": "_opcCollector", - "type": "address" - }, - { - "internalType": "address[]", - "name": "_preCreatedPools", - "type": "address[]" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newBPoolAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "registeredBy", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "bpoolTemplateAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "ssAddress", - "type": "address" - } - ], - "name": "BPoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "InstanceDeployed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "PoolTemplateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "PoolTemplateRemoved", - "type": "event" - }, - { - "inputs": [], - "name": "BONE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "BPOW_PRECISION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXIT_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INIT_POOL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_IN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_OUT_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_TOTAL_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BALANCE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolTemplates", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "poolTemplate", - "type": "address" - } - ], - "name": "isPoolTemplate", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "opcCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "poolTemplates", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000a3338038062000a33833981016040819052620000349162000378565b6001600160a01b038316620000a65760405162461bcd60e51b815260206004820152602d60248201527f42466163746f72793a20696e76616c69642062706f6f6c2074656d706c61746560448201526c207a65726f206164647265737360981b60648201526084015b60405180910390fd5b6001600160a01b038216620000fe5760405162461bcd60e51b815260206004820152601660248201527f42466163746f72793a207a65726f20616464726573730000000000000000000060448201526064016200009d565b600080546001600160a01b0319166001600160a01b0384161790556200012483620001dc565b805115620001d35760005b8151811015620001d15760006001600160a01b0316336001600160a01b031683838151811062000163576200016362000472565b602090810291909101810151604080516000808252938101849052908101929092526001600160a01b0316907fbb6121447d29a04cc37bfd93cdf6a9dd08229f2d941116c1528f04698c4e790e9060600160405180910390a480620001c88162000488565b9150506200012f565b505b505050620004b2565b6001600160a01b038116620002485760405162461bcd60e51b815260206004820152602b60248201527f466163746f7279526f757465723a20496e76616c696420706f6f6c54656d706c60448201526a617465206164647265737360a81b60648201526084016200009d565b6200025381620002d3565b620002d05760018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051909133917fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac9190a35b50565b6000805b6001548110156200033c57826001600160a01b03166001828154811062000302576200030262000472565b6000918252602090912001546001600160a01b03161415620003275750600192915050565b80620003338162000488565b915050620002d7565b50600092915050565b80516001600160a01b03811681146200035d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200038e57600080fd5b620003998462000345565b92506020620003aa81860162000345565b60408601519093506001600160401b0380821115620003c857600080fd5b818701915087601f830112620003dd57600080fd5b815181811115620003f257620003f262000362565b8060051b604051601f19603f830116810181811085821117156200041a576200041a62000362565b60405291825284820192508381018501918a8311156200043957600080fd5b938501935b828510156200046257620004528562000345565b845293850193928501926200043e565b8096505050505050509250925092565b634e487b7160e01b600052603260045260246000fd5b6000600019821415620004ab57634e487b7160e01b600052601160045260246000fd5b5060010190565b61057180620004c26000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063b0e0d136116100ad578063c07c00fe11610071578063c07c00fe146101f6578063c36596a61461017f578063c6580d1214610219578063e4a28a5214610161578063ec0930211461022157600080fd5b8063b0e0d136146101d6578063b7b800a4146101d6578063ba019dab146101de578063bc063e1a146101e6578063bc694ea2146101ee57600080fd5b806350cbbe76116100f457806350cbbe76146101a357806376c7a3c7146101b6578063867378c5146101be5780639381cd2b146101c6578063992e2a92146101ce57600080fd5b8063038142381461013157806309a3bbe414610161578063189d00ca14610177578063218b53821461017f578063241c7a6d1461018e575b600080fd5b600054610144906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610169610229565b604051908152602001610158565b61016961023f565b610169670de0b6b3a764000081565b610196610256565b60405161015891906103ee565b6101446101b136600461043b565b6102b8565b6101696102e2565b6101696102f7565b61016961030e565b610169610321565b610169600281565b610169600181565b61016961033f565b610169610352565b610209610204366004610454565b610371565b6040519015158152602001610158565b610169600081565b6101696103db565b61023c670de0b6b3a7640000603261049a565b81565b61023c6402540be400670de0b6b3a76400006104b9565b606060018054806020026020016040519081016040528092919081815260200182805480156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b600181815481106102c857600080fd5b6000918252602090912001546001600160a01b0316905081565b61023c620f4240670de0b6b3a76400006104b9565b61023c64e8d4a51000670de0b6b3a76400006104b9565b61023c670de0b6b3a7640000606461049a565b6103346003670de0b6b3a76400006104b9565b61023c9060016104db565b61023c600a670de0b6b3a76400006104b9565b6001610367670de0b6b3a7640000600261049a565b61023c91906104f3565b6000805b6001548110156103d257826001600160a01b03166001828154811061039c5761039c61050a565b6000918252602090912001546001600160a01b031614156103c05750600192915050565b806103ca81610520565b915050610375565b50600092915050565b61023c6002670de0b6b3a76400006104b9565b6020808252825182820181905260009190848201906040850190845b8181101561042f5783516001600160a01b03168352928401929184019160010161040a565b50909695505050505050565b60006020828403121561044d57600080fd5b5035919050565b60006020828403121561046657600080fd5b81356001600160a01b038116811461047d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156104b4576104b4610484565b500290565b6000826104d657634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156104ee576104ee610484565b500190565b60008282101561050557610505610484565b500390565b634e487b7160e01b600052603260045260246000fd5b600060001982141561053457610534610484565b506001019056fea2646970667358221220b669d4fa5939209122b2ff485080318e52d8d3c1b491fc9de92ae6cb2d7fa6ad64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063b0e0d136116100ad578063c07c00fe11610071578063c07c00fe146101f6578063c36596a61461017f578063c6580d1214610219578063e4a28a5214610161578063ec0930211461022157600080fd5b8063b0e0d136146101d6578063b7b800a4146101d6578063ba019dab146101de578063bc063e1a146101e6578063bc694ea2146101ee57600080fd5b806350cbbe76116100f457806350cbbe76146101a357806376c7a3c7146101b6578063867378c5146101be5780639381cd2b146101c6578063992e2a92146101ce57600080fd5b8063038142381461013157806309a3bbe414610161578063189d00ca14610177578063218b53821461017f578063241c7a6d1461018e575b600080fd5b600054610144906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610169610229565b604051908152602001610158565b61016961023f565b610169670de0b6b3a764000081565b610196610256565b60405161015891906103ee565b6101446101b136600461043b565b6102b8565b6101696102e2565b6101696102f7565b61016961030e565b610169610321565b610169600281565b610169600181565b61016961033f565b610169610352565b610209610204366004610454565b610371565b6040519015158152602001610158565b610169600081565b6101696103db565b61023c670de0b6b3a7640000603261049a565b81565b61023c6402540be400670de0b6b3a76400006104b9565b606060018054806020026020016040519081016040528092919081815260200182805480156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b600181815481106102c857600080fd5b6000918252602090912001546001600160a01b0316905081565b61023c620f4240670de0b6b3a76400006104b9565b61023c64e8d4a51000670de0b6b3a76400006104b9565b61023c670de0b6b3a7640000606461049a565b6103346003670de0b6b3a76400006104b9565b61023c9060016104db565b61023c600a670de0b6b3a76400006104b9565b6001610367670de0b6b3a7640000600261049a565b61023c91906104f3565b6000805b6001548110156103d257826001600160a01b03166001828154811061039c5761039c61050a565b6000918252602090912001546001600160a01b031614156103c05750600192915050565b806103ca81610520565b915050610375565b50600092915050565b61023c6002670de0b6b3a76400006104b9565b6020808252825182820181905260009190848201906040850190845b8181101561042f5783516001600160a01b03168352928401929184019160010161040a565b50909695505050505050565b60006020828403121561044d57600080fd5b5035919050565b60006020828403121561046657600080fd5b81356001600160a01b038116811461047d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156104b4576104b4610484565b500290565b6000826104d657634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156104ee576104ee610484565b500190565b60008282101561050557610505610484565b500390565b634e487b7160e01b600052603260045260246000fd5b600060001982141561053457610534610484565b506001019056fea2646970667358221220b669d4fa5939209122b2ff485080318e52d8d3c1b491fc9de92ae6cb2d7fa6ad64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/BMath.json b/abis/BMath.json deleted file mode 100644 index b468145..0000000 --- a/abis/BMath.json +++ /dev/null @@ -1,314 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BMath", - "sourceName": "contracts/pools/balancer/BMath.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "swapFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oceanFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "tokenFees", - "type": "address" - } - ], - "name": "SWAP_FEES", - "type": "event" - }, - { - "inputs": [], - "name": "BONE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "BPOW_PRECISION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXIT_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INIT_POOL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_IN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_OUT_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_TOTAL_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BALANCE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "_swapPublishMarketFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "communityFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOPCFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "publishMarketFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610451806100206000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063992e2a92116100ad578063bc694ea211610071578063bc694ea2146101eb578063c36596a614610153578063c6580d12146101f3578063e4a28a5214610131578063ec093021146101fb57600080fd5b8063992e2a92146101cb578063b0e0d136146101d3578063b7b800a4146101d3578063ba019dab146101db578063bc063e1a146101e357600080fd5b806376c7a3c7116100f457806376c7a3c71461018a5780637a284be4146101925780637c5918b31461019b578063867378c5146101bb5780639381cd2b146101c357600080fd5b806309a3bbe414610131578063189d00ca1461014b578063218b53821461015357806329b88a6a14610162578063300621921461016a575b600080fd5b610139610203565b60405190815260200160405180910390f35b610139610219565b610139670de0b6b3a764000081565b610139610230565b61013961017836600461034c565b60056020526000908152604090205481565b6101396102aa565b61013960005481565b6101396101a936600461034c565b60066020526000908152604090205481565b6101396102bf565b6101396102d6565b6101396102e9565b610139600281565b610139600181565b610139610307565b61013961031a565b610139600081565b610139610339565b610216670de0b6b3a76400006032610392565b81565b6102166402540be400670de0b6b3a76400006103b1565b6002546004805460405163b8421e2b60e01b81526001600160a01b0391821692810192909252600092169063b8421e2b90602401602060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a591906103d3565b905090565b610216620f4240670de0b6b3a76400006103b1565b61021664e8d4a51000670de0b6b3a76400006103b1565b610216670de0b6b3a76400006064610392565b6102fc6003670de0b6b3a76400006103b1565b6102169060016103ec565b610216600a670de0b6b3a76400006103b1565b600161032f670de0b6b3a76400006002610392565b6102169190610404565b6102166002670de0b6b3a76400006103b1565b60006020828403121561035e57600080fd5b81356001600160a01b038116811461037557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156103ac576103ac61037c565b500290565b6000826103ce57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156103e557600080fd5b5051919050565b600082198211156103ff576103ff61037c565b500190565b6000828210156104165761041661037c565b50039056fea2646970667358221220bb7675d200528b1ac138059c595a95fd2adb2b36b61e0bac3f6baeafc4fc887c64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063992e2a92116100ad578063bc694ea211610071578063bc694ea2146101eb578063c36596a614610153578063c6580d12146101f3578063e4a28a5214610131578063ec093021146101fb57600080fd5b8063992e2a92146101cb578063b0e0d136146101d3578063b7b800a4146101d3578063ba019dab146101db578063bc063e1a146101e357600080fd5b806376c7a3c7116100f457806376c7a3c71461018a5780637a284be4146101925780637c5918b31461019b578063867378c5146101bb5780639381cd2b146101c357600080fd5b806309a3bbe414610131578063189d00ca1461014b578063218b53821461015357806329b88a6a14610162578063300621921461016a575b600080fd5b610139610203565b60405190815260200160405180910390f35b610139610219565b610139670de0b6b3a764000081565b610139610230565b61013961017836600461034c565b60056020526000908152604090205481565b6101396102aa565b61013960005481565b6101396101a936600461034c565b60066020526000908152604090205481565b6101396102bf565b6101396102d6565b6101396102e9565b610139600281565b610139600181565b610139610307565b61013961031a565b610139600081565b610139610339565b610216670de0b6b3a76400006032610392565b81565b6102166402540be400670de0b6b3a76400006103b1565b6002546004805460405163b8421e2b60e01b81526001600160a01b0391821692810192909252600092169063b8421e2b90602401602060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a591906103d3565b905090565b610216620f4240670de0b6b3a76400006103b1565b61021664e8d4a51000670de0b6b3a76400006103b1565b610216670de0b6b3a76400006064610392565b6102fc6003670de0b6b3a76400006103b1565b6102169060016103ec565b610216600a670de0b6b3a76400006103b1565b600161032f670de0b6b3a76400006002610392565b6102169190610404565b6102166002670de0b6b3a76400006103b1565b60006020828403121561035e57600080fd5b81356001600160a01b038116811461037557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156103ac576103ac61037c565b500290565b6000826103ce57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156103e557600080fd5b5051919050565b600082198211156103ff576103ff61037c565b500190565b6000828210156104165761041661037c565b50039056fea2646970667358221220bb7675d200528b1ac138059c595a95fd2adb2b36b61e0bac3f6baeafc4fc887c64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/BPool.json b/abis/BPool.json deleted file mode 100644 index 9407b9d..0000000 --- a/abis/BPool.json +++ /dev/null @@ -1,1757 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BPool", - "sourceName": "contracts/pools/balancer/BPool.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bptAmount", - "type": "uint256" - } - ], - "name": "LOG_BPT", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bptAmount", - "type": "uint256" - } - ], - "name": "LOG_BPT_SS", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "sig", - "type": "bytes4" - }, - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "LOG_CALL", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "LOG_EXIT", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "LOG_JOIN", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "baseToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseTokenAmountIn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseTokenWeight", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "datatokenAmountIn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "datatokenWeight", - "type": "uint256" - } - ], - "name": "LOG_SETUP", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "LOG_SWAP", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newMarketCollector", - "type": "address" - } - ], - "name": "MarketCollectorChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "MarketFees", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "OPCWallet", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "OPCFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "marketAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "PublishMarketFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "swapFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oceanFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "tokenFees", - "type": "address" - } - ], - "name": "SWAP_FEES", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "SwapFeeChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "BONE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "BPOW_PRECISION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXIT_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INIT_POOL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_IN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_OUT_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_TOTAL_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BALANCE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "_opcCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "_publishMarketCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "_swapPublishMarketFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "whom", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - } - ], - "name": "calcPoolInSingleOut", - "outputs": [ - { - "internalType": "uint256", - "name": "poolAmountIn", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - } - ], - "name": "calcPoolOutSingleIn", - "outputs": [ - { - "internalType": "uint256", - "name": "poolAmountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "poolAmountOut", - "type": "uint256" - } - ], - "name": "calcSingleInPoolOut", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "poolAmountIn", - "type": "uint256" - } - ], - "name": "calcSingleOutPoolIn", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "collectMarketFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "collectOPC", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "communityFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "decreaseApproval", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "poolAmountIn", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "minAmountsOut", - "type": "uint256[]" - } - ], - "name": "exitPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPoolAmountIn", - "type": "uint256" - } - ], - "name": "exitswapExternAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "poolAmountIn", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "poolAmountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAmountOut", - "type": "uint256" - } - ], - "name": "exitswapPoolAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_swapMarketFee", - "type": "uint256" - } - ], - "name": "getAmountInExactOut", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_swapMarketFee", - "type": "uint256" - } - ], - "name": "getAmountOutExactIn", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBaseTokenAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getController", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentMarketFees", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentOPCFees", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentTokens", - "outputs": [ - { - "internalType": "address[]", - "name": "tokens", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDatatokenAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "getDenormalizedWeight", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFinalTokens", - "outputs": [ - { - "internalType": "address[]", - "name": "tokens", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getMarketFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "getNormalizedWeight", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNumTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOPCFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_swapMarketFee", - "type": "uint256" - } - ], - "name": "getSpotPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "spotPrice", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSwapFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalDenormalizedWeight", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "increaseApproval", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "swapFees", - "type": "uint256[]" - }, - { - "internalType": "bool", - "name": "publicSwap", - "type": "bool" - }, - { - "internalType": "bool", - "name": "finalized", - "type": "bool" - }, - { - "internalType": "address[2]", - "name": "tokens", - "type": "address[2]" - }, - { - "internalType": "address[2]", - "name": "feeCollectors", - "type": "address[2]" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "t", - "type": "address" - } - ], - "name": "isBound", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isFinalized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isInitialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isPublicSwap", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "poolAmountOut", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "maxAmountsIn", - "type": "uint256[]" - } - ], - "name": "joinPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minPoolAmountOut", - "type": "uint256" - } - ], - "name": "joinswapExternAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "poolAmountOut", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "poolAmountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxAmountIn", - "type": "uint256" - } - ], - "name": "joinswapPoolAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "publishMarketFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "datatokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "datatokenWeight", - "type": "uint256" - }, - { - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "baseTokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseTokenWeight", - "type": "uint256" - } - ], - "name": "setup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[3]", - "name": "tokenInOutMarket", - "type": "address[3]" - }, - { - "internalType": "uint256[4]", - "name": "amountsInOutMaxFee", - "type": "uint256[4]" - } - ], - "name": "swapExactAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "spotPriceAfter", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[3]", - "name": "tokenInOutMarket", - "type": "address[3]" - }, - { - "internalType": "uint256[4]", - "name": "amountsInOutMaxFee", - "type": "uint256[4]" - } - ], - "name": "swapExactAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenAmountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "spotPriceAfter", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newCollector", - "type": "address" - } - ], - "name": "updateMarketFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60c0604052601360808190527f42616c616e63657220506f6f6c20546f6b656e0000000000000000000000000060a09081526200004091600a91906200008f565b506040805180820190915260038082526210941560ea1b60209092019182526200006d91600b916200008f565b50600c805460ff191660121790553480156200008857600080fd5b5062000172565b8280546200009d9062000135565b90600052602060002090601f016020900481019282620000c157600085556200010c565b82601f10620000dc57805160ff19168380011785556200010c565b828001600101855582156200010c579182015b828111156200010c578251825591602001919060010190620000ef565b506200011a9291506200011e565b5090565b5b808211156200011a57600081556001016200011f565b600181811c908216806200014a57607f821691505b602082108114156200016c57634e487b7160e01b600052602260045260246000fd5b50919050565b615eb880620001826000396000f3fe608060405234801561001057600080fd5b50600436106104335760003560e01c806380ca730811610236578063bf7db2361161013b578063cd2ed8fb116100c3578063ec09302111610087578063ec093021146108c7578063f1b8a9b7146108cf578063f8b2cb4f146108e2578063fde924f7146108f5578063ff9b18501461090757600080fd5b8063cd2ed8fb1461086b578063d4cadf6814610873578063d73dd6231461087b578063dd62ed3e1461088e578063e4a28a52146104a957600080fd5b8063c44a42831161010a578063c44a42831461082d578063c6580d1214610835578063c98a59cf1461083d578063caa0114814610850578063cc77828d1461086357600080fd5b8063bf7db236146107dc578063c070a6d8146107f2578063c36596a6146104d6578063c421a3fc1461080557600080fd5b8063a9059cbb116101be578063b7b800a41161018d578063b7b800a4146107a7578063ba019dab146107af578063bc063e1a146107b7578063bc694ea2146107bf578063be3bbd2e146107c757600080fd5b8063a9059cbb14610779578063ab77a2de1461078c578063b02f0b7314610794578063b0e0d136146107a757600080fd5b80639381cd2b116102055780639381cd2b1461073b578063948d8ce61461074357806395d89b4114610756578063992e2a921461075e578063a3b3a16d1461076657600080fd5b806380ca730814610711578063867378c5146107195780638d4e408314610721578063936c34771461073357600080fd5b80633950b3fd1161033c5780635e123add116102c4578063703305181161029357806370330518146106a457806370a08231146106b757806376c7a3c7146106e05780637a284be4146106e85780637c5918b3146106f157600080fd5b80635e123add14610663578063638c9e951461066b578063661884631461067e5780636d06dfa01461069157600080fd5b80634df947d01161030b5780634df947d0146106125780634f69c0d4146106235780635c3f1532146106365780635d1ca631146106495780635db342771461065057600080fd5b80633950b3fd146105c8578063430ed5d0146105db578063458c3fb5146105ee57806346ab38f1146105ff57600080fd5b806323b872dd116103bf578063300621921161038e578063300621921461053f5780633018205f1461055f578063313ce5671461058a57806334e19907146105a3578063392e53cd146105b657600080fd5b806323b872dd146104e557806329b88a6a146104f85780632eebd6ae146105005780632f37b6241461051357600080fd5b806309a3bbe41161040657806309a3bbe4146104a957806309ef3f5b146104b157806318160ddd146104c6578063189d00ca146104ce578063218b5382146104d657600080fd5b806302c967481461043857806306fdde031461045e578063079492d414610473578063095ea7b314610486575b600080fd5b61044b6104463660046156e7565b61091a565b6040519081526020015b60405180910390f35b610466610d7b565b6040516104559190615746565b61044b610481366004615779565b610e0d565b6104996104943660046157b5565b610e97565b6040519015158152602001610455565b61044b610ef2565b6104c46104bf3660046157df565b610f08565b005b60095461044b565b61044b611144565b61044b670de0b6b3a764000081565b6104996104f3366004615779565b61115b565b61044b6112af565b61044b61050e366004615837565b611329565b610499610521366004615879565b6001600160a01b031660009081526010602052604090205460ff1690565b61044b61054d366004615879565b60056020526000908152604090205481565b600c546201000090046001600160a01b03165b6040516001600160a01b039091168152602001610455565b600c5460ff165b60405160ff9091168152602001610455565b6104c46105b1366004615894565b61138a565b601254600160a01b900460ff16610499565b61044b6105d63660046157b5565b6114c3565b61044b6105e93660046157b5565b61152b565b6003546001600160a01b0316610572565b61044b61060d3660046156e7565b61158b565b6004546001600160a01b0316610572565b6104c46106313660046158f2565b611991565b600e54610572906001600160a01b031681565b6001610591565b61044b61065e3660046156e7565b611bb8565b60005461044b565b600d54610572906001600160a01b031681565b61049961068c3660046157b5565b611f79565b61044b61069f3660046156e7565b61204f565b6104c46106b2366004615879565b61242b565b61044b6106c5366004615879565b6001600160a01b031660009081526007602052604090205490565b61044b612528565b61044b60005481565b61044b6106ff366004615879565b60066020526000908152604090205481565b6104c461253d565b61044b6126cf565b600e54600160a01b900460ff16610499565b61044b6126e6565b61044b612718565b61044b610751366004615879565b61272b565b610466612782565b61044b612791565b61044b6107743660046157b5565b6127af565b6104996107873660046157b5565b61280f565b6104c4612825565b6104c46107a23660046158f2565b612993565b61044b600281565b61044b600181565b61044b612bef565b61044b612c02565b6107cf612c21565b6040516104559190615982565b6107e4612cd4565b604051610455929190615995565b610499610800366004615a0b565b612e44565b610818610813366004615ab8565b6130b4565b60408051928352602083019190915201610455565b6107e461355b565b61044b600081565b61081861084b366004615ab8565b6136c0565b61044b61085e366004615837565b613b04565b6107cf613b5a565b600f5461044b565b60015461044b565b6104996108893660046157b5565b613b85565b61044b61089c366004615afa565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b61044b613bf8565b61044b6108dd366004615879565b613c0b565b61044b6108f0366004615879565b613c69565b600c54600160b01b900460ff16610499565b61044b6109153660046157b5565b613cbc565b600c54600090610100900460ff161561094e5760405162461bcd60e51b815260040161094590615b2d565b60405180910390fd5b600c805461ff001916610100179055600e54600160a01b900460ff166109865760405162461bcd60e51b815260040161094590615b52565b61098f84613d1c565b6001600160a01b03841660009081526010602052604090206003908101546109d3916109c390670de0b6b3a7640000615ba9565b6109ce906001615bbd565b613d77565b8311156109f25760405162461bcd60e51b815260040161094590615bd5565b6001600160a01b038416600090815260106020526040902060038101546002820154600954601154610a279392919088613e5c565b915081610a465760405162461bcd60e51b815260040161094590615c00565b82821115610a665760405162461bcd60e51b815260040161094590615c29565b610a74816003015485613f20565b60038201556000610a858382613d77565b604080518781524260208201529192506001600160a01b038816913391600080516020615de3833981519152910160405180910390a3604051838152600080516020615e238339815191529060200160405180910390a1610ae63384613f7d565b610af8610af38483613f20565b613f87565b600254610b0e906001600160a01b031682613f90565b610b19863387613f9a565b6003546000906001600160a01b0388811691161415610b4457506004546001600160a01b0316610b52565b506003546001600160a01b03165b60125460035460405163efd4810360e01b81526001600160a01b039283169263efd4810392610b8a9291169085908990600401615c4f565b602060405180830381865afa158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb9190615c73565b15610d6657600380546001600160a01b03166000908152601060205260408120918201546002830154600954601154610c07939291908a613fb3565b9050610c17826003015482613f20565b6003830155610c27866000613d77565b600c54604080518481524260208201529296506001600160a01b0386811693620100009093041691600080516020615de3833981519152910160405180910390a3600c54610c84906201000090046001600160a01b031687613f7d565b610c91610af38786613f20565b600254610ca7906001600160a01b031685613f90565b600c54610cc59084906201000090046001600160a01b031683613f9a565b6012546003546040516307b01ab360e41b81526001600160a01b03918216600482015285821660248201526044810184905260648101899052911690637b01ab3090608401600060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b50505050600080516020615e0383398151915286604051610d5b91815260200190565b60405180910390a150505b505050600c805461ff00191690559392505050565b6060600a8054610d8a90615c90565b80601f0160208091040260200160405190810160405280929190818152602001828054610db690615c90565b8015610e035780601f10610dd857610100808354040283529160200191610e03565b820191906000526020600020905b815481529060010190602001808311610de657829003601f168201915b5050505050905090565b600c54600090610100900460ff1615610e385760405162461bcd60e51b815260040161094590615b2d565b610e4184613d1c565b610e4a83613d1c565b6001600160a01b03808516600090815260106020526040808220928616825290206003808301546002808501549284015490840154610e8b9391908861407d565b925050505b9392505050565b3360008181526008602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020615e6383398151915290610ee09086815260200190565b60405180910390a35060015b92915050565b610f05670de0b6b3a76400006032615ccb565b81565b600c54610100900460ff1615610f305760405162461bcd60e51b815260040161094590615b2d565b600c805461010061ff001990911617908190556201000090046001600160a01b03163314610f995760405162461bcd60e51b815260206004820152601660248201527522a9292fa4a72b20a624a22fa1a7a72a2927a62622a960511b6044820152606401610945565b6003546001600160a01b03878116911614610ff65760405162461bcd60e51b815260206004820152601d60248201527f4552525f494e56414c49445f44415441544f4b454e5f414444524553530000006044820152606401610945565b6004546001600160a01b038481169116146110535760405162461bcd60e51b815260206004820152601d60248201527f4552525f494e56414c49445f62617365546f6b656e5f414444524553530000006044820152606401610945565b61105e868686614109565b604080518681524260208201526001600160a01b038816913391600080516020615e43833981519152910160405180910390a361109c838383614109565b604080518381524260208201526001600160a01b038516913391600080516020615e43833981519152910160405180910390a36110d76142f3565b6040805183815260208101839052908101869052606081018590526001600160a01b03808816919085169033907fbece8b4dcdbe446dd65a9288154698e067e3e91de17a1a408c2f531b9f845d739060800160405180910390a45050600c805461ff001916905550505050565b610f056402540be400670de0b6b3a7640000615ba9565b6000336001600160a01b038516148061119757506001600160a01b03841660009081526008602090815260408083203384529091529020548211155b6111db5760405162461bcd60e51b815260206004820152601560248201527422a9292fa12a27a5a2a72fa120a22fa1a0a62622a960591b6044820152606401610945565b6111e6848484614352565b336001600160a01b0385161480159061122457506001600160a01b038416600090815260086020908152604080832033845290915290205460001914155b156112a5576001600160a01b03841660009081526008602090815260408083203384529091529020546112579083613f20565b6001600160a01b038581166000908152600860209081526040808320338085529083529281902085905551938452918616929091600080516020615e63833981519152910160405180910390a35b5060019392505050565b6002546004805460405163b8421e2b60e01b81526001600160a01b0391821692810192909252600092169063b8421e2b90602401602060405180830381865afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190615cea565b905090565b600061133485613d1c565b61133d84613d1c565b6001600160a01b0380861660009081526010602052604080822092871682529020600380830154600280850154928401549084015461137f9391908989614464565b979650505050505050565b600c546201000090046001600160a01b031633146113df5760405162461bcd60e51b815260206004820152601260248201527122a9292fa727aa2fa1a7a72a2927a62622a960711b6044820152606401610945565b6113f4620f4240670de0b6b3a7640000615ba9565b8110156114315760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d494e5f46454560a81b6044820152606401610945565b611444600a670de0b6b3a7640000615ba9565b8111156114815760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d41585f46454560a81b6044820152606401610945565b600181905560408051338152602081018390527fbca0d601c32979eebac4e8cd06375b6e45d39af80fc06a33f366425b450dfb6991015b60405180910390a150565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087614516565b949350505050565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087613fb3565b600c54600090610100900460ff16156115b65760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166115ee5760405162461bcd60e51b815260040161094590615b52565b6115f784613d1c565b6001600160a01b03841660009081526010602052604090206003810154600282015460095460115461162c9392919088613fb3565b91508282101561164e5760405162461bcd60e51b815260040161094590615d03565b6001600160a01b0385166000908152601060205260409020600390810154611682916109c390670de0b6b3a7640000615ba9565b8211156116a15760405162461bcd60e51b815260040161094590615bd5565b6116af816003015483613f20565b600382015560006116c08582613d77565b604080518581524260208201529192506001600160a01b038816913391600080516020615de3833981519152910160405180910390a3604051858152600080516020615e238339815191529060200160405180910390a16117213386613f7d565b61172e610af38683613f20565b600254611744906001600160a01b031682613f90565b61174f863385613f9a565b6003546000906001600160a01b038881169116141561177a57506004546001600160a01b0316611788565b506003546001600160a01b03165b60125460035460405163efd4810360e01b81526001600160a01b039283169263efd48103926117c09291169085908b90600401615c4f565b602060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118019190615c73565b15610d6657600380546001600160a01b0316600090815260106020526040812091820154600283015460095460115461183d939291908c613fb3565b905061184d826003015482613f20565b600383015561185d886000613d77565b600c54604080518481524260208201529296506001600160a01b0386811693620100009093041691600080516020615de3833981519152910160405180910390a3600c546118ba906201000090046001600160a01b031689613f7d565b6118c7610af38986613f20565b6002546118dd906001600160a01b031685613f90565b600c546118fb9084906201000090046001600160a01b031683613f9a565b6012546003546040516307b01ab360e41b81526001600160a01b039182166004820152858216602482015260448101849052606481018b9052911690637b01ab3090608401600060405180830381600087803b15801561195a57600080fd5b505af115801561196e573d6000803e3d6000fd5b50505050600080516020615e0383398151915288604051610d5b91815260200190565b600c54610100900460ff16156119b95760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166119f15760405162461bcd60e51b815260040161094590615b52565b60006119fc60095490565b90506000611a0a858361459a565b905080611a295760405162461bcd60e51b815260040161094590615c00565b60005b600f54811015611b71576000600f8281548110611a4b57611a4b615d2a565b60009182526020808320909101546001600160a01b03168083526010909152604082206003015490925090611a808583613d77565b905080611a9f5760405162461bcd60e51b815260040161094590615c00565b878785818110611ab157611ab1615d2a565b90506020020135811115611ad75760405162461bcd60e51b815260040161094590615c29565b6001600160a01b038316600090815260106020526040902060030154611afd90826146b2565b6001600160a01b038416600081815260106020526040908190206003019290925590513390600080516020615e4383398151915290611b489085904290918252602082015260400190565b60405180910390a3611b5b833383614704565b5050508080611b6990615d40565b915050611a2c565b50611b7b85614719565b611b853386613f90565b604051858152600080516020615e238339815191529060200160405180910390a15050600c805461ff0019169055505050565b600c54600090610100900460ff1615611be35760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff16611c1b5760405162461bcd60e51b815260040161094590615b52565b611c2484613d1c565b6001600160a01b038416600090815260106020526040902060030154611c57906109ce6002670de0b6b3a7640000615ba9565b831115611c765760405162461bcd60e51b815260040161094590615d5b565b6001600160a01b038416600090815260106020526040902060038101546002820154600954601154611cab9392919088614516565b915082821015611ccd5760405162461bcd60e51b815260040161094590615d03565b611cdb8160030154856146b2565b6003820155604080518581524260208201526001600160a01b038716913391600080516020615e43833981519152910160405180910390a3604051828152600080516020615e238339815191529060200160405180910390a1611d3d82614719565b611d473383613f90565b611d52853386614704565b600380546001600160a01b031660009081526010602052604081209182015460028301546009546011548493611d8c939092909189614722565b6003549091506001600160a01b0389811691161415611db8576004546001600160a01b03169150611dc7565b6003546001600160a01b031691505b6012546003546040516326b1f01f60e01b81526001600160a01b03928316926326b1f01f92611dff9291169086908690600401615c4f565b602060405180830381865afa158015611e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e409190615c73565b15611f63576012546003546040516399039fcf60e01b81526001600160a01b03928316926399039fcf92611e7d9291169086908690600401615c4f565b600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050611ebd8360030154826146b2565b6003840155600c54604080518381524260208201526001600160a01b03858116936201000090041691600080516020615e43833981519152910160405180910390a3604051858152600080516020615e038339815191529060200160405180910390a1611f2985614719565b600c54611f45906201000090046001600160a01b031686613f90565b600c54611f639083906201000090046001600160a01b031683614704565b50505050600c805461ff00191690559392505050565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115611fce573360009081526008602090815260408083206001600160a01b0388168452909152812055611ffd565b611fd88184613f20565b3360009081526008602090815260408083206001600160a01b03891684529091529020555b3360008181526008602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020615e63833981519152910160405180910390a35060019392505050565b600c54600090610100900460ff161561207a5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166120b25760405162461bcd60e51b815260040161094590615b52565b6120bb84613d1c565b6001600160a01b0384166000908152601060205260409020600381015460028201546009546011546120f09392919088614722565b91508161210f5760405162461bcd60e51b815260040161094590615c00565b8282111561212f5760405162461bcd60e51b815260040161094590615c29565b6001600160a01b038516600090815260106020526040902060030154612162906109ce6002670de0b6b3a7640000615ba9565b8211156121815760405162461bcd60e51b815260040161094590615d5b565b61218f8160030154836146b2565b6003820155604080518381524260208201526001600160a01b038716913391600080516020615e43833981519152910160405180910390a3604051848152600080516020615e238339815191529060200160405180910390a16121f184614719565b6121fb3385613f90565b612206853384614704565b600380546001600160a01b0316600090815260106020526040812091820154600283015460095460115461223d939291908a614722565b6003549091506000906001600160a01b038981169116141561226b57506004546001600160a01b0316612279565b506003546001600160a01b03165b6012546003546040516326b1f01f60e01b81526001600160a01b03928316926326b1f01f926122b19291169085908790600401615c4f565b602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190615c73565b15611f63576012546003546040516399039fcf60e01b81526001600160a01b03928316926399039fcf9261232f9291169085908790600401615c4f565b600060405180830381600087803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b5050505061236f8360030154836146b2565b6003840155600c54604080518481524260208201526001600160a01b03848116936201000090041691600080516020615e43833981519152910160405180910390a36123ba87614719565b600c546123d6906201000090046001600160a01b031688613f90565b600c546123f49082906201000090046001600160a01b031684614704565b604051878152600080516020615e038339815191529060200160405180910390a150505050600c805461ff00191690559392505050565b600d546001600160a01b0316331461247d5760405162461bcd60e51b815260206004820152601560248201527427a7262c9026a0a925a2aa1021a7a62622a1aa27a960591b6044820152606401610945565b6001600160a01b0381166124d35760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964205f6e6577436f6c6c6563746f7220616464726573730000006044820152606401610945565b600d80546001600160a01b0319166001600160a01b0383169081179091556040805133815260208101929092527f82aaf1a11850bc9b5eb1b7db8b4ad08629911d970a4d7539875938c4017e59b891016114b8565b610f05620f4240670de0b6b3a7640000615ba9565b6000612547612c21565b905060005b81518110156126cb5760006006600084848151811061256d5761256d615d2a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205490506000600660008585815181106125b0576125b0615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550612628600d60009054906101000a90046001600160a01b03168285858151811061260857612608615d2a565b60200260200101516001600160a01b03166147bc9092919063ffffffff16565b7fbaf1ab77be65c7abf8fcd922bfcf0a749f556ac1a4cdf39c126ffaa1851edb5633600d60009054906101000a90046001600160a01b031685858151811061267257612672615d2a565b6020026020010151846040516126b094939291906001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390a150806126c381615d40565b91505061254c565b5050565b610f0564e8d4a51000670de0b6b3a7640000615ba9565b600c54600090610100900460ff16156127115760405162461bcd60e51b815260040161094590615b2d565b5060115490565b610f05670de0b6b3a76400006064615ccb565b600c54600090610100900460ff16156127565760405162461bcd60e51b815260040161094590615b2d565b61275f82613d1c565b506001600160a01b0381166000908152601060205260409020600201545b919050565b6060600b8054610d8a90615c90565b6127a46003670de0b6b3a7640000615ba9565b610f05906001615bbd565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087613e5c565b600061281c338484614352565b50600192915050565b600061282f612c21565b905060005b81518110156126cb5760006005600084848151811061285557612855615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905060006005600085858151811061289857612898615d2a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506128f0600e60009054906101000a90046001600160a01b03168285858151811061260857612608615d2a565b7fed2b0288692cfc6d01c94a67a53721792f59c3d1388221f8aa4f66c8d2808dde33600e60009054906101000a90046001600160a01b031685858151811061293a5761293a615d2a565b60200260200101518460405161297894939291906001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390a1508061298b81615d40565b915050612834565b600c54610100900460ff16156129bb5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166129f35760405162461bcd60e51b815260040161094590615b52565b60006129fe60095490565b90506000612a0d856000613d77565b90506000612a1b8683613f20565b90506000612a29828561459a565b905080612a485760405162461bcd60e51b815260040161094590615c00565b612a523388613f7d565b600254612a68906001600160a01b031684613f90565b612a7182613f87565b60005b600f54811015612bb9576000600f8281548110612a9357612a93615d2a565b60009182526020808320909101546001600160a01b03168083526010909152604082206003015490925090612ac88583613d77565b905080612ae75760405162461bcd60e51b815260040161094590615c00565b898985818110612af957612af9615d2a565b90506020020135811015612b1f5760405162461bcd60e51b815260040161094590615d03565b6001600160a01b038316600090815260106020526040902060030154612b459082613f20565b6001600160a01b038416600081815260106020526040908190206003019290925590513390600080516020615de383398151915290612b909085904290918252602082015260400190565b60405180910390a3612ba3833383613f9a565b5050508080612bb190615d40565b915050612a74565b50604051878152600080516020615e238339815191529060200160405180910390a15050600c805461ff00191690555050505050565b610f05600a670de0b6b3a7640000615ba9565b6001612c17670de0b6b3a76400006002615ccb565b610f059190615d85565b600c54606090610100900460ff1615612c4c5760405162461bcd60e51b815260040161094590615b2d565b600e54600160a01b900460ff16612c755760405162461bcd60e51b815260040161094590615b52565b600f805480602002602001604051908101604052809291908181526020018280548015610e0357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cad575050505050905090565b6060806000612ce1612c21565b90506000815167ffffffffffffffff811115612cff57612cff615d9c565b604051908082528060200260200182016040528015612d28578160200160208202803683370190505b5090506000825167ffffffffffffffff811115612d4757612d47615d9c565b604051908082528060200260200182016040528015612d70578160200160208202803683370190505b50905060005b8351811015612e3957838181518110612d9157612d91615d2a565b6020026020010151838281518110612dab57612dab615d2a565b60200260200101906001600160a01b031690816001600160a01b03168152505060056000858381518110612de157612de1615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110612e1c57612e1c615d2a565b602090810291909101015280612e3181615d40565b915050612d76565b509094909350915050565b601254600090600160a01b900460ff1615612ea15760405162461bcd60e51b815260206004820152601760248201527f4552525f414c52454144595f494e495449414c495a45440000000000000000006044820152606401610945565b6001600160a01b038916612ef75760405162461bcd60e51b815260206004820152601e60248201527f4552525f494e56414c49445f434f4e54524f4c4c45525f4144445245535300006044820152606401610945565b6001600160a01b038816612f4d5760405162461bcd60e51b815260206004820152601b60248201527f4552525f494e56414c49445f464143544f52595f4144445245535300000000006044820152606401610945565b612f62620f4240670de0b6b3a7640000615ba9565b87876000818110612f7557612f75615d2a565b905060200201351015612fb85760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d494e5f46454560a81b6044820152606401610945565b612fcb600a670de0b6b3a7640000615ba9565b87876000818110612fde57612fde615d2a565b9050602002013511156130215760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d41585f46454560a81b6044820152606401610945565b6130a78989898980806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805180820182528c93508b9250908a9060029083908390808284376000920191909152505060408051808201825291508a90600290839083908082843760009201919091525061481f915050565b9998505050505050505050565b600c546000908190610100900460ff16156130e15760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166131195760405162461bcd60e51b815260040161094590615b52565b6131388460005b6020020160208101906131339190615879565b613d1c565b613143846001613120565b60006010816131556020880188615879565b6001600160a01b0316815260208101919091526040016000908120915060108187600160200201602081019061318b9190615879565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506131ca82600301546002670de0b6b3a76400006109ce9190615ba9565b853511156131ea5760405162461bcd60e51b815260040161094590615d5b565b600061322083600301548460020154846003015485600201548a60036004811061321657613216615d2a565b602002013561407d565b9050604086013581111561326c5760405162461bcd60e51b81526020600482015260136024820152724552525f4241445f4c494d49545f505249434560681b6044820152606401610945565b60408051608081018252600385810154825260028087015460208085019190915291860154938301939093529184015460608201526000916132c39082908a35906132b9908d018d615879565b60608c013561495d565b909750915060208801358710156132ec5760405162461bcd60e51b815260040161094590615d03565b6132fa8560030154836146b2565b8560030181905550613310846003015488613f20565b846003018190555061334285600301548660020154866003015487600201548c60036004811061321657613216615d2a565b9550828610156133645760405162461bcd60e51b815260040161094590615c00565b60408801358611156133aa5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4c494d49545f505249434560881b6044820152606401610945565b6133b588358861459a565b8311156133d45760405162461bcd60e51b815260040161094590615c00565b6133e460408a0160208b01615879565b6001600160a01b03166133fa60208b018b615879565b604080518b358152602081018b9052428183015290516001600160a01b03929092169133917f50ef2fc267012b5c84b56835f16ffd5331ac5a151a3760d74908721ba78b0efe919081900360600190a461346261345a60208b018b615879565b338a35614704565b600061348c8935613487816109ce670de0b6b3a76400008e60035b6020020135613f20565b613f20565b9050606089013515613527576134d08a60025b6020020160208101906134b29190615879565b826134c060208e018e615879565b6001600160a01b031691906147bc565b7f73412e11c89feeef4b84e0900c5de25904e834da8f2e1b3cddfd55de4cb6ecae61350160608c0160408d01615879565b61350e60208d018d615879565b8360405161351e93929190615c4f565b60405180910390a15b61354161353a60408c0160208d01615879565b338a613f9a565b505050505050600c805461ff001916905590939092509050565b6060806000613568612c21565b90506000815167ffffffffffffffff81111561358657613586615d9c565b6040519080825280602002602001820160405280156135af578160200160208202803683370190505b5090506000825167ffffffffffffffff8111156135ce576135ce615d9c565b6040519080825280602002602001820160405280156135f7578160200160208202803683370190505b50905060005b8351811015612e395783818151811061361857613618615d2a565b602002602001015183828151811061363257613632615d2a565b60200260200101906001600160a01b031690816001600160a01b0316815250506006600085838151811061366857613668615d2a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106136a3576136a3615d2a565b6020908102919091010152806136b881615d40565b9150506135fd565b600c546000908190610100900460ff16156136ed5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166137255760405162461bcd60e51b815260040161094590615b52565b613730846000613120565b61373b846001613120565b600060108161374d6020880188615879565b6001600160a01b031681526020810191909152604001600090812091506010818760016020020160208101906137839190615879565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506137c281600301546003670de0b6b3a76400006109c39190615ba9565b602086013511156137e55760405162461bcd60e51b815260040161094590615bd5565b600061381183600301548460020154846003015485600201548a60036004811061321657613216615d2a565b9050604086013581111561385d5760405162461bcd60e51b81526020600482015260136024820152724552525f4241445f4c494d49545f505249434560681b6044820152606401610945565b60408051608081018252600385810154825260028087015460208085019190915291860154938301939093529184015460608201526000916138b69082908a810135906138ac908d018d615879565b60608c0135614b75565b909750915087358711156138dc5760405162461bcd60e51b815260040161094590615c29565b6138ea8560030154836146b2565b6003808701919091558401546139029089600161347d565b846003018190555061393485600301548660020154866003015487600201548c60036004811061321657613216615d2a565b9550828610156139565760405162461bcd60e51b815260040161094590615c00565b604088013586111561399c5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4c494d49545f505249434560881b6044820152606401610945565b6139aa8760208a013561459a565b8311156139c95760405162461bcd60e51b815260040161094590615c00565b6139d960408a0160208b01615879565b6001600160a01b03166139ef60208b018b615879565b6001600160a01b0316337f50ef2fc267012b5c84b56835f16ffd5331ac5a151a3760d74908721ba78b0efe8a8c6001604080519384526020918202929092013590830152429082015260600160405180910390a4613a5a613a5360208b018b615879565b3389614704565b6000613a7888613487816109ce670de0b6b3a76400008e600361347d565b9050606089013515613ae657613a8f8a600261349f565b7f73412e11c89feeef4b84e0900c5de25904e834da8f2e1b3cddfd55de4cb6ecae613ac060608c0160408d01615879565b613acd60208d018d615879565b83604051613add93929190615c4f565b60405180910390a15b613541613af960408c0160208d01615879565b3360208c0135613f9a565b6000613b0f85613d1c565b613b1884613d1c565b6001600160a01b0380861660009081526010602052604080822092871682529020600380830154600280850154928401549084015461137f9391908989614d99565b600c54606090610100900460ff1615612c755760405162461bcd60e51b815260040161094590615b2d565b3360009081526008602090815260408083206001600160a01b0386168452909152812054613bb390836146b2565b3360008181526008602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020615e638339815191529101610ee0565b610f056002670de0b6b3a7640000615ba9565b600c54600090610100900460ff1615613c365760405162461bcd60e51b815260040161094590615b2d565b613c3f82613d1c565b6001600160a01b038216600090815260106020526040902060020154601154610e9090829061459a565b600c54600090610100900460ff1615613c945760405162461bcd60e51b815260040161094590615b2d565b613c9d82613d1c565b506001600160a01b031660009081526010602052604090206003015490565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087614722565b6001600160a01b03811660009081526010602052604090205460ff16613d745760405162461bcd60e51b815260206004820152600d60248201526c11549497d393d517d093d55391609a1b6044820152606401610945565b50565b600080613d848385615ccb565b9050831580613d9b575082613d998583615ba9565b145b613dda5760405162461bcd60e51b815260206004820152601060248201526f4552525f4d554c5f4f564552464c4f5760801b6044820152606401610945565b6000613def6002670de0b6b3a7640000615ba9565b613df99083615bbd565b905081811015613e3e5760405162461bcd60e51b815260206004820152601060248201526f4552525f4d554c5f4f564552464c4f5760801b6044820152606401610945565b6000613e52670de0b6b3a764000083615ba9565b9695505050505050565b600080613e69868561459a565b90506000613e7f670de0b6b3a764000083613f20565b90506000613e8f82600154613d77565b90506000613eae86613ea9670de0b6b3a764000085613f20565b61459a565b90506000613ebc8b83613f20565b90506000613eca828d61459a565b90506000613ed88288614e4d565b90506000613ee6828d613d77565b90506000613ef48d83613f20565b9050613f0d81613ea9670de0b6b3a76400006000613f20565b9f9e505050505050505050505050505050565b6000806000613f2f8585614f6e565b915091508015613f755760405162461bcd60e51b81526020600482015260116024820152704552525f5355425f554e444552464c4f5760781b6044820152606401610945565b509392505050565b6126cb8282614fa5565b613d7481614fb0565b6126cb828261507c565b613fae6001600160a01b03841683836147bc565b505050565b600080613fc0868561459a565b90506000613fdb846109ce670de0b6b3a76400006000613f20565b90506000613fe98783613f20565b90506000613ff7828961459a565b9050600061401682614011670de0b6b3a76400008861459a565b614e4d565b90506000614024828d613d77565b905060006140328d83613f20565b9050600061405361404b670de0b6b3a76400008a613f20565b600154613d77565b905061406b826109ce670de0b6b3a764000084613f20565b9e9d5050505050505050505050505050565b60008061408a878761459a565b90506000614098868661459a565b905060006140a6838361459a565b905060006140ef670de0b6b3a7640000613ea9670de0b6b3a7640000896000546140ce6112af565b6001546140db9190615bbd565b6140e59190615bbd565b6134879190615bbd565b90506140fb8282613d77565b9a9950505050505050505050565b600c546201000090046001600160a01b0316331461415e5760405162461bcd60e51b815260206004820152601260248201527122a9292fa727aa2fa1a7a72a2927a62622a960711b6044820152606401610945565b6001600160a01b03831660009081526010602052604090205460ff16156141b65760405162461bcd60e51b815260206004820152600c60248201526b11549497d254d7d093d5539160a21b6044820152606401610945565b600e54600160a01b900460ff16156142035760405162461bcd60e51b815260206004820152601060248201526f11549497d254d7d1925390531256915160821b6044820152606401610945565b600f546002116142465760405162461bcd60e51b815260206004820152600e60248201526d4552525f4d41585f544f4b454e5360901b6044820152606401610945565b604080516080810182526001808252600f805460208085019182526000858701818152606087018281526001600160a01b038c1680845260109094529782209651875460ff1916901515178755925186860155915160028601559451600390940193909355805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055613fae838383615087565b600e805460ff60a01b1916600160a01b179055600c805460ff60b01b1916600160b01b17905561433461432f670de0b6b3a76400006064615ccb565b614719565b6143503361434b670de0b6b3a76400006064615ccb565b613f90565b565b6001600160a01b0383166000908152600760205260409020548111156143b15760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b6044820152606401610945565b6001600160a01b0383166000908152600760205260409020546143d49082613f20565b6001600160a01b03808516600090815260076020526040808220939093559084168152205461440390826146b2565b6001600160a01b0380841660008181526007602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906144579085815260200190565b60405180910390a3505050565b600080614471878661459a565b905060008054846144806112af565b60015461448d9190615bbd565b6144979190615bbd565b6144a19190615bbd565b905060006144b7670de0b6b3a764000083613f20565b90506144c38682613d77565b905060006144d58b613ea98d856146b2565b905060006144e38286614e4d565b905060006144f9670de0b6b3a764000083613f20565b90506145058b82613d77565b9d9c50505050505050505050505050565b600080614523868561459a565b9050600061453c61404b670de0b6b3a764000084613f20565b90506000614556856109ce670de0b6b3a764000085613f20565b905060006145648a836146b2565b90506000614572828c61459a565b905060006145808287614e4d565b9050600061458e828c613d77565b9050614505818c613f20565b6000816145d85760405162461bcd60e51b815260206004820152600c60248201526b4552525f4449565f5a45524f60a01b6044820152606401610945565b60006145ec670de0b6b3a764000085615ccb565b905083158061460b5750670de0b6b3a76400006146098583615ba9565b145b61464a5760405162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b6044820152606401610945565b6000614657600285615ba9565b6146619083615bbd565b9050818110156146a65760405162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b6044820152606401610945565b6000613e528583615ba9565b6000806146bf8385615bbd565b905083811015610e905760405162461bcd60e51b815260206004820152601060248201526f4552525f4144445f4f564552464c4f5760801b6044820152606401610945565b613fae6001600160a01b0384168330846152d7565b613d74816152fe565b60008061472f868561459a565b9050600061473d86856146b2565b9050600061474b828861459a565b90506000614761670de0b6b3a76400008561459a565b9050600061476f8383614e4d565b9050600061477d828d613d77565b9050600061478b828e613f20565b905060006147a461404b670de0b6b3a76400008a613f20565b905061406b82613ea9670de0b6b3a764000084613f20565b6040516001600160a01b038316602482015260448101829052613fae90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261536d565b600c805462010000600160b01b031916620100006001600160a01b038a81169190910291909117909155600280546001600160a01b03191691881691909117905584516000908690829061487557614875615d2a565b60200260200101516001819055508560018151811061489657614896615d2a565b602090810291909101810151600055600c8054961515600160b01b0260ff60b01b199097169690961795869055600e80548551600380546001600160a01b039283166001600160a01b03199182161790915596840151600480549183169189169190911790558551600d805491831691891691909117905594909201518416951515600160a01b908102959095166001600160a81b0319928316179590951790945550601280549093166201000090940416929092178217908190550460ff169392505050565b6000808061497a87600160200201518860035b602002015161459a565b9050600061499a87613487896109ce670de0b6b3a76400006134876112af565b6001600160a01b0387166000908152600560205260409020549091506149c090826146b2565b60056000886001600160a01b03166001600160a01b03168152602001908152602001600020819055506000614a07886134878a6109ce670de0b6b3a7640000600054613f20565b6001600160a01b038816600090815260066020526040902054909150614a2d90826146b2565b6001600160a01b03881660009081526006602052604081209190915580548790614a556112af565b600154614a629190615bbd565b614a6c9190615bbd565b614a769190615bbd565b90507f90d9f1d0641138b6407ac37bea3a905d63a371c2d91a484f68d59924634d4ef3614ab58a6134878c6109ce670de0b6b3a7640000600154613f20565b604080519182526020820186905281018490526001600160a01b038a16606082015260800160405180910390a16000614af6670de0b6b3a764000083613f20565b9050614b028a82613d77565b8b51909150600090614b1890613ea981856146b2565b90506000614b268288614e4d565b90506000614b3c670de0b6b3a764000083613f20565b9050614b4f8e6002602002015182613d77565b995089614b608e613487898b615bbd565b99509950505050505050505094509492505050565b60008080614b8c8760036020020151886001614970565b90506000614ba1886002602002015188613f20565b90506000614bb689600260200201518361459a565b90506000614bc48285614e4d565b9050614bd881670de0b6b3a7640000613f20565b90506000805488614be76112af565b600154614bf49190615bbd565b614bfe9190615bbd565b614c089190615bbd565b8b51909150614c2d90614c1b9084613d77565b613ea9670de0b6b3a764000084613f20565b96506000614c4d886134878a6109ce670de0b6b3a76400006134876112af565b6001600160a01b038b16600090815260056020526040902054909150614c7390826146b2565b600560008c6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000614cba896134878b6109ce670de0b6b3a7640000600054613f20565b6001600160a01b038c16600090815260066020526040902054909150614ce090826146b2565b6001600160a01b038c166000908152600660205260409020558c51614d1d90614d099086613d77565b613ea9670de0b6b3a7640000600154613f20565b97507f90d9f1d0641138b6407ac37bea3a905d63a371c2d91a484f68d59924634d4ef3614d5c8a6134878c6109ce670de0b6b3a7640000600154613f20565b604080519182526020820185905281018390526001600160a01b038d16606082015260800160405180910390a15050505050505094509492505050565b600080614da6858861459a565b90506000614db48786613f20565b90506000614dc2888361459a565b90506000614dd08285614e4d565b9050614de481670de0b6b3a7640000613f20565b90506000805487614df36112af565b600154614e009190615bbd565b614e0a9190615bbd565b614e149190615bbd565b9050614e28670de0b6b3a764000082613f20565b9550614e3d614e378d84613d77565b8761459a565b9c9b505050505050505050505050565b60006001831015614e985760405162461bcd60e51b81526020600482015260156024820152744552525f42504f575f424153455f544f4f5f4c4f5760581b6044820152606401610945565b6001614ead670de0b6b3a76400006002615ccb565b614eb79190615d85565b831115614eff5760405162461bcd60e51b815260206004820152601660248201527508aa4a4be84a09eaebe8482a68abea89e9ebe90928e960531b6044820152606401610945565b6000614f0a8361543f565b90506000614f188483613f20565b90506000614f2e86614f298561545d565b615471565b905081614f3f579250610eec915050565b6000614f628784614f5d6402540be400670de0b6b3a7640000615ba9565b6154e5565b905061137f8282613d77565b600080828410614f8d57614f828385615d85565b600091509150614f9e565b614f978484615d85565b6001915091505b9250929050565b6126cb823083614352565b306000908152600760205260409020548111156150065760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b6044820152606401610945565b306000908152600760205260409020546150209082613f20565b3060009081526007602052604090205560095461503d9082613f20565b60095560405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a350565b6126cb308383614352565b670de0b6b3a76400008110156150d05760405162461bcd60e51b815260206004820152600e60248201526d11549497d3525397d5d15251d21560921b6044820152606401610945565b6150e3670de0b6b3a76400006032615ccb565b8111156151235760405162461bcd60e51b815260206004820152600e60248201526d11549497d3505617d5d15251d21560921b6044820152606401610945565b61513a64e8d4a51000670de0b6b3a7640000615ba9565b82101561517b5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4d494e5f42414c414e434560881b6044820152606401610945565b6001600160a01b03831660009081526010602052604090206002015480821115615217576151b46011546151af8484613f20565b6146b2565b6011556151ca670de0b6b3a76400006032615ccb565b60115411156152125760405162461bcd60e51b815260206004820152601460248201527311549497d3505617d513d5105317d5d15251d21560621b6044820152606401610945565b615233565b808210156152335761522f6011546134878385613f20565b6011555b6001600160a01b0384166000908152601060205260409020600281018390556003018054908490558084111561527c5761527785336152728785613f20565b614704565b6152d0565b808410156152d05760006152908286613f20565b9050600061529f826000613d77565b90506152b587336152b08585613f20565b613f9a565b6002546152cd9088906001600160a01b031683613f9a565b50505b5050505050565b6152f8846323b872dd60e01b8585856040516024016147e893929190615c4f565b50505050565b3060009081526007602052604090205461531890826146b2565b3060009081526007602052604090205560095461533590826146b2565b60095560405181815230906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001615071565b60006153c2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166155d59092919063ffffffff16565b805190915015613fae57808060200190518101906153e09190615c73565b613fae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610945565b6000670de0b6b3a76400006154538361545d565b610eec9190615ccb565b6000610eec670de0b6b3a764000083615ba9565b60008281615480600285615db2565b61549257670de0b6b3a7640000615494565b815b90506154a1600285615ba9565b93505b8315611523576154b48283613d77565b91506154c1600285615db2565b156154d3576154d08183613d77565b90505b6154de600285615ba9565b93506154a4565b60008281806154fc87670de0b6b3a7640000614f6e565b9092509050670de0b6b3a764000080600060015b8884106155c657600061552b670de0b6b3a764000083615ccb565b905060008061554b8a61554685670de0b6b3a7640000613f20565b614f6e565b9150915061555d876109ce848c613d77565b9650615569878461459a565b965086615578575050506155c6565b8715615582579315935b801561558c579315935b84156155a35761559c8688613f20565b95506155b0565b6155ad86886146b2565b95505b50505080806155be90615d40565b915050615510565b50909998505050505050505050565b6060611523848460008585843b61562e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610945565b600080866001600160a01b0316858760405161564a9190615dc6565b60006040518083038185875af1925050503d8060008114615687576040519150601f19603f3d011682016040523d82523d6000602084013e61568c565b606091505b509150915061137f828286606083156156a6575081610e90565b8251156156b65782518084602001fd5b8160405162461bcd60e51b81526004016109459190615746565b80356001600160a01b038116811461277d57600080fd5b6000806000606084860312156156fc57600080fd5b615705846156d0565b95602085013595506040909401359392505050565b60005b8381101561573557818101518382015260200161571d565b838111156152f85750506000910152565b602081526000825180602084015261576581604085016020870161571a565b601f01601f19169190910160400192915050565b60008060006060848603121561578e57600080fd5b615797846156d0565b92506157a5602085016156d0565b9150604084013590509250925092565b600080604083850312156157c857600080fd5b6157d1836156d0565b946020939093013593505050565b60008060008060008060c087890312156157f857600080fd5b615801876156d0565b9550602087013594506040870135935061581d606088016156d0565b92506080870135915060a087013590509295509295509295565b6000806000806080858703121561584d57600080fd5b615856856156d0565b9350615864602086016156d0565b93969395505050506040820135916060013590565b60006020828403121561588b57600080fd5b610e90826156d0565b6000602082840312156158a657600080fd5b5035919050565b60008083601f8401126158bf57600080fd5b50813567ffffffffffffffff8111156158d757600080fd5b6020830191508360208260051b8501011115614f9e57600080fd5b60008060006040848603121561590757600080fd5b83359250602084013567ffffffffffffffff81111561592557600080fd5b615931868287016158ad565b9497909650939450505050565b600081518084526020808501945080840160005b838110156159775781516001600160a01b031687529582019590820190600101615952565b509495945050505050565b602081526000610e90602083018461593e565b6040815260006159a8604083018561593e565b82810360208481019190915284518083528582019282019060005b818110156159df578451835293830193918301916001016159c3565b5090979650505050505050565b8015158114613d7457600080fd5b8060408101831015610eec57600080fd5b600080600080600080600080610120898b031215615a2857600080fd5b615a31896156d0565b9750615a3f60208a016156d0565b9650604089013567ffffffffffffffff811115615a5b57600080fd5b615a678b828c016158ad565b9097509550506060890135615a7b816159ec565b93506080890135615a8b816159ec565b9250615a9a8a60a08b016159fa565b9150615aa98a60e08b016159fa565b90509295985092959890939650565b60008060e08385031215615acb57600080fd5b6060830184811115615adc57600080fd5b8392508460e085011115615aef57600080fd5b809150509250929050565b60008060408385031215615b0d57600080fd5b615b16836156d0565b9150615b24602084016156d0565b90509250929050565b6020808252600b908201526a4552525f5245454e54525960a81b604082015260600190565b60208082526011908201527011549497d393d517d19253905312569151607a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082615bb857615bb8615b7d565b500490565b60008219821115615bd057615bd0615b93565b500190565b6020808252601190820152704552525f4d41585f4f55545f524154494f60781b604082015260600190565b6020808252600f908201526e08aa4a4be9a82a890be82a0a0a49eb608b1b604082015260600190565b6020808252600c908201526b22a9292fa624a6a4aa2fa4a760a11b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615c8557600080fd5b8151610e90816159ec565b600181811c90821680615ca457607f821691505b60208210811415615cc557634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615615ce557615ce5615b93565b500290565b600060208284031215615cfc57600080fd5b5051919050565b6020808252600d908201526c11549497d31253525517d3d555609a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415615d5457615d54615b93565b5060010190565b60208082526010908201526f4552525f4d41585f494e5f524154494f60801b604082015260600190565b600082821015615d9757615d97615b93565b500390565b634e487b7160e01b600052604160045260246000fd5b600082615dc157615dc1615b7d565b500690565b60008251615dd881846020870161571a565b919091019291505056fe9d9058fd2f25ccc389fec7720abef0ca83472f5abfafd5f10d37f51e6a0493f387b3975661762d852ddf2eeaad6a43b2d93777de7b3b7bdb634283df32456118fcda32798d5a9d032f49b37fea876d422f18f6e386e0f07db6029b693624b2c215a8ca63e37b2cff1677df2b6b82d36fcf8a524228bd7a4b4d02d107c28c1e8a8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220dd27ead8c9c3c0bb206313d54c68f9281b11dfee1171b5653a1419897a2c772764736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104335760003560e01c806380ca730811610236578063bf7db2361161013b578063cd2ed8fb116100c3578063ec09302111610087578063ec093021146108c7578063f1b8a9b7146108cf578063f8b2cb4f146108e2578063fde924f7146108f5578063ff9b18501461090757600080fd5b8063cd2ed8fb1461086b578063d4cadf6814610873578063d73dd6231461087b578063dd62ed3e1461088e578063e4a28a52146104a957600080fd5b8063c44a42831161010a578063c44a42831461082d578063c6580d1214610835578063c98a59cf1461083d578063caa0114814610850578063cc77828d1461086357600080fd5b8063bf7db236146107dc578063c070a6d8146107f2578063c36596a6146104d6578063c421a3fc1461080557600080fd5b8063a9059cbb116101be578063b7b800a41161018d578063b7b800a4146107a7578063ba019dab146107af578063bc063e1a146107b7578063bc694ea2146107bf578063be3bbd2e146107c757600080fd5b8063a9059cbb14610779578063ab77a2de1461078c578063b02f0b7314610794578063b0e0d136146107a757600080fd5b80639381cd2b116102055780639381cd2b1461073b578063948d8ce61461074357806395d89b4114610756578063992e2a921461075e578063a3b3a16d1461076657600080fd5b806380ca730814610711578063867378c5146107195780638d4e408314610721578063936c34771461073357600080fd5b80633950b3fd1161033c5780635e123add116102c4578063703305181161029357806370330518146106a457806370a08231146106b757806376c7a3c7146106e05780637a284be4146106e85780637c5918b3146106f157600080fd5b80635e123add14610663578063638c9e951461066b578063661884631461067e5780636d06dfa01461069157600080fd5b80634df947d01161030b5780634df947d0146106125780634f69c0d4146106235780635c3f1532146106365780635d1ca631146106495780635db342771461065057600080fd5b80633950b3fd146105c8578063430ed5d0146105db578063458c3fb5146105ee57806346ab38f1146105ff57600080fd5b806323b872dd116103bf578063300621921161038e578063300621921461053f5780633018205f1461055f578063313ce5671461058a57806334e19907146105a3578063392e53cd146105b657600080fd5b806323b872dd146104e557806329b88a6a146104f85780632eebd6ae146105005780632f37b6241461051357600080fd5b806309a3bbe41161040657806309a3bbe4146104a957806309ef3f5b146104b157806318160ddd146104c6578063189d00ca146104ce578063218b5382146104d657600080fd5b806302c967481461043857806306fdde031461045e578063079492d414610473578063095ea7b314610486575b600080fd5b61044b6104463660046156e7565b61091a565b6040519081526020015b60405180910390f35b610466610d7b565b6040516104559190615746565b61044b610481366004615779565b610e0d565b6104996104943660046157b5565b610e97565b6040519015158152602001610455565b61044b610ef2565b6104c46104bf3660046157df565b610f08565b005b60095461044b565b61044b611144565b61044b670de0b6b3a764000081565b6104996104f3366004615779565b61115b565b61044b6112af565b61044b61050e366004615837565b611329565b610499610521366004615879565b6001600160a01b031660009081526010602052604090205460ff1690565b61044b61054d366004615879565b60056020526000908152604090205481565b600c546201000090046001600160a01b03165b6040516001600160a01b039091168152602001610455565b600c5460ff165b60405160ff9091168152602001610455565b6104c46105b1366004615894565b61138a565b601254600160a01b900460ff16610499565b61044b6105d63660046157b5565b6114c3565b61044b6105e93660046157b5565b61152b565b6003546001600160a01b0316610572565b61044b61060d3660046156e7565b61158b565b6004546001600160a01b0316610572565b6104c46106313660046158f2565b611991565b600e54610572906001600160a01b031681565b6001610591565b61044b61065e3660046156e7565b611bb8565b60005461044b565b600d54610572906001600160a01b031681565b61049961068c3660046157b5565b611f79565b61044b61069f3660046156e7565b61204f565b6104c46106b2366004615879565b61242b565b61044b6106c5366004615879565b6001600160a01b031660009081526007602052604090205490565b61044b612528565b61044b60005481565b61044b6106ff366004615879565b60066020526000908152604090205481565b6104c461253d565b61044b6126cf565b600e54600160a01b900460ff16610499565b61044b6126e6565b61044b612718565b61044b610751366004615879565b61272b565b610466612782565b61044b612791565b61044b6107743660046157b5565b6127af565b6104996107873660046157b5565b61280f565b6104c4612825565b6104c46107a23660046158f2565b612993565b61044b600281565b61044b600181565b61044b612bef565b61044b612c02565b6107cf612c21565b6040516104559190615982565b6107e4612cd4565b604051610455929190615995565b610499610800366004615a0b565b612e44565b610818610813366004615ab8565b6130b4565b60408051928352602083019190915201610455565b6107e461355b565b61044b600081565b61081861084b366004615ab8565b6136c0565b61044b61085e366004615837565b613b04565b6107cf613b5a565b600f5461044b565b60015461044b565b6104996108893660046157b5565b613b85565b61044b61089c366004615afa565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b61044b613bf8565b61044b6108dd366004615879565b613c0b565b61044b6108f0366004615879565b613c69565b600c54600160b01b900460ff16610499565b61044b6109153660046157b5565b613cbc565b600c54600090610100900460ff161561094e5760405162461bcd60e51b815260040161094590615b2d565b60405180910390fd5b600c805461ff001916610100179055600e54600160a01b900460ff166109865760405162461bcd60e51b815260040161094590615b52565b61098f84613d1c565b6001600160a01b03841660009081526010602052604090206003908101546109d3916109c390670de0b6b3a7640000615ba9565b6109ce906001615bbd565b613d77565b8311156109f25760405162461bcd60e51b815260040161094590615bd5565b6001600160a01b038416600090815260106020526040902060038101546002820154600954601154610a279392919088613e5c565b915081610a465760405162461bcd60e51b815260040161094590615c00565b82821115610a665760405162461bcd60e51b815260040161094590615c29565b610a74816003015485613f20565b60038201556000610a858382613d77565b604080518781524260208201529192506001600160a01b038816913391600080516020615de3833981519152910160405180910390a3604051838152600080516020615e238339815191529060200160405180910390a1610ae63384613f7d565b610af8610af38483613f20565b613f87565b600254610b0e906001600160a01b031682613f90565b610b19863387613f9a565b6003546000906001600160a01b0388811691161415610b4457506004546001600160a01b0316610b52565b506003546001600160a01b03165b60125460035460405163efd4810360e01b81526001600160a01b039283169263efd4810392610b8a9291169085908990600401615c4f565b602060405180830381865afa158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb9190615c73565b15610d6657600380546001600160a01b03166000908152601060205260408120918201546002830154600954601154610c07939291908a613fb3565b9050610c17826003015482613f20565b6003830155610c27866000613d77565b600c54604080518481524260208201529296506001600160a01b0386811693620100009093041691600080516020615de3833981519152910160405180910390a3600c54610c84906201000090046001600160a01b031687613f7d565b610c91610af38786613f20565b600254610ca7906001600160a01b031685613f90565b600c54610cc59084906201000090046001600160a01b031683613f9a565b6012546003546040516307b01ab360e41b81526001600160a01b03918216600482015285821660248201526044810184905260648101899052911690637b01ab3090608401600060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b50505050600080516020615e0383398151915286604051610d5b91815260200190565b60405180910390a150505b505050600c805461ff00191690559392505050565b6060600a8054610d8a90615c90565b80601f0160208091040260200160405190810160405280929190818152602001828054610db690615c90565b8015610e035780601f10610dd857610100808354040283529160200191610e03565b820191906000526020600020905b815481529060010190602001808311610de657829003601f168201915b5050505050905090565b600c54600090610100900460ff1615610e385760405162461bcd60e51b815260040161094590615b2d565b610e4184613d1c565b610e4a83613d1c565b6001600160a01b03808516600090815260106020526040808220928616825290206003808301546002808501549284015490840154610e8b9391908861407d565b925050505b9392505050565b3360008181526008602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020615e6383398151915290610ee09086815260200190565b60405180910390a35060015b92915050565b610f05670de0b6b3a76400006032615ccb565b81565b600c54610100900460ff1615610f305760405162461bcd60e51b815260040161094590615b2d565b600c805461010061ff001990911617908190556201000090046001600160a01b03163314610f995760405162461bcd60e51b815260206004820152601660248201527522a9292fa4a72b20a624a22fa1a7a72a2927a62622a960511b6044820152606401610945565b6003546001600160a01b03878116911614610ff65760405162461bcd60e51b815260206004820152601d60248201527f4552525f494e56414c49445f44415441544f4b454e5f414444524553530000006044820152606401610945565b6004546001600160a01b038481169116146110535760405162461bcd60e51b815260206004820152601d60248201527f4552525f494e56414c49445f62617365546f6b656e5f414444524553530000006044820152606401610945565b61105e868686614109565b604080518681524260208201526001600160a01b038816913391600080516020615e43833981519152910160405180910390a361109c838383614109565b604080518381524260208201526001600160a01b038516913391600080516020615e43833981519152910160405180910390a36110d76142f3565b6040805183815260208101839052908101869052606081018590526001600160a01b03808816919085169033907fbece8b4dcdbe446dd65a9288154698e067e3e91de17a1a408c2f531b9f845d739060800160405180910390a45050600c805461ff001916905550505050565b610f056402540be400670de0b6b3a7640000615ba9565b6000336001600160a01b038516148061119757506001600160a01b03841660009081526008602090815260408083203384529091529020548211155b6111db5760405162461bcd60e51b815260206004820152601560248201527422a9292fa12a27a5a2a72fa120a22fa1a0a62622a960591b6044820152606401610945565b6111e6848484614352565b336001600160a01b0385161480159061122457506001600160a01b038416600090815260086020908152604080832033845290915290205460001914155b156112a5576001600160a01b03841660009081526008602090815260408083203384529091529020546112579083613f20565b6001600160a01b038581166000908152600860209081526040808320338085529083529281902085905551938452918616929091600080516020615e63833981519152910160405180910390a35b5060019392505050565b6002546004805460405163b8421e2b60e01b81526001600160a01b0391821692810192909252600092169063b8421e2b90602401602060405180830381865afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190615cea565b905090565b600061133485613d1c565b61133d84613d1c565b6001600160a01b0380861660009081526010602052604080822092871682529020600380830154600280850154928401549084015461137f9391908989614464565b979650505050505050565b600c546201000090046001600160a01b031633146113df5760405162461bcd60e51b815260206004820152601260248201527122a9292fa727aa2fa1a7a72a2927a62622a960711b6044820152606401610945565b6113f4620f4240670de0b6b3a7640000615ba9565b8110156114315760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d494e5f46454560a81b6044820152606401610945565b611444600a670de0b6b3a7640000615ba9565b8111156114815760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d41585f46454560a81b6044820152606401610945565b600181905560408051338152602081018390527fbca0d601c32979eebac4e8cd06375b6e45d39af80fc06a33f366425b450dfb6991015b60405180910390a150565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087614516565b949350505050565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087613fb3565b600c54600090610100900460ff16156115b65760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166115ee5760405162461bcd60e51b815260040161094590615b52565b6115f784613d1c565b6001600160a01b03841660009081526010602052604090206003810154600282015460095460115461162c9392919088613fb3565b91508282101561164e5760405162461bcd60e51b815260040161094590615d03565b6001600160a01b0385166000908152601060205260409020600390810154611682916109c390670de0b6b3a7640000615ba9565b8211156116a15760405162461bcd60e51b815260040161094590615bd5565b6116af816003015483613f20565b600382015560006116c08582613d77565b604080518581524260208201529192506001600160a01b038816913391600080516020615de3833981519152910160405180910390a3604051858152600080516020615e238339815191529060200160405180910390a16117213386613f7d565b61172e610af38683613f20565b600254611744906001600160a01b031682613f90565b61174f863385613f9a565b6003546000906001600160a01b038881169116141561177a57506004546001600160a01b0316611788565b506003546001600160a01b03165b60125460035460405163efd4810360e01b81526001600160a01b039283169263efd48103926117c09291169085908b90600401615c4f565b602060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118019190615c73565b15610d6657600380546001600160a01b0316600090815260106020526040812091820154600283015460095460115461183d939291908c613fb3565b905061184d826003015482613f20565b600383015561185d886000613d77565b600c54604080518481524260208201529296506001600160a01b0386811693620100009093041691600080516020615de3833981519152910160405180910390a3600c546118ba906201000090046001600160a01b031689613f7d565b6118c7610af38986613f20565b6002546118dd906001600160a01b031685613f90565b600c546118fb9084906201000090046001600160a01b031683613f9a565b6012546003546040516307b01ab360e41b81526001600160a01b039182166004820152858216602482015260448101849052606481018b9052911690637b01ab3090608401600060405180830381600087803b15801561195a57600080fd5b505af115801561196e573d6000803e3d6000fd5b50505050600080516020615e0383398151915288604051610d5b91815260200190565b600c54610100900460ff16156119b95760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166119f15760405162461bcd60e51b815260040161094590615b52565b60006119fc60095490565b90506000611a0a858361459a565b905080611a295760405162461bcd60e51b815260040161094590615c00565b60005b600f54811015611b71576000600f8281548110611a4b57611a4b615d2a565b60009182526020808320909101546001600160a01b03168083526010909152604082206003015490925090611a808583613d77565b905080611a9f5760405162461bcd60e51b815260040161094590615c00565b878785818110611ab157611ab1615d2a565b90506020020135811115611ad75760405162461bcd60e51b815260040161094590615c29565b6001600160a01b038316600090815260106020526040902060030154611afd90826146b2565b6001600160a01b038416600081815260106020526040908190206003019290925590513390600080516020615e4383398151915290611b489085904290918252602082015260400190565b60405180910390a3611b5b833383614704565b5050508080611b6990615d40565b915050611a2c565b50611b7b85614719565b611b853386613f90565b604051858152600080516020615e238339815191529060200160405180910390a15050600c805461ff0019169055505050565b600c54600090610100900460ff1615611be35760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff16611c1b5760405162461bcd60e51b815260040161094590615b52565b611c2484613d1c565b6001600160a01b038416600090815260106020526040902060030154611c57906109ce6002670de0b6b3a7640000615ba9565b831115611c765760405162461bcd60e51b815260040161094590615d5b565b6001600160a01b038416600090815260106020526040902060038101546002820154600954601154611cab9392919088614516565b915082821015611ccd5760405162461bcd60e51b815260040161094590615d03565b611cdb8160030154856146b2565b6003820155604080518581524260208201526001600160a01b038716913391600080516020615e43833981519152910160405180910390a3604051828152600080516020615e238339815191529060200160405180910390a1611d3d82614719565b611d473383613f90565b611d52853386614704565b600380546001600160a01b031660009081526010602052604081209182015460028301546009546011548493611d8c939092909189614722565b6003549091506001600160a01b0389811691161415611db8576004546001600160a01b03169150611dc7565b6003546001600160a01b031691505b6012546003546040516326b1f01f60e01b81526001600160a01b03928316926326b1f01f92611dff9291169086908690600401615c4f565b602060405180830381865afa158015611e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e409190615c73565b15611f63576012546003546040516399039fcf60e01b81526001600160a01b03928316926399039fcf92611e7d9291169086908690600401615c4f565b600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050611ebd8360030154826146b2565b6003840155600c54604080518381524260208201526001600160a01b03858116936201000090041691600080516020615e43833981519152910160405180910390a3604051858152600080516020615e038339815191529060200160405180910390a1611f2985614719565b600c54611f45906201000090046001600160a01b031686613f90565b600c54611f639083906201000090046001600160a01b031683614704565b50505050600c805461ff00191690559392505050565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115611fce573360009081526008602090815260408083206001600160a01b0388168452909152812055611ffd565b611fd88184613f20565b3360009081526008602090815260408083206001600160a01b03891684529091529020555b3360008181526008602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020615e63833981519152910160405180910390a35060019392505050565b600c54600090610100900460ff161561207a5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166120b25760405162461bcd60e51b815260040161094590615b52565b6120bb84613d1c565b6001600160a01b0384166000908152601060205260409020600381015460028201546009546011546120f09392919088614722565b91508161210f5760405162461bcd60e51b815260040161094590615c00565b8282111561212f5760405162461bcd60e51b815260040161094590615c29565b6001600160a01b038516600090815260106020526040902060030154612162906109ce6002670de0b6b3a7640000615ba9565b8211156121815760405162461bcd60e51b815260040161094590615d5b565b61218f8160030154836146b2565b6003820155604080518381524260208201526001600160a01b038716913391600080516020615e43833981519152910160405180910390a3604051848152600080516020615e238339815191529060200160405180910390a16121f184614719565b6121fb3385613f90565b612206853384614704565b600380546001600160a01b0316600090815260106020526040812091820154600283015460095460115461223d939291908a614722565b6003549091506000906001600160a01b038981169116141561226b57506004546001600160a01b0316612279565b506003546001600160a01b03165b6012546003546040516326b1f01f60e01b81526001600160a01b03928316926326b1f01f926122b19291169085908790600401615c4f565b602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190615c73565b15611f63576012546003546040516399039fcf60e01b81526001600160a01b03928316926399039fcf9261232f9291169085908790600401615c4f565b600060405180830381600087803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b5050505061236f8360030154836146b2565b6003840155600c54604080518481524260208201526001600160a01b03848116936201000090041691600080516020615e43833981519152910160405180910390a36123ba87614719565b600c546123d6906201000090046001600160a01b031688613f90565b600c546123f49082906201000090046001600160a01b031684614704565b604051878152600080516020615e038339815191529060200160405180910390a150505050600c805461ff00191690559392505050565b600d546001600160a01b0316331461247d5760405162461bcd60e51b815260206004820152601560248201527427a7262c9026a0a925a2aa1021a7a62622a1aa27a960591b6044820152606401610945565b6001600160a01b0381166124d35760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964205f6e6577436f6c6c6563746f7220616464726573730000006044820152606401610945565b600d80546001600160a01b0319166001600160a01b0383169081179091556040805133815260208101929092527f82aaf1a11850bc9b5eb1b7db8b4ad08629911d970a4d7539875938c4017e59b891016114b8565b610f05620f4240670de0b6b3a7640000615ba9565b6000612547612c21565b905060005b81518110156126cb5760006006600084848151811061256d5761256d615d2a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205490506000600660008585815181106125b0576125b0615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550612628600d60009054906101000a90046001600160a01b03168285858151811061260857612608615d2a565b60200260200101516001600160a01b03166147bc9092919063ffffffff16565b7fbaf1ab77be65c7abf8fcd922bfcf0a749f556ac1a4cdf39c126ffaa1851edb5633600d60009054906101000a90046001600160a01b031685858151811061267257612672615d2a565b6020026020010151846040516126b094939291906001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390a150806126c381615d40565b91505061254c565b5050565b610f0564e8d4a51000670de0b6b3a7640000615ba9565b600c54600090610100900460ff16156127115760405162461bcd60e51b815260040161094590615b2d565b5060115490565b610f05670de0b6b3a76400006064615ccb565b600c54600090610100900460ff16156127565760405162461bcd60e51b815260040161094590615b2d565b61275f82613d1c565b506001600160a01b0381166000908152601060205260409020600201545b919050565b6060600b8054610d8a90615c90565b6127a46003670de0b6b3a7640000615ba9565b610f05906001615bbd565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087613e5c565b600061281c338484614352565b50600192915050565b600061282f612c21565b905060005b81518110156126cb5760006005600084848151811061285557612855615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905060006005600085858151811061289857612898615d2a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506128f0600e60009054906101000a90046001600160a01b03168285858151811061260857612608615d2a565b7fed2b0288692cfc6d01c94a67a53721792f59c3d1388221f8aa4f66c8d2808dde33600e60009054906101000a90046001600160a01b031685858151811061293a5761293a615d2a565b60200260200101518460405161297894939291906001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390a1508061298b81615d40565b915050612834565b600c54610100900460ff16156129bb5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166129f35760405162461bcd60e51b815260040161094590615b52565b60006129fe60095490565b90506000612a0d856000613d77565b90506000612a1b8683613f20565b90506000612a29828561459a565b905080612a485760405162461bcd60e51b815260040161094590615c00565b612a523388613f7d565b600254612a68906001600160a01b031684613f90565b612a7182613f87565b60005b600f54811015612bb9576000600f8281548110612a9357612a93615d2a565b60009182526020808320909101546001600160a01b03168083526010909152604082206003015490925090612ac88583613d77565b905080612ae75760405162461bcd60e51b815260040161094590615c00565b898985818110612af957612af9615d2a565b90506020020135811015612b1f5760405162461bcd60e51b815260040161094590615d03565b6001600160a01b038316600090815260106020526040902060030154612b459082613f20565b6001600160a01b038416600081815260106020526040908190206003019290925590513390600080516020615de383398151915290612b909085904290918252602082015260400190565b60405180910390a3612ba3833383613f9a565b5050508080612bb190615d40565b915050612a74565b50604051878152600080516020615e238339815191529060200160405180910390a15050600c805461ff00191690555050505050565b610f05600a670de0b6b3a7640000615ba9565b6001612c17670de0b6b3a76400006002615ccb565b610f059190615d85565b600c54606090610100900460ff1615612c4c5760405162461bcd60e51b815260040161094590615b2d565b600e54600160a01b900460ff16612c755760405162461bcd60e51b815260040161094590615b52565b600f805480602002602001604051908101604052809291908181526020018280548015610e0357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cad575050505050905090565b6060806000612ce1612c21565b90506000815167ffffffffffffffff811115612cff57612cff615d9c565b604051908082528060200260200182016040528015612d28578160200160208202803683370190505b5090506000825167ffffffffffffffff811115612d4757612d47615d9c565b604051908082528060200260200182016040528015612d70578160200160208202803683370190505b50905060005b8351811015612e3957838181518110612d9157612d91615d2a565b6020026020010151838281518110612dab57612dab615d2a565b60200260200101906001600160a01b031690816001600160a01b03168152505060056000858381518110612de157612de1615d2a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110612e1c57612e1c615d2a565b602090810291909101015280612e3181615d40565b915050612d76565b509094909350915050565b601254600090600160a01b900460ff1615612ea15760405162461bcd60e51b815260206004820152601760248201527f4552525f414c52454144595f494e495449414c495a45440000000000000000006044820152606401610945565b6001600160a01b038916612ef75760405162461bcd60e51b815260206004820152601e60248201527f4552525f494e56414c49445f434f4e54524f4c4c45525f4144445245535300006044820152606401610945565b6001600160a01b038816612f4d5760405162461bcd60e51b815260206004820152601b60248201527f4552525f494e56414c49445f464143544f52595f4144445245535300000000006044820152606401610945565b612f62620f4240670de0b6b3a7640000615ba9565b87876000818110612f7557612f75615d2a565b905060200201351015612fb85760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d494e5f46454560a81b6044820152606401610945565b612fcb600a670de0b6b3a7640000615ba9565b87876000818110612fde57612fde615d2a565b9050602002013511156130215760405162461bcd60e51b815260206004820152600b60248201526a4552525f4d41585f46454560a81b6044820152606401610945565b6130a78989898980806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805180820182528c93508b9250908a9060029083908390808284376000920191909152505060408051808201825291508a90600290839083908082843760009201919091525061481f915050565b9998505050505050505050565b600c546000908190610100900460ff16156130e15760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166131195760405162461bcd60e51b815260040161094590615b52565b6131388460005b6020020160208101906131339190615879565b613d1c565b613143846001613120565b60006010816131556020880188615879565b6001600160a01b0316815260208101919091526040016000908120915060108187600160200201602081019061318b9190615879565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506131ca82600301546002670de0b6b3a76400006109ce9190615ba9565b853511156131ea5760405162461bcd60e51b815260040161094590615d5b565b600061322083600301548460020154846003015485600201548a60036004811061321657613216615d2a565b602002013561407d565b9050604086013581111561326c5760405162461bcd60e51b81526020600482015260136024820152724552525f4241445f4c494d49545f505249434560681b6044820152606401610945565b60408051608081018252600385810154825260028087015460208085019190915291860154938301939093529184015460608201526000916132c39082908a35906132b9908d018d615879565b60608c013561495d565b909750915060208801358710156132ec5760405162461bcd60e51b815260040161094590615d03565b6132fa8560030154836146b2565b8560030181905550613310846003015488613f20565b846003018190555061334285600301548660020154866003015487600201548c60036004811061321657613216615d2a565b9550828610156133645760405162461bcd60e51b815260040161094590615c00565b60408801358611156133aa5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4c494d49545f505249434560881b6044820152606401610945565b6133b588358861459a565b8311156133d45760405162461bcd60e51b815260040161094590615c00565b6133e460408a0160208b01615879565b6001600160a01b03166133fa60208b018b615879565b604080518b358152602081018b9052428183015290516001600160a01b03929092169133917f50ef2fc267012b5c84b56835f16ffd5331ac5a151a3760d74908721ba78b0efe919081900360600190a461346261345a60208b018b615879565b338a35614704565b600061348c8935613487816109ce670de0b6b3a76400008e60035b6020020135613f20565b613f20565b9050606089013515613527576134d08a60025b6020020160208101906134b29190615879565b826134c060208e018e615879565b6001600160a01b031691906147bc565b7f73412e11c89feeef4b84e0900c5de25904e834da8f2e1b3cddfd55de4cb6ecae61350160608c0160408d01615879565b61350e60208d018d615879565b8360405161351e93929190615c4f565b60405180910390a15b61354161353a60408c0160208d01615879565b338a613f9a565b505050505050600c805461ff001916905590939092509050565b6060806000613568612c21565b90506000815167ffffffffffffffff81111561358657613586615d9c565b6040519080825280602002602001820160405280156135af578160200160208202803683370190505b5090506000825167ffffffffffffffff8111156135ce576135ce615d9c565b6040519080825280602002602001820160405280156135f7578160200160208202803683370190505b50905060005b8351811015612e395783818151811061361857613618615d2a565b602002602001015183828151811061363257613632615d2a565b60200260200101906001600160a01b031690816001600160a01b0316815250506006600085838151811061366857613668615d2a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106136a3576136a3615d2a565b6020908102919091010152806136b881615d40565b9150506135fd565b600c546000908190610100900460ff16156136ed5760405162461bcd60e51b815260040161094590615b2d565b600c805461ff001916610100179055600e54600160a01b900460ff166137255760405162461bcd60e51b815260040161094590615b52565b613730846000613120565b61373b846001613120565b600060108161374d6020880188615879565b6001600160a01b031681526020810191909152604001600090812091506010818760016020020160208101906137839190615879565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506137c281600301546003670de0b6b3a76400006109c39190615ba9565b602086013511156137e55760405162461bcd60e51b815260040161094590615bd5565b600061381183600301548460020154846003015485600201548a60036004811061321657613216615d2a565b9050604086013581111561385d5760405162461bcd60e51b81526020600482015260136024820152724552525f4241445f4c494d49545f505249434560681b6044820152606401610945565b60408051608081018252600385810154825260028087015460208085019190915291860154938301939093529184015460608201526000916138b69082908a810135906138ac908d018d615879565b60608c0135614b75565b909750915087358711156138dc5760405162461bcd60e51b815260040161094590615c29565b6138ea8560030154836146b2565b6003808701919091558401546139029089600161347d565b846003018190555061393485600301548660020154866003015487600201548c60036004811061321657613216615d2a565b9550828610156139565760405162461bcd60e51b815260040161094590615c00565b604088013586111561399c5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4c494d49545f505249434560881b6044820152606401610945565b6139aa8760208a013561459a565b8311156139c95760405162461bcd60e51b815260040161094590615c00565b6139d960408a0160208b01615879565b6001600160a01b03166139ef60208b018b615879565b6001600160a01b0316337f50ef2fc267012b5c84b56835f16ffd5331ac5a151a3760d74908721ba78b0efe8a8c6001604080519384526020918202929092013590830152429082015260600160405180910390a4613a5a613a5360208b018b615879565b3389614704565b6000613a7888613487816109ce670de0b6b3a76400008e600361347d565b9050606089013515613ae657613a8f8a600261349f565b7f73412e11c89feeef4b84e0900c5de25904e834da8f2e1b3cddfd55de4cb6ecae613ac060608c0160408d01615879565b613acd60208d018d615879565b83604051613add93929190615c4f565b60405180910390a15b613541613af960408c0160208d01615879565b3360208c0135613f9a565b6000613b0f85613d1c565b613b1884613d1c565b6001600160a01b0380861660009081526010602052604080822092871682529020600380830154600280850154928401549084015461137f9391908989614d99565b600c54606090610100900460ff1615612c755760405162461bcd60e51b815260040161094590615b2d565b3360009081526008602090815260408083206001600160a01b0386168452909152812054613bb390836146b2565b3360008181526008602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020615e638339815191529101610ee0565b610f056002670de0b6b3a7640000615ba9565b600c54600090610100900460ff1615613c365760405162461bcd60e51b815260040161094590615b2d565b613c3f82613d1c565b6001600160a01b038216600090815260106020526040902060020154601154610e9090829061459a565b600c54600090610100900460ff1615613c945760405162461bcd60e51b815260040161094590615b2d565b613c9d82613d1c565b506001600160a01b031660009081526010602052604090206003015490565b6001600160a01b03821660009081526010602090815260408083208151608081018352815460ff16151581526001820154938101939093526002810154918301829052600301546060830181905260095460115461152393919087614722565b6001600160a01b03811660009081526010602052604090205460ff16613d745760405162461bcd60e51b815260206004820152600d60248201526c11549497d393d517d093d55391609a1b6044820152606401610945565b50565b600080613d848385615ccb565b9050831580613d9b575082613d998583615ba9565b145b613dda5760405162461bcd60e51b815260206004820152601060248201526f4552525f4d554c5f4f564552464c4f5760801b6044820152606401610945565b6000613def6002670de0b6b3a7640000615ba9565b613df99083615bbd565b905081811015613e3e5760405162461bcd60e51b815260206004820152601060248201526f4552525f4d554c5f4f564552464c4f5760801b6044820152606401610945565b6000613e52670de0b6b3a764000083615ba9565b9695505050505050565b600080613e69868561459a565b90506000613e7f670de0b6b3a764000083613f20565b90506000613e8f82600154613d77565b90506000613eae86613ea9670de0b6b3a764000085613f20565b61459a565b90506000613ebc8b83613f20565b90506000613eca828d61459a565b90506000613ed88288614e4d565b90506000613ee6828d613d77565b90506000613ef48d83613f20565b9050613f0d81613ea9670de0b6b3a76400006000613f20565b9f9e505050505050505050505050505050565b6000806000613f2f8585614f6e565b915091508015613f755760405162461bcd60e51b81526020600482015260116024820152704552525f5355425f554e444552464c4f5760781b6044820152606401610945565b509392505050565b6126cb8282614fa5565b613d7481614fb0565b6126cb828261507c565b613fae6001600160a01b03841683836147bc565b505050565b600080613fc0868561459a565b90506000613fdb846109ce670de0b6b3a76400006000613f20565b90506000613fe98783613f20565b90506000613ff7828961459a565b9050600061401682614011670de0b6b3a76400008861459a565b614e4d565b90506000614024828d613d77565b905060006140328d83613f20565b9050600061405361404b670de0b6b3a76400008a613f20565b600154613d77565b905061406b826109ce670de0b6b3a764000084613f20565b9e9d5050505050505050505050505050565b60008061408a878761459a565b90506000614098868661459a565b905060006140a6838361459a565b905060006140ef670de0b6b3a7640000613ea9670de0b6b3a7640000896000546140ce6112af565b6001546140db9190615bbd565b6140e59190615bbd565b6134879190615bbd565b90506140fb8282613d77565b9a9950505050505050505050565b600c546201000090046001600160a01b0316331461415e5760405162461bcd60e51b815260206004820152601260248201527122a9292fa727aa2fa1a7a72a2927a62622a960711b6044820152606401610945565b6001600160a01b03831660009081526010602052604090205460ff16156141b65760405162461bcd60e51b815260206004820152600c60248201526b11549497d254d7d093d5539160a21b6044820152606401610945565b600e54600160a01b900460ff16156142035760405162461bcd60e51b815260206004820152601060248201526f11549497d254d7d1925390531256915160821b6044820152606401610945565b600f546002116142465760405162461bcd60e51b815260206004820152600e60248201526d4552525f4d41585f544f4b454e5360901b6044820152606401610945565b604080516080810182526001808252600f805460208085019182526000858701818152606087018281526001600160a01b038c1680845260109094529782209651875460ff1916901515178755925186860155915160028601559451600390940193909355805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055613fae838383615087565b600e805460ff60a01b1916600160a01b179055600c805460ff60b01b1916600160b01b17905561433461432f670de0b6b3a76400006064615ccb565b614719565b6143503361434b670de0b6b3a76400006064615ccb565b613f90565b565b6001600160a01b0383166000908152600760205260409020548111156143b15760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b6044820152606401610945565b6001600160a01b0383166000908152600760205260409020546143d49082613f20565b6001600160a01b03808516600090815260076020526040808220939093559084168152205461440390826146b2565b6001600160a01b0380841660008181526007602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906144579085815260200190565b60405180910390a3505050565b600080614471878661459a565b905060008054846144806112af565b60015461448d9190615bbd565b6144979190615bbd565b6144a19190615bbd565b905060006144b7670de0b6b3a764000083613f20565b90506144c38682613d77565b905060006144d58b613ea98d856146b2565b905060006144e38286614e4d565b905060006144f9670de0b6b3a764000083613f20565b90506145058b82613d77565b9d9c50505050505050505050505050565b600080614523868561459a565b9050600061453c61404b670de0b6b3a764000084613f20565b90506000614556856109ce670de0b6b3a764000085613f20565b905060006145648a836146b2565b90506000614572828c61459a565b905060006145808287614e4d565b9050600061458e828c613d77565b9050614505818c613f20565b6000816145d85760405162461bcd60e51b815260206004820152600c60248201526b4552525f4449565f5a45524f60a01b6044820152606401610945565b60006145ec670de0b6b3a764000085615ccb565b905083158061460b5750670de0b6b3a76400006146098583615ba9565b145b61464a5760405162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b6044820152606401610945565b6000614657600285615ba9565b6146619083615bbd565b9050818110156146a65760405162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b6044820152606401610945565b6000613e528583615ba9565b6000806146bf8385615bbd565b905083811015610e905760405162461bcd60e51b815260206004820152601060248201526f4552525f4144445f4f564552464c4f5760801b6044820152606401610945565b613fae6001600160a01b0384168330846152d7565b613d74816152fe565b60008061472f868561459a565b9050600061473d86856146b2565b9050600061474b828861459a565b90506000614761670de0b6b3a76400008561459a565b9050600061476f8383614e4d565b9050600061477d828d613d77565b9050600061478b828e613f20565b905060006147a461404b670de0b6b3a76400008a613f20565b905061406b82613ea9670de0b6b3a764000084613f20565b6040516001600160a01b038316602482015260448101829052613fae90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261536d565b600c805462010000600160b01b031916620100006001600160a01b038a81169190910291909117909155600280546001600160a01b03191691881691909117905584516000908690829061487557614875615d2a565b60200260200101516001819055508560018151811061489657614896615d2a565b602090810291909101810151600055600c8054961515600160b01b0260ff60b01b199097169690961795869055600e80548551600380546001600160a01b039283166001600160a01b03199182161790915596840151600480549183169189169190911790558551600d805491831691891691909117905594909201518416951515600160a01b908102959095166001600160a81b0319928316179590951790945550601280549093166201000090940416929092178217908190550460ff169392505050565b6000808061497a87600160200201518860035b602002015161459a565b9050600061499a87613487896109ce670de0b6b3a76400006134876112af565b6001600160a01b0387166000908152600560205260409020549091506149c090826146b2565b60056000886001600160a01b03166001600160a01b03168152602001908152602001600020819055506000614a07886134878a6109ce670de0b6b3a7640000600054613f20565b6001600160a01b038816600090815260066020526040902054909150614a2d90826146b2565b6001600160a01b03881660009081526006602052604081209190915580548790614a556112af565b600154614a629190615bbd565b614a6c9190615bbd565b614a769190615bbd565b90507f90d9f1d0641138b6407ac37bea3a905d63a371c2d91a484f68d59924634d4ef3614ab58a6134878c6109ce670de0b6b3a7640000600154613f20565b604080519182526020820186905281018490526001600160a01b038a16606082015260800160405180910390a16000614af6670de0b6b3a764000083613f20565b9050614b028a82613d77565b8b51909150600090614b1890613ea981856146b2565b90506000614b268288614e4d565b90506000614b3c670de0b6b3a764000083613f20565b9050614b4f8e6002602002015182613d77565b995089614b608e613487898b615bbd565b99509950505050505050505094509492505050565b60008080614b8c8760036020020151886001614970565b90506000614ba1886002602002015188613f20565b90506000614bb689600260200201518361459a565b90506000614bc48285614e4d565b9050614bd881670de0b6b3a7640000613f20565b90506000805488614be76112af565b600154614bf49190615bbd565b614bfe9190615bbd565b614c089190615bbd565b8b51909150614c2d90614c1b9084613d77565b613ea9670de0b6b3a764000084613f20565b96506000614c4d886134878a6109ce670de0b6b3a76400006134876112af565b6001600160a01b038b16600090815260056020526040902054909150614c7390826146b2565b600560008c6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000614cba896134878b6109ce670de0b6b3a7640000600054613f20565b6001600160a01b038c16600090815260066020526040902054909150614ce090826146b2565b6001600160a01b038c166000908152600660205260409020558c51614d1d90614d099086613d77565b613ea9670de0b6b3a7640000600154613f20565b97507f90d9f1d0641138b6407ac37bea3a905d63a371c2d91a484f68d59924634d4ef3614d5c8a6134878c6109ce670de0b6b3a7640000600154613f20565b604080519182526020820185905281018390526001600160a01b038d16606082015260800160405180910390a15050505050505094509492505050565b600080614da6858861459a565b90506000614db48786613f20565b90506000614dc2888361459a565b90506000614dd08285614e4d565b9050614de481670de0b6b3a7640000613f20565b90506000805487614df36112af565b600154614e009190615bbd565b614e0a9190615bbd565b614e149190615bbd565b9050614e28670de0b6b3a764000082613f20565b9550614e3d614e378d84613d77565b8761459a565b9c9b505050505050505050505050565b60006001831015614e985760405162461bcd60e51b81526020600482015260156024820152744552525f42504f575f424153455f544f4f5f4c4f5760581b6044820152606401610945565b6001614ead670de0b6b3a76400006002615ccb565b614eb79190615d85565b831115614eff5760405162461bcd60e51b815260206004820152601660248201527508aa4a4be84a09eaebe8482a68abea89e9ebe90928e960531b6044820152606401610945565b6000614f0a8361543f565b90506000614f188483613f20565b90506000614f2e86614f298561545d565b615471565b905081614f3f579250610eec915050565b6000614f628784614f5d6402540be400670de0b6b3a7640000615ba9565b6154e5565b905061137f8282613d77565b600080828410614f8d57614f828385615d85565b600091509150614f9e565b614f978484615d85565b6001915091505b9250929050565b6126cb823083614352565b306000908152600760205260409020548111156150065760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b6044820152606401610945565b306000908152600760205260409020546150209082613f20565b3060009081526007602052604090205560095461503d9082613f20565b60095560405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a350565b6126cb308383614352565b670de0b6b3a76400008110156150d05760405162461bcd60e51b815260206004820152600e60248201526d11549497d3525397d5d15251d21560921b6044820152606401610945565b6150e3670de0b6b3a76400006032615ccb565b8111156151235760405162461bcd60e51b815260206004820152600e60248201526d11549497d3505617d5d15251d21560921b6044820152606401610945565b61513a64e8d4a51000670de0b6b3a7640000615ba9565b82101561517b5760405162461bcd60e51b815260206004820152600f60248201526e4552525f4d494e5f42414c414e434560881b6044820152606401610945565b6001600160a01b03831660009081526010602052604090206002015480821115615217576151b46011546151af8484613f20565b6146b2565b6011556151ca670de0b6b3a76400006032615ccb565b60115411156152125760405162461bcd60e51b815260206004820152601460248201527311549497d3505617d513d5105317d5d15251d21560621b6044820152606401610945565b615233565b808210156152335761522f6011546134878385613f20565b6011555b6001600160a01b0384166000908152601060205260409020600281018390556003018054908490558084111561527c5761527785336152728785613f20565b614704565b6152d0565b808410156152d05760006152908286613f20565b9050600061529f826000613d77565b90506152b587336152b08585613f20565b613f9a565b6002546152cd9088906001600160a01b031683613f9a565b50505b5050505050565b6152f8846323b872dd60e01b8585856040516024016147e893929190615c4f565b50505050565b3060009081526007602052604090205461531890826146b2565b3060009081526007602052604090205560095461533590826146b2565b60095560405181815230906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001615071565b60006153c2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166155d59092919063ffffffff16565b805190915015613fae57808060200190518101906153e09190615c73565b613fae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610945565b6000670de0b6b3a76400006154538361545d565b610eec9190615ccb565b6000610eec670de0b6b3a764000083615ba9565b60008281615480600285615db2565b61549257670de0b6b3a7640000615494565b815b90506154a1600285615ba9565b93505b8315611523576154b48283613d77565b91506154c1600285615db2565b156154d3576154d08183613d77565b90505b6154de600285615ba9565b93506154a4565b60008281806154fc87670de0b6b3a7640000614f6e565b9092509050670de0b6b3a764000080600060015b8884106155c657600061552b670de0b6b3a764000083615ccb565b905060008061554b8a61554685670de0b6b3a7640000613f20565b614f6e565b9150915061555d876109ce848c613d77565b9650615569878461459a565b965086615578575050506155c6565b8715615582579315935b801561558c579315935b84156155a35761559c8688613f20565b95506155b0565b6155ad86886146b2565b95505b50505080806155be90615d40565b915050615510565b50909998505050505050505050565b6060611523848460008585843b61562e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610945565b600080866001600160a01b0316858760405161564a9190615dc6565b60006040518083038185875af1925050503d8060008114615687576040519150601f19603f3d011682016040523d82523d6000602084013e61568c565b606091505b509150915061137f828286606083156156a6575081610e90565b8251156156b65782518084602001fd5b8160405162461bcd60e51b81526004016109459190615746565b80356001600160a01b038116811461277d57600080fd5b6000806000606084860312156156fc57600080fd5b615705846156d0565b95602085013595506040909401359392505050565b60005b8381101561573557818101518382015260200161571d565b838111156152f85750506000910152565b602081526000825180602084015261576581604085016020870161571a565b601f01601f19169190910160400192915050565b60008060006060848603121561578e57600080fd5b615797846156d0565b92506157a5602085016156d0565b9150604084013590509250925092565b600080604083850312156157c857600080fd5b6157d1836156d0565b946020939093013593505050565b60008060008060008060c087890312156157f857600080fd5b615801876156d0565b9550602087013594506040870135935061581d606088016156d0565b92506080870135915060a087013590509295509295509295565b6000806000806080858703121561584d57600080fd5b615856856156d0565b9350615864602086016156d0565b93969395505050506040820135916060013590565b60006020828403121561588b57600080fd5b610e90826156d0565b6000602082840312156158a657600080fd5b5035919050565b60008083601f8401126158bf57600080fd5b50813567ffffffffffffffff8111156158d757600080fd5b6020830191508360208260051b8501011115614f9e57600080fd5b60008060006040848603121561590757600080fd5b83359250602084013567ffffffffffffffff81111561592557600080fd5b615931868287016158ad565b9497909650939450505050565b600081518084526020808501945080840160005b838110156159775781516001600160a01b031687529582019590820190600101615952565b509495945050505050565b602081526000610e90602083018461593e565b6040815260006159a8604083018561593e565b82810360208481019190915284518083528582019282019060005b818110156159df578451835293830193918301916001016159c3565b5090979650505050505050565b8015158114613d7457600080fd5b8060408101831015610eec57600080fd5b600080600080600080600080610120898b031215615a2857600080fd5b615a31896156d0565b9750615a3f60208a016156d0565b9650604089013567ffffffffffffffff811115615a5b57600080fd5b615a678b828c016158ad565b9097509550506060890135615a7b816159ec565b93506080890135615a8b816159ec565b9250615a9a8a60a08b016159fa565b9150615aa98a60e08b016159fa565b90509295985092959890939650565b60008060e08385031215615acb57600080fd5b6060830184811115615adc57600080fd5b8392508460e085011115615aef57600080fd5b809150509250929050565b60008060408385031215615b0d57600080fd5b615b16836156d0565b9150615b24602084016156d0565b90509250929050565b6020808252600b908201526a4552525f5245454e54525960a81b604082015260600190565b60208082526011908201527011549497d393d517d19253905312569151607a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082615bb857615bb8615b7d565b500490565b60008219821115615bd057615bd0615b93565b500190565b6020808252601190820152704552525f4d41585f4f55545f524154494f60781b604082015260600190565b6020808252600f908201526e08aa4a4be9a82a890be82a0a0a49eb608b1b604082015260600190565b6020808252600c908201526b22a9292fa624a6a4aa2fa4a760a11b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615c8557600080fd5b8151610e90816159ec565b600181811c90821680615ca457607f821691505b60208210811415615cc557634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615615ce557615ce5615b93565b500290565b600060208284031215615cfc57600080fd5b5051919050565b6020808252600d908201526c11549497d31253525517d3d555609a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415615d5457615d54615b93565b5060010190565b60208082526010908201526f4552525f4d41585f494e5f524154494f60801b604082015260600190565b600082821015615d9757615d97615b93565b500390565b634e487b7160e01b600052604160045260246000fd5b600082615dc157615dc1615b7d565b500690565b60008251615dd881846020870161571a565b919091019291505056fe9d9058fd2f25ccc389fec7720abef0ca83472f5abfafd5f10d37f51e6a0493f387b3975661762d852ddf2eeaad6a43b2d93777de7b3b7bdb634283df32456118fcda32798d5a9d032f49b37fea876d422f18f6e386e0f07db6029b693624b2c215a8ca63e37b2cff1677df2b6b82d36fcf8a524228bd7a4b4d02d107c28c1e8a8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220dd27ead8c9c3c0bb206313d54c68f9281b11dfee1171b5653a1419897a2c772764736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/BToken.json b/abis/BToken.json deleted file mode 100644 index 64bc9f3..0000000 --- a/abis/BToken.json +++ /dev/null @@ -1,489 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BToken", - "sourceName": "contracts/pools/balancer/BToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "BONE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "BPOW_PRECISION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXIT_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INIT_POOL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_IN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_OUT_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_TOTAL_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BALANCE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "whom", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "decreaseApproval", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "increaseApproval", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amt", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60c0604052601360808190527f42616c616e63657220506f6f6c20546f6b656e0000000000000000000000000060a09081526200004091600391906200008f565b506040805180820190915260038082526210941560ea1b60209092019182526200006d916004916200008f565b506005805460ff191660121790553480156200008857600080fd5b5062000172565b8280546200009d9062000135565b90600052602060002090601f016020900481019282620000c157600085556200010c565b82601f10620000dc57805160ff19168380011785556200010c565b828001600101855582156200010c579182015b828111156200010c578251825591602001919060010190620000ef565b506200011a9291506200011e565b5090565b5b808211156200011a57600081556001016200011f565b600181811c908216806200014a57607f821691505b602082108114156200016c57634e487b7160e01b600052602260045260246000fd5b50919050565b610bf480620001826000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806395d89b41116100f9578063bc694ea211610097578063d73dd62311610071578063d73dd623146102eb578063dd62ed3e146102fe578063e4a28a52146101ef578063ec0930211461033757600080fd5b8063bc694ea2146102db578063c36596a614610215578063c6580d12146102e357600080fd5b8063b0e0d136116100d3578063b0e0d136146102c3578063b7b800a4146102c3578063ba019dab146102cb578063bc063e1a146102d357600080fd5b806395d89b41146102a0578063992e2a92146102a8578063a9059cbb146102b057600080fd5b806323b872dd1161016657806370a082311161014057806370a082311461025f57806376c7a3c714610288578063867378c5146102905780639381cd2b1461029857600080fd5b806323b872dd14610224578063313ce56714610237578063661884631461024c57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806309a3bbe4146101ef57806318160ddd14610205578063189d00ca1461020d578063218b538214610215575b600080fd5b6101b661033f565b6040516101c391906109b8565b60405180910390f35b6101df6101da366004610a29565b6103d1565b60405190151581526020016101c3565b6101f761042b565b6040519081526020016101c3565b6002546101f7565b6101f7610441565b6101f7670de0b6b3a764000081565b6101df610232366004610a53565b610458565b60055460405160ff90911681526020016101c3565b6101df61025a366004610a29565b6105b1565b6101f761026d366004610a8f565b6001600160a01b031660009081526020819052604090205490565b6101f7610687565b6101f761069c565b6101f76106b3565b6101b66106c6565b6101f76106d5565b6101df6102be366004610a29565b6106f3565b6101f7600281565b6101f7600181565b6101f7610709565b6101f761071c565b6101f7600081565b6101df6102f9366004610a29565b61073b565b6101f761030c366004610aaa565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101f76107ae565b60606003805461034e90610add565b80601f016020809104026020016040519081016040528092919081815260200182805461037a90610add565b80156103c75780601f1061039c576101008083540402835291602001916103c7565b820191906000526020600020905b8154815290600101906020018083116103aa57829003601f168201915b5050505050905090565b3360008181526001602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020610b9f8339815191529061041a9086815260200190565b60405180910390a350600192915050565b61043e670de0b6b3a76400006032610b2e565b81565b61043e6402540be400670de0b6b3a7640000610b4d565b6000336001600160a01b038516148061049457506001600160a01b03841660009081526001602090815260408083203384529091529020548211155b6104dd5760405162461bcd60e51b815260206004820152601560248201527422a9292fa12a27a5a2a72fa120a22fa1a0a62622a960591b60448201526064015b60405180910390fd5b6104e88484846107c1565b336001600160a01b0385161480159061052657506001600160a01b038416600090815260016020908152604080832033845290915290205460001914155b156105a7576001600160a01b038416600090815260016020908152604080832033845290915290205461055990836108cb565b6001600160a01b038581166000908152600160209081526040808320338085529083529281902085905551938452918616929091600080516020610b9f833981519152910160405180910390a35b5060019392505050565b3360009081526001602090815260408083206001600160a01b038616845290915281205480831115610606573360009081526001602090815260408083206001600160a01b0388168452909152812055610635565b61061081846108cb565b3360009081526001602090815260408083206001600160a01b03891684529091529020555b3360008181526001602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020610b9f833981519152910160405180910390a35060019392505050565b61043e620f4240670de0b6b3a7640000610b4d565b61043e64e8d4a51000670de0b6b3a7640000610b4d565b61043e670de0b6b3a76400006064610b2e565b60606004805461034e90610add565b6106e86003670de0b6b3a7640000610b4d565b61043e906001610b6f565b60006107003384846107c1565b50600192915050565b61043e600a670de0b6b3a7640000610b4d565b6001610731670de0b6b3a76400006002610b2e565b61043e9190610b87565b3360009081526001602090815260408083206001600160a01b03861684529091528120546107699083610928565b3360008181526001602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020610b9f833981519152910161041a565b61043e6002670de0b6b3a7640000610b4d565b6001600160a01b0383166000908152602081905260409020548111156108205760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b60448201526064016104d4565b6001600160a01b03831660009081526020819052604090205461084390826108cb565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546108729082610928565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008060006108da8585610981565b9150915080156109205760405162461bcd60e51b81526020600482015260116024820152704552525f5355425f554e444552464c4f5760781b60448201526064016104d4565b509392505050565b6000806109358385610b6f565b90508381101561097a5760405162461bcd60e51b815260206004820152601060248201526f4552525f4144445f4f564552464c4f5760801b60448201526064016104d4565b9392505050565b6000808284106109a0576109958385610b87565b6000915091506109b1565b6109aa8484610b87565b6001915091505b9250929050565b600060208083528351808285015260005b818110156109e5578581018301518582016040015282016109c9565b818111156109f7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b600080600060608486031215610a6857600080fd5b610a7184610a0d565b9250610a7f60208501610a0d565b9150604084013590509250925092565b600060208284031215610aa157600080fd5b61097a82610a0d565b60008060408385031215610abd57600080fd5b610ac683610a0d565b9150610ad460208401610a0d565b90509250929050565b600181811c90821680610af157607f821691505b60208210811415610b1257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610b4857610b48610b18565b500290565b600082610b6a57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610b8257610b82610b18565b500190565b600082821015610b9957610b99610b18565b50039056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122063870954821c8d23cac72269222519091fd3326178699a9348b1f0e25593376c64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806395d89b41116100f9578063bc694ea211610097578063d73dd62311610071578063d73dd623146102eb578063dd62ed3e146102fe578063e4a28a52146101ef578063ec0930211461033757600080fd5b8063bc694ea2146102db578063c36596a614610215578063c6580d12146102e357600080fd5b8063b0e0d136116100d3578063b0e0d136146102c3578063b7b800a4146102c3578063ba019dab146102cb578063bc063e1a146102d357600080fd5b806395d89b41146102a0578063992e2a92146102a8578063a9059cbb146102b057600080fd5b806323b872dd1161016657806370a082311161014057806370a082311461025f57806376c7a3c714610288578063867378c5146102905780639381cd2b1461029857600080fd5b806323b872dd14610224578063313ce56714610237578063661884631461024c57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806309a3bbe4146101ef57806318160ddd14610205578063189d00ca1461020d578063218b538214610215575b600080fd5b6101b661033f565b6040516101c391906109b8565b60405180910390f35b6101df6101da366004610a29565b6103d1565b60405190151581526020016101c3565b6101f761042b565b6040519081526020016101c3565b6002546101f7565b6101f7610441565b6101f7670de0b6b3a764000081565b6101df610232366004610a53565b610458565b60055460405160ff90911681526020016101c3565b6101df61025a366004610a29565b6105b1565b6101f761026d366004610a8f565b6001600160a01b031660009081526020819052604090205490565b6101f7610687565b6101f761069c565b6101f76106b3565b6101b66106c6565b6101f76106d5565b6101df6102be366004610a29565b6106f3565b6101f7600281565b6101f7600181565b6101f7610709565b6101f761071c565b6101f7600081565b6101df6102f9366004610a29565b61073b565b6101f761030c366004610aaa565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101f76107ae565b60606003805461034e90610add565b80601f016020809104026020016040519081016040528092919081815260200182805461037a90610add565b80156103c75780601f1061039c576101008083540402835291602001916103c7565b820191906000526020600020905b8154815290600101906020018083116103aa57829003601f168201915b5050505050905090565b3360008181526001602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020610b9f8339815191529061041a9086815260200190565b60405180910390a350600192915050565b61043e670de0b6b3a76400006032610b2e565b81565b61043e6402540be400670de0b6b3a7640000610b4d565b6000336001600160a01b038516148061049457506001600160a01b03841660009081526001602090815260408083203384529091529020548211155b6104dd5760405162461bcd60e51b815260206004820152601560248201527422a9292fa12a27a5a2a72fa120a22fa1a0a62622a960591b60448201526064015b60405180910390fd5b6104e88484846107c1565b336001600160a01b0385161480159061052657506001600160a01b038416600090815260016020908152604080832033845290915290205460001914155b156105a7576001600160a01b038416600090815260016020908152604080832033845290915290205461055990836108cb565b6001600160a01b038581166000908152600160209081526040808320338085529083529281902085905551938452918616929091600080516020610b9f833981519152910160405180910390a35b5060019392505050565b3360009081526001602090815260408083206001600160a01b038616845290915281205480831115610606573360009081526001602090815260408083206001600160a01b0388168452909152812055610635565b61061081846108cb565b3360009081526001602090815260408083206001600160a01b03891684529091529020555b3360008181526001602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020610b9f833981519152910160405180910390a35060019392505050565b61043e620f4240670de0b6b3a7640000610b4d565b61043e64e8d4a51000670de0b6b3a7640000610b4d565b61043e670de0b6b3a76400006064610b2e565b60606004805461034e90610add565b6106e86003670de0b6b3a7640000610b4d565b61043e906001610b6f565b60006107003384846107c1565b50600192915050565b61043e600a670de0b6b3a7640000610b4d565b6001610731670de0b6b3a76400006002610b2e565b61043e9190610b87565b3360009081526001602090815260408083206001600160a01b03861684529091528120546107699083610928565b3360008181526001602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020610b9f833981519152910161041a565b61043e6002670de0b6b3a7640000610b4d565b6001600160a01b0383166000908152602081905260409020548111156108205760405162461bcd60e51b815260206004820152601460248201527311549497d25394d551919250d251539517d0905360621b60448201526064016104d4565b6001600160a01b03831660009081526020819052604090205461084390826108cb565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546108729082610928565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008060006108da8585610981565b9150915080156109205760405162461bcd60e51b81526020600482015260116024820152704552525f5355425f554e444552464c4f5760781b60448201526064016104d4565b509392505050565b6000806109358385610b6f565b90508381101561097a5760405162461bcd60e51b815260206004820152601060248201526f4552525f4144445f4f564552464c4f5760801b60448201526064016104d4565b9392505050565b6000808284106109a0576109958385610b87565b6000915091506109b1565b6109aa8484610b87565b6001915091505b9250929050565b600060208083528351808285015260005b818110156109e5578581018301518582016040015282016109c9565b818111156109f7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b600080600060608486031215610a6857600080fd5b610a7184610a0d565b9250610a7f60208501610a0d565b9150604084013590509250925092565b600060208284031215610aa157600080fd5b61097a82610a0d565b60008060408385031215610abd57600080fd5b610ac683610a0d565b9150610ad460208401610a0d565b90509250929050565b600181811c90821680610af157607f821691505b60208210811415610b1257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610b4857610b48610b18565b500290565b600082610b6a57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610b8257610b82610b18565b500190565b600082821015610b9957610b99610b18565b50039056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122063870954821c8d23cac72269222519091fd3326178699a9348b1f0e25593376c64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/Dispenser.json b/abis/Dispenser.json deleted file mode 100644 index 44fcf1d..0000000 --- a/abis/Dispenser.json +++ /dev/null @@ -1,371 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dispenser", - "sourceName": "contracts/pools/dispenser/Dispenser.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_router", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - } - ], - "name": "DispenserActivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAllowedSwapper", - "type": "address" - } - ], - "name": "DispenserAllowedSwapperChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "DispenserCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - } - ], - "name": "DispenserDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "OwnerWithdrawed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "TokensDispensed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - } - ], - "name": "activate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "create", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "datatokensList", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - } - ], - "name": "deactivate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "name": "dispense", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - } - ], - "name": "ownerWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "address", - "name": "newAllowedSwapper", - "type": "address" - } - ], - "name": "setAllowedSwapper", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - } - ], - "name": "status", - "outputs": [ - { - "internalType": "bool", - "name": "active", - "type": "bool" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "isMinter", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161163038038061163083398101604081905261002f916100b3565b60016000556001600160a01b03811661008e5760405162461bcd60e51b815260206004820152601f60248201527f44697370656e7365723a2057726f6e6720526f75746572206164647265737300604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790556100e3565b6000602082840312156100c557600080fd5b81516001600160a01b03811681146100dc57600080fd5b9392505050565b61153e806100f26000396000f3fe6080604052600436106100915760003560e01c80635d1ca631116100595780635d1ca63114610148578063645b8b1b14610164578063938d71d0146101c7578063f887ea40146101e7578063f9bfaa7d1461020757600080fd5b80631d746d831461009657806324ce2917146100ab5780633398086a146100cb5780633ea053eb1461010857806345d6646b14610128575b600080fd5b6100a96100a43660046112c5565b610227565b005b3480156100b757600080fd5b506100a96100c6366004611301565b6107a5565b3480156100d757600080fd5b506100eb6100e6366004611358565b6109d8565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011457600080fd5b506100a9610123366004611371565b610a02565b34801561013457600080fd5b506100a961014336600461138c565b610adf565b34801561015457600080fd5b50604051600181526020016100ff565b34801561017057600080fd5b5061018461017f366004611371565b610bcd565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100ff565b3480156101d357600080fd5b506100a96101e23660046113bf565b610d36565b3480156101f357600080fd5b506001546100eb906001600160a01b031681565b34801561021357600080fd5b506100a9610222366004611371565b610e56565b6002600054141561027f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556001600160a01b0383166102aa5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b03831660009081526002602052604090205460ff166103095760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b6044820152606401610276565b6000821161034f5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b6044820152606401610276565b6001600160a01b0383166000908152600260205260409020600101548211156103ac5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610276565b6001600160a01b03838116600090815260026020526040902060030154161561044d576001600160a01b0383811660009081526002602052604090206003015416331461044d5760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b6064820152608401610276565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a0823190602401602060405180830381865afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bc9190611429565b6001600160a01b03861660009081526002602081905260409091200154909150811061052a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f20686967680000000000000000006044820152606401610276565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105959190611429565b9050848110801561060957506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a90602401602060405180830381865afa1580156105e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106099190611442565b156106f1576001600160a01b0383166340c10f19306106288489611464565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561066e57600080fd5b505af1158015610682573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190611429565b90505b848110156107375760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b6044820152606401610276565b61074b6001600160a01b0387168587611006565b836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f135438760405161079091815260200190565b60405180910390a35050600160005550505050565b6001546001600160a01b031633146107f85760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b6044820152606401610276565b6001600160a01b03851661081e5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b03858116600090815260026020526040902054610100900416158061086b57506001600160a01b0385811660009081526002602052604090205461010090048116908316145b6108b75760405162461bcd60e51b815260206004820152601960248201527f44617461746f6b656e20616c72656164792063726561746564000000000000006044820152606401610276565b6001600160a01b038581166000818152600260208181526040808420805489881661010081026001600160a81b031990921691909117600190811783558083018d90559482018b905560039182018054988a166001600160a01b0319998a16811790915582549586018355919095527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b600381815481106109e857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a285760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038181166000908152600260205260409020546101009004163314610a965760405162461bcd60e51b815260206004820152601b60248201527f44617461746f6b656e20616c72656164792061637469766174656400000000006044820152606401610276565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610b055760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038281166000908152600260205260409020546101009004163314610b735760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610276565b6001600160a01b0382811660008181526002602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610bfb5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b0388811660008181526002602081905260409182902080546001820154919092015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a0823190602401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190611429565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a90602401602060405180830381865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190611442565b6001600160a01b03998a16600090815260026020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610d5c5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038381166000908152600260205260409020546101009004163314610dba5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610276565b6001600160a01b0383166000818152600260208190526040808320805460ff191660019081178255818101889055920185905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b60026000541415610ea95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610276565b60026000556001600160a01b038116610ed45760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038181166000908152600260205260409020546101009004163314610f325760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610276565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190611429565b90508015610ffc57610fbb6001600160a01b0384163383611006565b60405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b5050600160005550565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261105890849061105d565b505050565b60006110b2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661112f9092919063ffffffff16565b80519091501561105857808060200190518101906110d09190611442565b6110585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610276565b606061113e8484600085611148565b90505b9392505050565b6060824710156111a95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610276565b843b6111f75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610276565b600080866001600160a01b0316858760405161121391906114b9565b60006040518083038185875af1925050503d8060008114611250576040519150601f19603f3d011682016040523d82523d6000602084013e611255565b606091505b5091509150611265828286611270565b979650505050505050565b6060831561127f575081611141565b82511561128f5782518084602001fd5b8160405162461bcd60e51b815260040161027691906114d5565b80356001600160a01b03811681146112c057600080fd5b919050565b6000806000606084860312156112da57600080fd5b6112e3846112a9565b9250602084013591506112f8604085016112a9565b90509250925092565b600080600080600060a0868803121561131957600080fd5b611322866112a9565b9450602086013593506040860135925061133e606087016112a9565b915061134c608087016112a9565b90509295509295909350565b60006020828403121561136a57600080fd5b5035919050565b60006020828403121561138357600080fd5b611141826112a9565b6000806040838503121561139f57600080fd5b6113a8836112a9565b91506113b6602084016112a9565b90509250929050565b6000806000606084860312156113d457600080fd5b6113dd846112a9565b95602085013595506040909401359392505050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60006020828403121561143b57600080fd5b5051919050565b60006020828403121561145457600080fd5b8151801515811461114157600080fd5b60008282101561148457634e487b7160e01b600052601160045260246000fd5b500390565b60005b838110156114a457818101518382015260200161148c565b838111156114b3576000848401525b50505050565b600082516114cb818460208701611489565b9190910192915050565b60208152600082518060208401526114f4816040850160208701611489565b601f01601f1916919091016040019291505056fea26469706673582212203d786a3237473f58ef40ae940f143ec7e55114c5cb755814614b2ef2be08a55064736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106100915760003560e01c80635d1ca631116100595780635d1ca63114610148578063645b8b1b14610164578063938d71d0146101c7578063f887ea40146101e7578063f9bfaa7d1461020757600080fd5b80631d746d831461009657806324ce2917146100ab5780633398086a146100cb5780633ea053eb1461010857806345d6646b14610128575b600080fd5b6100a96100a43660046112c5565b610227565b005b3480156100b757600080fd5b506100a96100c6366004611301565b6107a5565b3480156100d757600080fd5b506100eb6100e6366004611358565b6109d8565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011457600080fd5b506100a9610123366004611371565b610a02565b34801561013457600080fd5b506100a961014336600461138c565b610adf565b34801561015457600080fd5b50604051600181526020016100ff565b34801561017057600080fd5b5061018461017f366004611371565b610bcd565b6040805197151588526001600160a01b039687166020890152941515948701949094526060860192909252608085015260a08401521660c082015260e0016100ff565b3480156101d357600080fd5b506100a96101e23660046113bf565b610d36565b3480156101f357600080fd5b506001546100eb906001600160a01b031681565b34801561021357600080fd5b506100a9610222366004611371565b610e56565b6002600054141561027f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556001600160a01b0383166102aa5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b03831660009081526002602052604090205460ff166103095760405162461bcd60e51b815260206004820152601460248201527344697370656e736572206e6f742061637469766560601b6044820152606401610276565b6000821161034f5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081e995c9bc8185b5bdd5b9d606a1b6044820152606401610276565b6001600160a01b0383166000908152600260205260409020600101548211156103ac5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610276565b6001600160a01b03838116600090815260026020526040902060030154161561044d576001600160a01b0383811660009081526002602052604090206003015416331461044d5760405162461bcd60e51b815260206004820152602960248201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f2072604482015268195c5d595cdd08111560ba1b6064820152608401610276565b6040516370a0823160e01b81526001600160a01b03828116600483015284916000918316906370a0823190602401602060405180830381865afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bc9190611429565b6001600160a01b03861660009081526002602081905260409091200154909150811061052a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c65722062616c616e636520746f6f20686967680000000000000000006044820152606401610276565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105959190611429565b9050848110801561060957506040516355138f0d60e11b81523060048201526001600160a01b0384169063aa271e1a90602401602060405180830381865afa1580156105e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106099190611442565b156106f1576001600160a01b0383166340c10f19306106288489611464565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561066e57600080fd5b505af1158015610682573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190611429565b90505b848110156107375760405162461bcd60e51b81526020600482015260136024820152724e6f7420656e6f75676820726573657276657360681b6044820152606401610276565b61074b6001600160a01b0387168587611006565b836001600160a01b0316866001600160a01b03167f63e223ff524bd93d4cbff98ef34405b39f63ded87f5a8d85e39ccda966f135438760405161079091815260200190565b60405180910390a35050600160005550505050565b6001546001600160a01b031633146107f85760405162461bcd60e51b81526020600482015260166024820152752234b9b832b739b2b91d1037b7363c903937baba32b960511b6044820152606401610276565b6001600160a01b03851661081e5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b03858116600090815260026020526040902054610100900416158061086b57506001600160a01b0385811660009081526002602052604090205461010090048116908316145b6108b75760405162461bcd60e51b815260206004820152601960248201527f44617461746f6b656e20616c72656164792063726561746564000000000000006044820152606401610276565b6001600160a01b038581166000818152600260208181526040808420805489881661010081026001600160a81b031990921691909117600190811783558083018d90559482018b905560039182018054988a166001600160a01b0319998a16811790915582549586018355919095527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90930180549096168517909555845189815290810188905293840152917f7d0aa581e6eb87e15f58588ff20c39ff6622fc796ec9bb664df6ed3eb02442c99060600160405180910390a3806001600160a01b0316856001600160a01b03167fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca560405160405180910390a35050505050565b600381815481106109e857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038116610a285760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038181166000908152600260205260409020546101009004163314610a965760405162461bcd60e51b815260206004820152601b60248201527f44617461746f6b656e20616c72656164792061637469766174656400000000006044820152606401610276565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f393f01061139648745ea000bb047bbe1785bd3a19d3a9c90f6747e1d2357d2b89190a250565b6001600160a01b038216610b055760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038281166000908152600260205260409020546101009004163314610b735760405162461bcd60e51b815260206004820152601b60248201527f44617461546f6b656e20616c72656164792061637469766174656400000000006044820152606401610276565b6001600160a01b0382811660008181526002602052604080822060030180546001600160a01b0319169486169485179055517fac5c7317d52e88de62aff4ba6869a4882a4556557b761158934d2fd32a8b2ca59190a35050565b60008080808080806001600160a01b038816610bfb5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b0388811660008181526002602081905260409182902080546001820154919092015492516370a0823160e01b815230600482015260ff83169c506101009092049094169950929650945089916370a0823190602401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190611429565b6040516355138f0d60e11b81523060048201529093506001600160a01b0382169063aa271e1a90602401602060405180830381865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190611442565b6001600160a01b03998a16600090815260026020526040902060030154989a979990989597949650929490921692915050565b6001600160a01b038316610d5c5760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038381166000908152600260205260409020546101009004163314610dba5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610276565b6001600160a01b0383166000818152600260208190526040808320805460ff191660019081178255818101889055920185905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b03191684179055517fe9372084cb52c5392afee4b9d79d131e04b1e65676088d50a8f39fffb16a87459190a2505050565b60026000541415610ea95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610276565b60026000556001600160a01b038116610ed45760405162461bcd60e51b8152600401610276906113f2565b6001600160a01b038181166000908152600260205260409020546101009004163314610f325760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610276565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190611429565b90508015610ffc57610fbb6001600160a01b0384163383611006565b60405181815233906001600160a01b038516907f03185212530fcdce6b38fbf62ed27ab29b1b047f59b76b17401388a70a95f41b9060200160405180910390a35b5050600160005550565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261105890849061105d565b505050565b60006110b2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661112f9092919063ffffffff16565b80519091501561105857808060200190518101906110d09190611442565b6110585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610276565b606061113e8484600085611148565b90505b9392505050565b6060824710156111a95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610276565b843b6111f75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610276565b600080866001600160a01b0316858760405161121391906114b9565b60006040518083038185875af1925050503d8060008114611250576040519150601f19603f3d011682016040523d82523d6000602084013e611255565b606091505b5091509150611265828286611270565b979650505050505050565b6060831561127f575081611141565b82511561128f5782518084602001fd5b8160405162461bcd60e51b815260040161027691906114d5565b80356001600160a01b03811681146112c057600080fd5b919050565b6000806000606084860312156112da57600080fd5b6112e3846112a9565b9250602084013591506112f8604085016112a9565b90509250925092565b600080600080600060a0868803121561131957600080fd5b611322866112a9565b9450602086013593506040860135925061133e606087016112a9565b915061134c608087016112a9565b90509295509295909350565b60006020828403121561136a57600080fd5b5035919050565b60006020828403121561138357600080fd5b611141826112a9565b6000806040838503121561139f57600080fd5b6113a8836112a9565b91506113b6602084016112a9565b90509250929050565b6000806000606084860312156113d457600080fd5b6113dd846112a9565b95602085013595506040909401359392505050565b6020808252601e908201527f496e76616c696420746f6b656e20636f6e747261637420616464726573730000604082015260600190565b60006020828403121561143b57600080fd5b5051919050565b60006020828403121561145457600080fd5b8151801515811461114157600080fd5b60008282101561148457634e487b7160e01b600052601160045260246000fd5b500390565b60005b838110156114a457818101518382015260200161148c565b838111156114b3576000848401525b50505050565b600082516114cb818460208701611489565b9190910192915050565b60208152600082518060208401526114f4816040850160208701611489565b601f01601f1916919091016040019291505056fea26469706673582212203d786a3237473f58ef40ae940f143ec7e55114c5cb755814614b2ef2be08a55064736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/ERC20Roles.json b/abis/ERC20Roles.json deleted file mode 100644 index 8ae60db..0000000 --- a/abis/ERC20Roles.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20Roles", - "sourceName": "contracts/utils/ERC20Roles.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedPaymentManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "CleanedPermissions", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedPaymentManager", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "authERC20", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getPermissions", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "internalType": "struct ERC20Roles.RolesERC20", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "permissions", - "outputs": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506101df806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e8820814610046578063160a79251461008e578063ef867ff41461010b575b600080fd5b610072610054366004610160565b60006020819052908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b6100ec61009c366004610160565b6040805180820190915260008082526020820152506001600160a01b03166000908152602081815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b6040805182511515815260209283015115159281019290925201610085565b61011e610119366004610190565b610136565b6040516001600160a01b039091168152602001610085565b6001818154811061014657600080fd5b6000918252602090912001546001600160a01b0316905081565b60006020828403121561017257600080fd5b81356001600160a01b038116811461018957600080fd5b9392505050565b6000602082840312156101a257600080fd5b503591905056fea2646970667358221220ccf3df6db224ddd4890801a3179ede2341d3b79e67297621cef6008f522b4b9e64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301e8820814610046578063160a79251461008e578063ef867ff41461010b575b600080fd5b610072610054366004610160565b60006020819052908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b6100ec61009c366004610160565b6040805180820190915260008082526020820152506001600160a01b03166000908152602081815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b6040805182511515815260209283015115159281019290925201610085565b61011e610119366004610190565b610136565b6040516001600160a01b039091168152602001610085565b6001818154811061014657600080fd5b6000918252602090912001546001600160a01b0316905081565b60006020828403121561017257600080fd5b81356001600160a01b038116811461018957600080fd5b9392505050565b6000602082840312156101a257600080fd5b503591905056fea2646970667358221220ccf3df6db224ddd4890801a3179ede2341d3b79e67297621cef6008f522b4b9e64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/ERC20Template.json b/abis/ERC20Template.json deleted file mode 100644 index cf4d1b3..0000000 --- a/abis/ERC20Template.json +++ /dev/null @@ -1,1554 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20Template", - "sourceName": "contracts/templates/ERC20Template.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedPaymentManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "CleanedPermissions", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "currentMinter", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newMinter", - "type": "address" - } - ], - "name": "MinterApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "currentMinter", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newMinter", - "type": "address" - } - ], - "name": "MinterProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "dispenserContract", - "type": "address" - } - ], - "name": "NewDispenser", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "exchangeContract", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "baseToken", - "type": "address" - } - ], - "name": "NewFixedRate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_newPaymentCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "NewPaymentCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "poolAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "ssContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - } - ], - "name": "NewPool", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "orderTxId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "number", - "type": "uint256" - } - ], - "name": "OrderReused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "publishMarketAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "OrderStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - } - ], - "name": "ProviderFees", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "PublishMarketFeeAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "PublishMarketFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "PublishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "PublishMarketFees", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "PublishMarketFeeAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "PublishMarketFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "PublishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "PublishMarketFeesChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedPaymentManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_minter", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_paymentManager", - "type": "address" - } - ], - "name": "addPaymentManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "authERC20", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "cleanFrom721", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cleanPermissions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "withMint", - "type": "bool" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "createDispenser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fixedPriceAddress", - "type": "address" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - } - ], - "name": "createFixedRate", - "outputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "ssParams", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "swapFees", - "type": "uint256[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - } - ], - "name": "deployPool", - "outputs": [ - { - "internalType": "address", - "name": "pool", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDispensers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getERC721Address", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFixedRates", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "internalType": "struct ERC20Template.fixedRate[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getPaymentCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getPermissions", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "internalType": "struct ERC20Roles.RolesERC20", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPools", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPublishingMarketFee", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string[]", - "name": "strings_", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses_", - "type": "address[]" - }, - { - "internalType": "address[]", - "name": "factoryAddresses_", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints_", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytes_", - "type": "bytes[]" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isERC20Deployer", - "outputs": [ - { - "internalType": "bool", - "name": "deployer", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isInitialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "permissions", - "outputs": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_minter", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_paymentManager", - "type": "address" - } - ], - "name": "removePaymentManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "orderTxId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20Template.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "name": "reuseOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_value", - "type": "bytes" - } - ], - "name": "setData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPaymentCollector", - "type": "address" - } - ], - "name": "setPaymentCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_publishMarketFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_publishMarketFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_publishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "setPublishingMarketFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20Template.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "name": "startOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdrawETH", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x6080604052600b805460ff60a01b191690553480156200001e57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006d9160039162000091565b5080516200008390600490602084019062000091565b505060016007555062000174565b8280546200009f9062000137565b90600052602060002090601f016020900481019282620000c357600085556200010e565b82601f10620000de57805160ff19168380011785556200010e565b828001600101855582156200010e579182015b828111156200010e578251825591602001919060010190620000f1565b506200011c92915062000120565b5090565b5b808211156200011c576000815560010162000121565b600181811c908216806200014c57607f821691505b602082108114156200016e57634e487b7160e01b600052602260045260246000fd5b50919050565b614a5080620001846000396000f3fe6080604052600436106102ad5760003560e01c80635bfe4da011610166578063a457c2d7116100d3578063d505accf1161008f578063e487c2e81161006c578063e487c2e814610965578063ec342ad01461097a578063ef867ff414610996578063f887ea40146109b657005b8063d505accf146108f7578063dd62ed3e14610917578063e086e5ec1461095d57005b8063a457c2d71461081e578063a9059cbb1461083e578063aa271e1a1461085e578063aa492ef914610897578063ab62f0e1146108b7578063b3998be0146108d757005b80637ecebe00116101225780637ecebe001461076757806382c03da5146107945780638b96412b146107a957806395d89b41146107c957806396fb3eaf146107de578063983b2d56146107fe57005b80635bfe4da0146106a65780635d1ca631146106c6578063673a2a1f146106da57806370a08231146106ef57806379cc6790146107255780637dda231e1461074557005b8063355274ea1161021c578063397b3743116101d857806347ac7d55116101b557806347ac7d551461062f5780634f189cb21461065157806357a3a31b1461066657806357ad5ff61461068657005b8063397b3743146105b357806340c10f19146105ef57806342966c681461060f57005b8063355274ea14610509578063361fef491461051e578063363bdb461461053e5780633644e5151461055e578063392e53cd14610574578063395093511461059357005b8063191c918a1161026b578063191c918a1461043357806323b872dd1461045357806325b00243146104735780633092afd51461049357806330adf81f146104b3578063313ce567146104e757005b80627ffb78146102af57806301e88208146102e657806306fdde0314610336578063095ea7b314610358578063160a79251461038857806318160ddd14610414575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613c51565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b5061034b6109d6565b6040516102dd9190613c9a565b34801561036457600080fd5b50610378610373366004613ccd565b610a68565b60405190151581526020016102dd565b34801561039457600080fd5b506103f56103a3366004613c51565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561042057600080fd5b506002545b6040519081526020016102dd565b34801561043f57600080fd5b506102ad61044e366004613d07565b610a7e565b34801561045f57600080fd5b5061037861046e366004613d66565b610c5a565b34801561047f57600080fd5b506102ad61048e366004613c51565b610d06565b34801561049f57600080fd5b506102ad6104ae366004613c51565b610da0565b3480156104bf57600080fd5b506104257f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156104f357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561051557600080fd5b50600a54610425565b34801561052a57600080fd5b506102ad610539366004613dc0565b610e37565b34801561054a57600080fd5b506102ad610559366004613e06565b610eb5565b34801561056a57600080fd5b5061042560115481565b34801561058057600080fd5b50600b54600160a01b900460ff16610378565b34801561059f57600080fd5b506103786105ae366004613ccd565b611210565b3480156105bf57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b3480156105fb57600080fd5b506102ad61060a366004613ccd565b61124c565b34801561061b57600080fd5b506102ad61062a366004613e5e565b61131d565b34801561063b57600080fd5b50610644611327565b6040516102dd9190613ebb565b34801561065d57600080fd5b506102ad611388565b34801561067257600080fd5b506102ad610681366004613c51565b61146f565b34801561069257600080fd5b506102ad6106a1366004613d66565b6115b1565b3480156106b257600080fd5b506102c96106c1366004614006565b611705565b3480156106d257600080fd5b5060016104f7565b3480156106e657600080fd5b50610644611b0a565b3480156106fb57600080fd5b5061042561070a366004613c51565b6001600160a01b031660009081526020819052604090205490565b34801561073157600080fd5b506102ad610740366004613ccd565b611b6a565b34801561075157600080fd5b5061075a611bf0565b6040516102dd9190614083565b34801561077357600080fd5b50610425610782366004613c51565b60126020526000908152604090205481565b3480156107a057600080fd5b506102ad611c65565b3480156107b557600080fd5b506104256107c43660046140db565b611cbf565b3480156107d557600080fd5b5061034b611f4f565b3480156107ea57600080fd5b506103786107f9366004613c51565b611f5e565b34801561080a57600080fd5b506102ad610819366004613c51565b611fd9565b34801561082a57600080fd5b50610378610839366004613ccd565b612070565b34801561084a57600080fd5b50610378610859366004613ccd565b612109565b34801561086a57600080fd5b50610378610879366004613c51565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108a357600080fd5b506102ad6108b2366004613c51565b612116565b3480156108c357600080fd5b506102ad6108d2366004614146565b6121ad565b3480156108e357600080fd5b506103786108f2366004614202565b6122de565b34801561090357600080fd5b506102ad610912366004614308565b612418565b34801561092357600080fd5b50610425610932366004614376565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61262a565b34801561097157600080fd5b506102c961266a565b34801561098657600080fd5b50610425670de0b6b3a764000081565b3480156109a257600080fd5b506102c96109b1366004613e5e565b6126ff565b3480156109c257600080fd5b506013546102c9906001600160a01b031681565b6060600880546109e5906143af565b80601f0160208091040260200160405190810160405280929190818152602001828054610a11906143af565b8015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050905090565b6000610a75338484612729565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906143e4565b60200151610b155760405162461bcd60e51b8152600401610b0c90614468565b60405180910390fd5b60026007541415610b385760405162461bcd60e51b8152600401610b0c9061449d565b6002600755601354604051636b14d00560e11b81526001600160a01b038781166004830152306024830152604482018790526064820186905233608483015283811660a48301529091169063d629a00a9060c401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050508115610bcd57610bcd8561284d565b601680546001810182556000919091527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b6000610c6784848461294f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b0c565b610cf98533858403612729565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906143e4565b60200151610d945760405162461bcd60e51b8152600401610b0c90614468565b610d9d81612b1f565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906143e4565b60200151610e2e5760405162461bcd60e51b8152600401610b0c90614468565b610d9d81612b80565b60026007541415610e5a5760405162461bcd60e51b8152600401610b0c9061449d565b600260075560408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a1610eac81612be0565b50506001600755565b60026007541415610ed85760405162461bcd60e51b8152600401610b0c9061449d565b600260075533600090815260208190526040812054670de0b6b3a76400009190821115610f535760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610b0c565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000601054118015610fce5750600f546001600160a01b031615155b8015610fe45750600e546001600160a01b031615155b1561119e57601054600f54611008916001600160a01b039091169033903090612f72565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107691906144d4565b905080156110a8576110a5670de0b6b3a764000061109f83601054612fdd90919063ffffffff16565b90612fe9565b91505b600e546010546110d9916001600160a01b0316906110c69085612ff5565b600f546001600160a01b03169190613001565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49061111e9086612ff5565b60405190815260200160405180910390a3811561119c57600b54600f54611152916001600160a01b03918216911684613001565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b6111a783612be0565b6111b86111b261266a565b83612109565b6112045760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2073656e6420445420746f207075626c697368657200006044820152606401610b0c565b50506001600755505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a75918590611247908690614503565b612729565b3360009081526005602052604090205460ff166112ab5760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610b0c565b600a546112c1826112bb60025490565b90613031565b111561130f5760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610b0c565b611319828261303d565b5050565b610d9d338261311c565b60606016805480602002602001604051908101604052809291908181526020018280548015610a5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611361575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f5919061451b565b6001600160a01b0316336001600160a01b0316146114555760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610b0c565b61145d61326a565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806115005750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb91906143e4565b602001515b6115605760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610b0c565b61156981613319565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b0316331461161e5760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610b0c565b6001600160a01b0383166116855760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610b0c565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906143e4565b602001516117945760405162461bcd60e51b8152600401610b0c90614468565b600260075414156117b75760405162461bcd60e51b8152600401610b0c9061449d565b60026007556117c560025490565b1561181e5760405162461bcd60e51b8152602060048201526024808201527f455243323054656d706c6174653a20746f6b656e7320616c7265616479206d696044820152631b9d195960e21b6064820152608401610b0c565b6118418260008151811061183457611834614538565b602002602001015161284d565b601360009054906101000a90046001600160a01b03166001600160a01b031663510f34656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b891906144d4565b846003815181106118cb576118cb614538565b602002602001015110156119615760405162461bcd60e51b815260206004820152605160248201527f455243323054656d706c6174653a2056657374696e6720706572696f6420746f60448201527f6f206c6f772e2053656520466163746f7279526f757465722e6d696e56657374606482015270696e67506572696f64496e426c6f636b7360781b608482015260a401610b0c565b60006040518060400160405280306001600160a01b03166001600160a01b031681526020018460018151811061199957611999614538565b60209081029190910101516001600160a01b0390811690915260135460405163ee3bc63560e01b8152929350169063ee3bc635906119e190849089908990899060040161457e565b6020604051808303816000875af1158015611a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a24919061451b565b6014805460018101825560009182527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b03841617905584519193507fd02da1bec30f7f750aa0a131745dfb9ce96767c45a192dc26409f5d690e0b9679184918691611aa557611aa5614538565b602002602001015185600181518110611ac057611ac0614538565b6020026020010151604051611af5939291906001600160a01b0393841681529183166020830152909116604082015260600190565b60405180910390a15060016007559392505050565b60606014805480602002602001604051908101604052809291908181526020018280548015610a5e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611361575050505050905090565b6000611b768333610932565b905081811015611bd45760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610b0c565b611be18333848403612729565b611beb838361311c565b505050565b60606015805480602002602001604051908101604052809291908181526020016000905b82821015611c5c576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611c14565b50505050905090565b600c546001600160a01b031633146114555760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610b0c565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e91906143e4565b60200151611d4e5760405162461bcd60e51b8152600401610b0c90614468565b60026007541415611d715760405162461bcd60e51b8152600401610b0c9061449d565b6002600755601354604051638244937560e01b81526001600160a01b0390911690638244937590611daa908790879087906004016145e9565b6020604051808303816000875af1158015611dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ded91906144d4565b9050600082600481518110611e0457611e04614538565b60200260200101511115611e1b57611e1b8461284d565b82600081518110611e2e57611e2e614538565b60200260200101516001600160a01b031683600181518110611e5257611e52614538565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611ea69291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601580546001808201835560009290925292517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475600290940293840180546001600160a01b0319169190981617909655517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec476909101556007939093555090919050565b6060600980546109e5906143af565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf91906143e4565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204791906143e4565b602001516120675760405162461bcd60e51b8152600401610b0c90614468565b610d9d8161284d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120f25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b0c565b6120ff3385858403612729565b5060019392505050565b6000610a7533848461294f565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218491906143e4565b602001516121a45760405162461bcd60e51b8152600401610b0c90614468565b610d9d8161333b565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156121f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221b91906143e4565b6020015161223b5760405162461bcd60e51b8152600401610b0c90614468565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906122a790849087908790600401614652565b600060405180830381600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156123555760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610b0c565b6124096123628b8d6146cc565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061240492508991508a9050614753565b613449565b9b9a5050505050505050505050565b4384101561245b5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610b0c565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876124ae836147ce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161252792919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015612592573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906125c85750886001600160a01b0316816001600160a01b0316145b6126145760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610b0c565b61261f898989612729565b505050505050505050565b61263261266a565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610d9d573d6000803e3d6000fd5b600d546000906001600160a01b03166126ef57600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea919061451b565b905090565b50600d546001600160a01b031690565b6006818154811061270f57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03831661278b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b0c565b6001600160a01b0382166127ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b0c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff16156128b75760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610b0c565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b0383166129b35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b0c565b6001600160a01b038216612a155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b0c565b6001600160a01b03831660009081526020819052604090205481811015612a8d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b0c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612ac4908490614503565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b1091815260200190565b60405180910390a35b50505050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906129439042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906129439042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612c2460e08501856147e9565b612c316020870187613c51565b612c416040880160208901613c51565b87604001358860c00135604051602001612c609695949392919061482f565b60405160208183030381529060405280519060200120604051602001612c8792919061486d565b60408051601f19818403018152919052805160209091012090506000600182612cb6608087016060880161488f565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612d0d573d6000803e3d6000fd5b5050604051601f1901519150612d2890506020850185613c51565b6001600160a01b0316816001600160a01b031614612d7f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610b0c565b612d8f6040850160208601613c51565b6001600160a01b0316612da56020860186613c51565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612de160e08901896147e9565b612df160808b0160608c0161488f565b8a608001358b60a001358c60c00135604051612e1397969594939291906148aa565b60405180910390a360008460400135118015612e4857506000612e3c6040860160208701613c51565b6001600160a01b031614155b8015612e6a57506000612e5e6020860186613c51565b6001600160a01b031614155b15612b195760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015612eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612edd91906144d4565b905060008115612f0457612f01670de0b6b3a764000061109f604089013585612fdd565b90505b6000612f14604088013583612ff5565b9050612f4933612f2760208a018a613c51565b83612f3860408c0160208d01613c51565b6001600160a01b0316929190612f72565b81156122d557600b546122d59033906001600160a01b031684612f3860408c0160208d01613c51565b6040516001600160a01b0380851660248301528316604482015260648101829052612b199085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261393b565b6000610cff82846148ed565b6000610cff828461490c565b6000610cff828461492e565b6040516001600160a01b038316602482015260448101829052611beb90849063a9059cbb60e01b90606401612fa6565b6000610cff8284614503565b6001600160a01b0382166130935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b0c565b80600260008282546130a59190614503565b90915550506001600160a01b038216600090815260208190526040812080548392906130d2908490614503565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661317c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b0c565b6001600160a01b038216600090815260208190526040902054818110156131f05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b0c565b6001600160a01b038316600090815260208190526040812083830390556002805484929061321f90849061492e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156132d0576000600560006006848154811061329057613290614538565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806132c8816147ce565b91505061326d565b506132dd60066000613b85565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156133b55760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610b0c565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612943565b6000808460008151811061345f5761345f614538565b6020026020010151905060008560018151811061347e5761347e614538565b6020026020010151905060006001600160a01b0316826001600160a01b031614156135005760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610b0c565b6001600160a01b03811661357c5760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610b0c565b8460008151811061358f5761358f614538565b6020026020010151600014156135f35760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610b0c565b8460008151811061360657613606614538565b6020026020010151600a819055508760008151811061362757613627614538565b602002602001015160089080519060200190613644929190613ba3565b508760018151811061365857613658614538565b602002602001015160099080519060200190613675929190613ba3565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106136a6576136a6614538565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161370390889060009061183457611834614538565b60006001600160a01b03168760018151811061372157613721614538565b60200260200101516001600160a01b0316146137cb5761375a8760018151811061374d5761374d614538565b6020026020010151613319565b8660018151811061376d5761376d614538565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516137c2929190918252602082015260400190565b60405180910390a35b866002815181106137de576137de614538565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508660038151811061381f5761381f614538565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061386057613860614538565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516138a39190614945565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613990826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613a0d9092919063ffffffff16565b805190915015611beb57808060200190518101906139ae91906149e1565b611beb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b0c565b6060613a1c8484600085613a24565b949350505050565b606082471015613a855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b0c565b843b613ad35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b0c565b600080866001600160a01b03168587604051613aef91906149fe565b60006040518083038185875af1925050503d8060008114613b2c576040519150601f19603f3d011682016040523d82523d6000602084013e613b31565b606091505b5091509150613b41828286613b4c565b979650505050505050565b60608315613b5b575081610cff565b825115613b6b5782518084602001fd5b8160405162461bcd60e51b8152600401610b0c9190613c9a565b5080546000825590600052602060002090810190610d9d9190613c27565b828054613baf906143af565b90600052602060002090601f016020900481019282613bd15760008555613c17565b82601f10613bea57805160ff1916838001178555613c17565b82800160010185558215613c17579182015b82811115613c17578251825591602001919060010190613bfc565b50613c23929150613c27565b5090565b5b80821115613c235760008155600101613c28565b6001600160a01b0381168114610d9d57600080fd5b600060208284031215613c6357600080fd5b8135610cff81613c3c565b60005b83811015613c89578181015183820152602001613c71565b83811115612b195750506000910152565b6020815260008251806020840152613cb9816040850160208701613c6e565b601f01601f19169190910160400192915050565b60008060408385031215613ce057600080fd5b8235613ceb81613c3c565b946020939093013593505050565b8015158114610d9d57600080fd5b600080600080600060a08688031215613d1f57600080fd5b8535613d2a81613c3c565b945060208601359350604086013592506060860135613d4881613cf9565b91506080860135613d5881613c3c565b809150509295509295909350565b600080600060608486031215613d7b57600080fd5b8335613d8681613c3c565b92506020840135613d9681613c3c565b929592945050506040919091013590565b60006101008284031215613dba57600080fd5b50919050565b60008060408385031215613dd357600080fd5b8235915060208301356001600160401b03811115613df057600080fd5b613dfc85828601613da7565b9150509250929050565b600080600060608486031215613e1b57600080fd5b8335613e2681613c3c565b92506020840135915060408401356001600160401b03811115613e4857600080fd5b613e5486828701613da7565b9150509250925092565b600060208284031215613e7057600080fd5b5035919050565b600081518084526020808501945080840160005b83811015613eb05781516001600160a01b031687529582019590820190600101613e8b565b509495945050505050565b602081526000610cff6020830184613e77565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613f0c57613f0c613ece565b604052919050565b60006001600160401b03821115613f2d57613f2d613ece565b5060051b60200190565b600082601f830112613f4857600080fd5b81356020613f5d613f5883613f14565b613ee4565b82815260059290921b84018101918181019086841115613f7c57600080fd5b8286015b84811015613f975780358352918301918301613f80565b509695505050505050565b600082601f830112613fb357600080fd5b81356020613fc3613f5883613f14565b82815260059290921b84018101918181019086841115613fe257600080fd5b8286015b84811015613f97578035613ff981613c3c565b8352918301918301613fe6565b60008060006060848603121561401b57600080fd5b83356001600160401b038082111561403257600080fd5b61403e87838801613f37565b9450602086013591508082111561405457600080fd5b61406087838801613f37565b9350604086013591508082111561407657600080fd5b50613e5486828701613fa2565b602080825282518282018190526000919060409081850190868401855b828110156140ce57815180516001600160a01b031685528601518685015292840192908501906001016140a0565b5091979650505050505050565b6000806000606084860312156140f057600080fd5b83356140fb81613c3c565b925060208401356001600160401b038082111561411757600080fd5b61412387838801613fa2565b9350604086013591508082111561413957600080fd5b50613e5486828701613f37565b6000806020838503121561415957600080fd5b82356001600160401b038082111561417057600080fd5b818501915085601f83011261418457600080fd5b81358181111561419357600080fd5b8660208285010111156141a557600080fd5b60209290920196919550909350505050565b60008083601f8401126141c957600080fd5b5081356001600160401b038111156141e057600080fd5b6020830191508360208260051b85010111156141fb57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561422157600080fd5b8a356001600160401b038082111561423857600080fd5b6142448e838f016141b7565b909c509a5060208d013591508082111561425d57600080fd5b6142698e838f016141b7565b909a50985060408d013591508082111561428257600080fd5b61428e8e838f016141b7565b909850965060608d01359150808211156142a757600080fd5b6142b38e838f016141b7565b909650945060808d01359150808211156142cc57600080fd5b506142d98d828e016141b7565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461430357600080fd5b919050565b600080600080600080600060e0888a03121561432357600080fd5b873561432e81613c3c565b9650602088013561433e81613c3c565b9550604088013594506060880135935061435a608089016142f2565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561438957600080fd5b823561439481613c3c565b915060208301356143a481613c3c565b809150509250929050565b600181811c908216806143c357607f821691505b60208210811415613dba57634e487b7160e01b600052602260045260246000fd5b6000608082840312156143f657600080fd5b604051608081018181106001600160401b038211171561441857614418613ece565b604052825161442681613cf9565b8152602083015161443681613cf9565b6020820152604083015161444981613cf9565b6040820152606083015161445c81613cf9565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000602082840312156144e657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614516576145166144ed565b500190565b60006020828403121561452d57600080fd5b8151610cff81613c3c565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015613eb057815187529582019590820190600101614562565b60008186825b60028110156145ac5781516001600160a01b0316835260209283019290910190600101614584565b50505060a060408301526145c360a083018661454e565b82810360608401526145d5818661454e565b90508281036080840152613b418185613e77565b6001600160a01b038416815260606020820181905260009061460d90830185613e77565b828103604084015261461f818561454e565b9695505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b83815260406020820152600061466c604083018486614629565b95945050505050565b60006001600160401b0383111561468e5761468e613ece565b6146a1601f8401601f1916602001613ee4565b90508281528383830111156146b557600080fd5b828260208301376000602084830101529392505050565b60006146da613f5884613f14565b80848252602080830192508560051b8501368111156146f857600080fd5b855b818110156147475780356001600160401b038111156147195760008081fd5b870136601f82011261472b5760008081fd5b614739368235868401614675565b8652509382019382016146fa565b50919695505050505050565b6000614761613f5884613f14565b80848252602080830192508560051b85013681111561477f57600080fd5b855b818110156147475780356001600160401b038111156147a05760008081fd5b870136601f8201126147b25760008081fd5b6147c0368235868401614675565b865250938201938201614781565b60006000198214156147e2576147e26144ed565b5060010190565b6000808335601e1984360301811261480057600080fd5b8301803591506001600160401b0382111561481a57600080fd5b6020019150368190038213156141fb57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b6000835161487f818460208801613c6e565b9190910191825250602001919050565b6000602082840312156148a157600080fd5b610cff826142f2565b87815260c0602082015260006148c460c08301888a614629565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b6000816000190483118215151615614907576149076144ed565b500290565b60008261492957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015614940576149406144ed565b500390565b600080835481600182811c91508083168061496157607f831692505b602080841082141561498157634e487b7160e01b86526022600452602486fd5b81801561499557600181146149a6576149d3565b60ff198616895284890196506149d3565b60008a81526020902060005b868110156149cb5781548b8201529085019083016149b2565b505084890196505b509498975050505050505050565b6000602082840312156149f357600080fd5b8151610cff81613cf9565b60008251614a10818460208701613c6e565b919091019291505056fea2646970667358221220ae14b578eac9366b5200d90d00f539d0e961d3887b597d15704e009bdfa4e98264736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106102ad5760003560e01c80635bfe4da011610166578063a457c2d7116100d3578063d505accf1161008f578063e487c2e81161006c578063e487c2e814610965578063ec342ad01461097a578063ef867ff414610996578063f887ea40146109b657005b8063d505accf146108f7578063dd62ed3e14610917578063e086e5ec1461095d57005b8063a457c2d71461081e578063a9059cbb1461083e578063aa271e1a1461085e578063aa492ef914610897578063ab62f0e1146108b7578063b3998be0146108d757005b80637ecebe00116101225780637ecebe001461076757806382c03da5146107945780638b96412b146107a957806395d89b41146107c957806396fb3eaf146107de578063983b2d56146107fe57005b80635bfe4da0146106a65780635d1ca631146106c6578063673a2a1f146106da57806370a08231146106ef57806379cc6790146107255780637dda231e1461074557005b8063355274ea1161021c578063397b3743116101d857806347ac7d55116101b557806347ac7d551461062f5780634f189cb21461065157806357a3a31b1461066657806357ad5ff61461068657005b8063397b3743146105b357806340c10f19146105ef57806342966c681461060f57005b8063355274ea14610509578063361fef491461051e578063363bdb461461053e5780633644e5151461055e578063392e53cd14610574578063395093511461059357005b8063191c918a1161026b578063191c918a1461043357806323b872dd1461045357806325b00243146104735780633092afd51461049357806330adf81f146104b3578063313ce567146104e757005b80627ffb78146102af57806301e88208146102e657806306fdde0314610336578063095ea7b314610358578063160a79251461038857806318160ddd14610414575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613c51565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b5061034b6109d6565b6040516102dd9190613c9a565b34801561036457600080fd5b50610378610373366004613ccd565b610a68565b60405190151581526020016102dd565b34801561039457600080fd5b506103f56103a3366004613c51565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561042057600080fd5b506002545b6040519081526020016102dd565b34801561043f57600080fd5b506102ad61044e366004613d07565b610a7e565b34801561045f57600080fd5b5061037861046e366004613d66565b610c5a565b34801561047f57600080fd5b506102ad61048e366004613c51565b610d06565b34801561049f57600080fd5b506102ad6104ae366004613c51565b610da0565b3480156104bf57600080fd5b506104257f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156104f357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561051557600080fd5b50600a54610425565b34801561052a57600080fd5b506102ad610539366004613dc0565b610e37565b34801561054a57600080fd5b506102ad610559366004613e06565b610eb5565b34801561056a57600080fd5b5061042560115481565b34801561058057600080fd5b50600b54600160a01b900460ff16610378565b34801561059f57600080fd5b506103786105ae366004613ccd565b611210565b3480156105bf57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b3480156105fb57600080fd5b506102ad61060a366004613ccd565b61124c565b34801561061b57600080fd5b506102ad61062a366004613e5e565b61131d565b34801561063b57600080fd5b50610644611327565b6040516102dd9190613ebb565b34801561065d57600080fd5b506102ad611388565b34801561067257600080fd5b506102ad610681366004613c51565b61146f565b34801561069257600080fd5b506102ad6106a1366004613d66565b6115b1565b3480156106b257600080fd5b506102c96106c1366004614006565b611705565b3480156106d257600080fd5b5060016104f7565b3480156106e657600080fd5b50610644611b0a565b3480156106fb57600080fd5b5061042561070a366004613c51565b6001600160a01b031660009081526020819052604090205490565b34801561073157600080fd5b506102ad610740366004613ccd565b611b6a565b34801561075157600080fd5b5061075a611bf0565b6040516102dd9190614083565b34801561077357600080fd5b50610425610782366004613c51565b60126020526000908152604090205481565b3480156107a057600080fd5b506102ad611c65565b3480156107b557600080fd5b506104256107c43660046140db565b611cbf565b3480156107d557600080fd5b5061034b611f4f565b3480156107ea57600080fd5b506103786107f9366004613c51565b611f5e565b34801561080a57600080fd5b506102ad610819366004613c51565b611fd9565b34801561082a57600080fd5b50610378610839366004613ccd565b612070565b34801561084a57600080fd5b50610378610859366004613ccd565b612109565b34801561086a57600080fd5b50610378610879366004613c51565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108a357600080fd5b506102ad6108b2366004613c51565b612116565b3480156108c357600080fd5b506102ad6108d2366004614146565b6121ad565b3480156108e357600080fd5b506103786108f2366004614202565b6122de565b34801561090357600080fd5b506102ad610912366004614308565b612418565b34801561092357600080fd5b50610425610932366004614376565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61262a565b34801561097157600080fd5b506102c961266a565b34801561098657600080fd5b50610425670de0b6b3a764000081565b3480156109a257600080fd5b506102c96109b1366004613e5e565b6126ff565b3480156109c257600080fd5b506013546102c9906001600160a01b031681565b6060600880546109e5906143af565b80601f0160208091040260200160405190810160405280929190818152602001828054610a11906143af565b8015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050905090565b6000610a75338484612729565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906143e4565b60200151610b155760405162461bcd60e51b8152600401610b0c90614468565b60405180910390fd5b60026007541415610b385760405162461bcd60e51b8152600401610b0c9061449d565b6002600755601354604051636b14d00560e11b81526001600160a01b038781166004830152306024830152604482018790526064820186905233608483015283811660a48301529091169063d629a00a9060c401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050508115610bcd57610bcd8561284d565b601680546001810182556000919091527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b6000610c6784848461294f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b0c565b610cf98533858403612729565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906143e4565b60200151610d945760405162461bcd60e51b8152600401610b0c90614468565b610d9d81612b1f565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906143e4565b60200151610e2e5760405162461bcd60e51b8152600401610b0c90614468565b610d9d81612b80565b60026007541415610e5a5760405162461bcd60e51b8152600401610b0c9061449d565b600260075560408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a1610eac81612be0565b50506001600755565b60026007541415610ed85760405162461bcd60e51b8152600401610b0c9061449d565b600260075533600090815260208190526040812054670de0b6b3a76400009190821115610f535760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610b0c565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000601054118015610fce5750600f546001600160a01b031615155b8015610fe45750600e546001600160a01b031615155b1561119e57601054600f54611008916001600160a01b039091169033903090612f72565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107691906144d4565b905080156110a8576110a5670de0b6b3a764000061109f83601054612fdd90919063ffffffff16565b90612fe9565b91505b600e546010546110d9916001600160a01b0316906110c69085612ff5565b600f546001600160a01b03169190613001565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49061111e9086612ff5565b60405190815260200160405180910390a3811561119c57600b54600f54611152916001600160a01b03918216911684613001565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b6111a783612be0565b6111b86111b261266a565b83612109565b6112045760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2073656e6420445420746f207075626c697368657200006044820152606401610b0c565b50506001600755505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a75918590611247908690614503565b612729565b3360009081526005602052604090205460ff166112ab5760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610b0c565b600a546112c1826112bb60025490565b90613031565b111561130f5760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610b0c565b611319828261303d565b5050565b610d9d338261311c565b60606016805480602002602001604051908101604052809291908181526020018280548015610a5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611361575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f5919061451b565b6001600160a01b0316336001600160a01b0316146114555760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610b0c565b61145d61326a565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806115005750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb91906143e4565b602001515b6115605760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610b0c565b61156981613319565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b0316331461161e5760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610b0c565b6001600160a01b0383166116855760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610b0c565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906143e4565b602001516117945760405162461bcd60e51b8152600401610b0c90614468565b600260075414156117b75760405162461bcd60e51b8152600401610b0c9061449d565b60026007556117c560025490565b1561181e5760405162461bcd60e51b8152602060048201526024808201527f455243323054656d706c6174653a20746f6b656e7320616c7265616479206d696044820152631b9d195960e21b6064820152608401610b0c565b6118418260008151811061183457611834614538565b602002602001015161284d565b601360009054906101000a90046001600160a01b03166001600160a01b031663510f34656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b891906144d4565b846003815181106118cb576118cb614538565b602002602001015110156119615760405162461bcd60e51b815260206004820152605160248201527f455243323054656d706c6174653a2056657374696e6720706572696f6420746f60448201527f6f206c6f772e2053656520466163746f7279526f757465722e6d696e56657374606482015270696e67506572696f64496e426c6f636b7360781b608482015260a401610b0c565b60006040518060400160405280306001600160a01b03166001600160a01b031681526020018460018151811061199957611999614538565b60209081029190910101516001600160a01b0390811690915260135460405163ee3bc63560e01b8152929350169063ee3bc635906119e190849089908990899060040161457e565b6020604051808303816000875af1158015611a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a24919061451b565b6014805460018101825560009182527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b03841617905584519193507fd02da1bec30f7f750aa0a131745dfb9ce96767c45a192dc26409f5d690e0b9679184918691611aa557611aa5614538565b602002602001015185600181518110611ac057611ac0614538565b6020026020010151604051611af5939291906001600160a01b0393841681529183166020830152909116604082015260600190565b60405180910390a15060016007559392505050565b60606014805480602002602001604051908101604052809291908181526020018280548015610a5e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611361575050505050905090565b6000611b768333610932565b905081811015611bd45760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610b0c565b611be18333848403612729565b611beb838361311c565b505050565b60606015805480602002602001604051908101604052809291908181526020016000905b82821015611c5c576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611c14565b50505050905090565b600c546001600160a01b031633146114555760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610b0c565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e91906143e4565b60200151611d4e5760405162461bcd60e51b8152600401610b0c90614468565b60026007541415611d715760405162461bcd60e51b8152600401610b0c9061449d565b6002600755601354604051638244937560e01b81526001600160a01b0390911690638244937590611daa908790879087906004016145e9565b6020604051808303816000875af1158015611dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ded91906144d4565b9050600082600481518110611e0457611e04614538565b60200260200101511115611e1b57611e1b8461284d565b82600081518110611e2e57611e2e614538565b60200260200101516001600160a01b031683600181518110611e5257611e52614538565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611ea69291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601580546001808201835560009290925292517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475600290940293840180546001600160a01b0319169190981617909655517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec476909101556007939093555090919050565b6060600980546109e5906143af565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf91906143e4565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204791906143e4565b602001516120675760405162461bcd60e51b8152600401610b0c90614468565b610d9d8161284d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120f25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b0c565b6120ff3385858403612729565b5060019392505050565b6000610a7533848461294f565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218491906143e4565b602001516121a45760405162461bcd60e51b8152600401610b0c90614468565b610d9d8161333b565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156121f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221b91906143e4565b6020015161223b5760405162461bcd60e51b8152600401610b0c90614468565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906122a790849087908790600401614652565b600060405180830381600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156123555760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610b0c565b6124096123628b8d6146cc565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061240492508991508a9050614753565b613449565b9b9a5050505050505050505050565b4384101561245b5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610b0c565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876124ae836147ce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161252792919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015612592573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906125c85750886001600160a01b0316816001600160a01b0316145b6126145760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610b0c565b61261f898989612729565b505050505050505050565b61263261266a565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610d9d573d6000803e3d6000fd5b600d546000906001600160a01b03166126ef57600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea919061451b565b905090565b50600d546001600160a01b031690565b6006818154811061270f57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03831661278b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b0c565b6001600160a01b0382166127ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b0c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff16156128b75760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610b0c565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b0383166129b35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b0c565b6001600160a01b038216612a155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b0c565b6001600160a01b03831660009081526020819052604090205481811015612a8d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b0c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612ac4908490614503565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b1091815260200190565b60405180910390a35b50505050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906129439042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906129439042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612c2460e08501856147e9565b612c316020870187613c51565b612c416040880160208901613c51565b87604001358860c00135604051602001612c609695949392919061482f565b60405160208183030381529060405280519060200120604051602001612c8792919061486d565b60408051601f19818403018152919052805160209091012090506000600182612cb6608087016060880161488f565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612d0d573d6000803e3d6000fd5b5050604051601f1901519150612d2890506020850185613c51565b6001600160a01b0316816001600160a01b031614612d7f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610b0c565b612d8f6040850160208601613c51565b6001600160a01b0316612da56020860186613c51565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612de160e08901896147e9565b612df160808b0160608c0161488f565b8a608001358b60a001358c60c00135604051612e1397969594939291906148aa565b60405180910390a360008460400135118015612e4857506000612e3c6040860160208701613c51565b6001600160a01b031614155b8015612e6a57506000612e5e6020860186613c51565b6001600160a01b031614155b15612b195760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015612eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612edd91906144d4565b905060008115612f0457612f01670de0b6b3a764000061109f604089013585612fdd565b90505b6000612f14604088013583612ff5565b9050612f4933612f2760208a018a613c51565b83612f3860408c0160208d01613c51565b6001600160a01b0316929190612f72565b81156122d557600b546122d59033906001600160a01b031684612f3860408c0160208d01613c51565b6040516001600160a01b0380851660248301528316604482015260648101829052612b199085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261393b565b6000610cff82846148ed565b6000610cff828461490c565b6000610cff828461492e565b6040516001600160a01b038316602482015260448101829052611beb90849063a9059cbb60e01b90606401612fa6565b6000610cff8284614503565b6001600160a01b0382166130935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b0c565b80600260008282546130a59190614503565b90915550506001600160a01b038216600090815260208190526040812080548392906130d2908490614503565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661317c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b0c565b6001600160a01b038216600090815260208190526040902054818110156131f05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b0c565b6001600160a01b038316600090815260208190526040812083830390556002805484929061321f90849061492e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156132d0576000600560006006848154811061329057613290614538565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806132c8816147ce565b91505061326d565b506132dd60066000613b85565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156133b55760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610b0c565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612943565b6000808460008151811061345f5761345f614538565b6020026020010151905060008560018151811061347e5761347e614538565b6020026020010151905060006001600160a01b0316826001600160a01b031614156135005760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610b0c565b6001600160a01b03811661357c5760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610b0c565b8460008151811061358f5761358f614538565b6020026020010151600014156135f35760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610b0c565b8460008151811061360657613606614538565b6020026020010151600a819055508760008151811061362757613627614538565b602002602001015160089080519060200190613644929190613ba3565b508760018151811061365857613658614538565b602002602001015160099080519060200190613675929190613ba3565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106136a6576136a6614538565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161370390889060009061183457611834614538565b60006001600160a01b03168760018151811061372157613721614538565b60200260200101516001600160a01b0316146137cb5761375a8760018151811061374d5761374d614538565b6020026020010151613319565b8660018151811061376d5761376d614538565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516137c2929190918252602082015260400190565b60405180910390a35b866002815181106137de576137de614538565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508660038151811061381f5761381f614538565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061386057613860614538565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516138a39190614945565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613990826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613a0d9092919063ffffffff16565b805190915015611beb57808060200190518101906139ae91906149e1565b611beb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b0c565b6060613a1c8484600085613a24565b949350505050565b606082471015613a855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b0c565b843b613ad35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b0c565b600080866001600160a01b03168587604051613aef91906149fe565b60006040518083038185875af1925050503d8060008114613b2c576040519150601f19603f3d011682016040523d82523d6000602084013e613b31565b606091505b5091509150613b41828286613b4c565b979650505050505050565b60608315613b5b575081610cff565b825115613b6b5782518084602001fd5b8160405162461bcd60e51b8152600401610b0c9190613c9a565b5080546000825590600052602060002090810190610d9d9190613c27565b828054613baf906143af565b90600052602060002090601f016020900481019282613bd15760008555613c17565b82601f10613bea57805160ff1916838001178555613c17565b82800160010185558215613c17579182015b82811115613c17578251825591602001919060010190613bfc565b50613c23929150613c27565b5090565b5b80821115613c235760008155600101613c28565b6001600160a01b0381168114610d9d57600080fd5b600060208284031215613c6357600080fd5b8135610cff81613c3c565b60005b83811015613c89578181015183820152602001613c71565b83811115612b195750506000910152565b6020815260008251806020840152613cb9816040850160208701613c6e565b601f01601f19169190910160400192915050565b60008060408385031215613ce057600080fd5b8235613ceb81613c3c565b946020939093013593505050565b8015158114610d9d57600080fd5b600080600080600060a08688031215613d1f57600080fd5b8535613d2a81613c3c565b945060208601359350604086013592506060860135613d4881613cf9565b91506080860135613d5881613c3c565b809150509295509295909350565b600080600060608486031215613d7b57600080fd5b8335613d8681613c3c565b92506020840135613d9681613c3c565b929592945050506040919091013590565b60006101008284031215613dba57600080fd5b50919050565b60008060408385031215613dd357600080fd5b8235915060208301356001600160401b03811115613df057600080fd5b613dfc85828601613da7565b9150509250929050565b600080600060608486031215613e1b57600080fd5b8335613e2681613c3c565b92506020840135915060408401356001600160401b03811115613e4857600080fd5b613e5486828701613da7565b9150509250925092565b600060208284031215613e7057600080fd5b5035919050565b600081518084526020808501945080840160005b83811015613eb05781516001600160a01b031687529582019590820190600101613e8b565b509495945050505050565b602081526000610cff6020830184613e77565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613f0c57613f0c613ece565b604052919050565b60006001600160401b03821115613f2d57613f2d613ece565b5060051b60200190565b600082601f830112613f4857600080fd5b81356020613f5d613f5883613f14565b613ee4565b82815260059290921b84018101918181019086841115613f7c57600080fd5b8286015b84811015613f975780358352918301918301613f80565b509695505050505050565b600082601f830112613fb357600080fd5b81356020613fc3613f5883613f14565b82815260059290921b84018101918181019086841115613fe257600080fd5b8286015b84811015613f97578035613ff981613c3c565b8352918301918301613fe6565b60008060006060848603121561401b57600080fd5b83356001600160401b038082111561403257600080fd5b61403e87838801613f37565b9450602086013591508082111561405457600080fd5b61406087838801613f37565b9350604086013591508082111561407657600080fd5b50613e5486828701613fa2565b602080825282518282018190526000919060409081850190868401855b828110156140ce57815180516001600160a01b031685528601518685015292840192908501906001016140a0565b5091979650505050505050565b6000806000606084860312156140f057600080fd5b83356140fb81613c3c565b925060208401356001600160401b038082111561411757600080fd5b61412387838801613fa2565b9350604086013591508082111561413957600080fd5b50613e5486828701613f37565b6000806020838503121561415957600080fd5b82356001600160401b038082111561417057600080fd5b818501915085601f83011261418457600080fd5b81358181111561419357600080fd5b8660208285010111156141a557600080fd5b60209290920196919550909350505050565b60008083601f8401126141c957600080fd5b5081356001600160401b038111156141e057600080fd5b6020830191508360208260051b85010111156141fb57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561422157600080fd5b8a356001600160401b038082111561423857600080fd5b6142448e838f016141b7565b909c509a5060208d013591508082111561425d57600080fd5b6142698e838f016141b7565b909a50985060408d013591508082111561428257600080fd5b61428e8e838f016141b7565b909850965060608d01359150808211156142a757600080fd5b6142b38e838f016141b7565b909650945060808d01359150808211156142cc57600080fd5b506142d98d828e016141b7565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461430357600080fd5b919050565b600080600080600080600060e0888a03121561432357600080fd5b873561432e81613c3c565b9650602088013561433e81613c3c565b9550604088013594506060880135935061435a608089016142f2565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561438957600080fd5b823561439481613c3c565b915060208301356143a481613c3c565b809150509250929050565b600181811c908216806143c357607f821691505b60208210811415613dba57634e487b7160e01b600052602260045260246000fd5b6000608082840312156143f657600080fd5b604051608081018181106001600160401b038211171561441857614418613ece565b604052825161442681613cf9565b8152602083015161443681613cf9565b6020820152604083015161444981613cf9565b6040820152606083015161445c81613cf9565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000602082840312156144e657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614516576145166144ed565b500190565b60006020828403121561452d57600080fd5b8151610cff81613c3c565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015613eb057815187529582019590820190600101614562565b60008186825b60028110156145ac5781516001600160a01b0316835260209283019290910190600101614584565b50505060a060408301526145c360a083018661454e565b82810360608401526145d5818661454e565b90508281036080840152613b418185613e77565b6001600160a01b038416815260606020820181905260009061460d90830185613e77565b828103604084015261461f818561454e565b9695505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b83815260406020820152600061466c604083018486614629565b95945050505050565b60006001600160401b0383111561468e5761468e613ece565b6146a1601f8401601f1916602001613ee4565b90508281528383830111156146b557600080fd5b828260208301376000602084830101529392505050565b60006146da613f5884613f14565b80848252602080830192508560051b8501368111156146f857600080fd5b855b818110156147475780356001600160401b038111156147195760008081fd5b870136601f82011261472b5760008081fd5b614739368235868401614675565b8652509382019382016146fa565b50919695505050505050565b6000614761613f5884613f14565b80848252602080830192508560051b85013681111561477f57600080fd5b855b818110156147475780356001600160401b038111156147a05760008081fd5b870136601f8201126147b25760008081fd5b6147c0368235868401614675565b865250938201938201614781565b60006000198214156147e2576147e26144ed565b5060010190565b6000808335601e1984360301811261480057600080fd5b8301803591506001600160401b0382111561481a57600080fd5b6020019150368190038213156141fb57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b6000835161487f818460208801613c6e565b9190910191825250602001919050565b6000602082840312156148a157600080fd5b610cff826142f2565b87815260c0602082015260006148c460c08301888a614629565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b6000816000190483118215151615614907576149076144ed565b500290565b60008261492957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015614940576149406144ed565b500390565b600080835481600182811c91508083168061496157607f831692505b602080841082141561498157634e487b7160e01b86526022600452602486fd5b81801561499557600181146149a6576149d3565b60ff198616895284890196506149d3565b60008a81526020902060005b868110156149cb5781548b8201529085019083016149b2565b505084890196505b509498975050505050505050565b6000602082840312156149f357600080fd5b8151610cff81613cf9565b60008251614a10818460208701613c6e565b919091019291505056fea2646970667358221220ae14b578eac9366b5200d90d00f539d0e961d3887b597d15704e009bdfa4e98264736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/ERC20TemplateEnterprise.json b/abis/ERC20TemplateEnterprise.json deleted file mode 100644 index b6c5349..0000000 --- a/abis/ERC20TemplateEnterprise.json +++ /dev/null @@ -1,1693 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20TemplateEnterprise", - "sourceName": "contracts/templates/ERC20TemplateEnterprise.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedPaymentManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "buyer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseTokenAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - } - ], - "name": "BuyAndOrder", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "CleanedPermissions", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "currentMinter", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newMinter", - "type": "address" - } - ], - "name": "MinterApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "currentMinter", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newMinter", - "type": "address" - } - ], - "name": "MinterProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "dispenserContract", - "type": "address" - } - ], - "name": "NewDispenser", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "exchangeContract", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "baseToken", - "type": "address" - } - ], - "name": "NewFixedRate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_newPaymentCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "NewPaymentCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "orderTxId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "number", - "type": "uint256" - } - ], - "name": "OrderReused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "publishMarketAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "OrderStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - } - ], - "name": "ProviderFees", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "PublishMarketFeeAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "PublishMarketFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "PublishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "PublishMarketFees", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "PublishMarketFeeAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "PublishMarketFeeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "PublishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "PublishMarketFeesChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedMinter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedPaymentManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_minter", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_paymentManager", - "type": "address" - } - ], - "name": "addPaymentManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "authERC20", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20TemplateEnterprise.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "internalType": "struct ERC20TemplateEnterprise.OrderParams", - "name": "_orderParams", - "type": "tuple" - }, - { - "internalType": "address", - "name": "dispenserContract", - "type": "address" - } - ], - "name": "buyFromDispenserAndOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20TemplateEnterprise.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "internalType": "struct ERC20TemplateEnterprise.OrderParams", - "name": "_orderParams", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "exchangeContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "maxBaseTokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapMarketFee", - "type": "uint256" - }, - { - "internalType": "address", - "name": "marketFeeAddress", - "type": "address" - } - ], - "internalType": "struct ERC20TemplateEnterprise.FreParams", - "name": "_freParams", - "type": "tuple" - } - ], - "name": "buyFromFreAndOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "cleanFrom721", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cleanPermissions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "withMint", - "type": "bool" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "createDispenser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fixedPriceAddress", - "type": "address" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - } - ], - "name": "createFixedRate", - "outputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDispensers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getERC721Address", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFixedRates", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "internalType": "struct ERC20TemplateEnterprise.fixedRate[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getPaymentCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getPermissions", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "internalType": "struct ERC20Roles.RolesERC20", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPublishingMarketFee", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string[]", - "name": "strings_", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses_", - "type": "address[]" - }, - { - "internalType": "address[]", - "name": "factoryAddresses_", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints_", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytes_", - "type": "bytes[]" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isERC20Deployer", - "outputs": [ - { - "internalType": "bool", - "name": "deployer", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isInitialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "permissions", - "outputs": [ - { - "internalType": "bool", - "name": "minter", - "type": "bool" - }, - { - "internalType": "bool", - "name": "paymentManager", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_minter", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_paymentManager", - "type": "address" - } - ], - "name": "removePaymentManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "orderTxId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20TemplateEnterprise.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "name": "reuseOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_value", - "type": "bytes" - } - ], - "name": "setData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPaymentCollector", - "type": "address" - } - ], - "name": "setPaymentCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_publishMarketFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_publishMarketFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_publishMarketFeeAmount", - "type": "uint256" - } - ], - "name": "setPublishingMarketFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct ERC20TemplateEnterprise.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "name": "startOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdrawETH", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x6080604052600b805460ff60a01b191690553480156200001e57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006d9160039162000091565b5080516200008390600490602084019062000091565b505060016007555062000174565b8280546200009f9062000137565b90600052602060002090601f016020900481019282620000c357600085556200010e565b82601f10620000de57805160ff19168380011785556200010e565b828001600101855582156200010e579182015b828111156200010e578251825591602001919060010190620000f1565b506200011c92915062000120565b5090565b5b808211156200011c576000815560010162000121565b600181811c908216806200014c57607f821691505b602082108114156200016e57634e487b7160e01b600052602260045260246000fd5b50919050565b614c2e80620001846000396000f3fe6080604052600436106102ad5760003560e01c806357ad5ff611610166578063a9059cbb116100d3578063dd62ed3e1161008f578063e89b86651161006c578063e89b866514610965578063ec342ad014610985578063ef867ff4146109a1578063f887ea40146109c157005b8063dd62ed3e14610902578063e086e5ec14610948578063e487c2e81461095057005b8063a9059cbb14610829578063aa271e1a14610849578063aa492ef914610882578063ab62f0e1146108a2578063b3998be0146108c2578063d505accf146108e257005b806382c03da51161012257806382c03da51461077f5780638b96412b1461079457806395d89b41146107b457806396fb3eaf146107c9578063983b2d56146107e9578063a457c2d71461080957005b806357ad5ff6146106a65780635d1ca631146106c657806370a08231146106da57806379cc6790146107105780637dda231e146107305780637ecebe001461075257005b8063313ce5671161021c57806339509351116101d857806342966c68116101b557806342966c681461062f57806347ac7d551461064f5780634f189cb21461067157806357a3a31b1461068657005b806339509351146105b3578063397b3743146105d357806340c10f191461060f57005b8063313ce56714610507578063355274ea14610529578063361fef491461053e578063363bdb461461055e5780633644e5151461057e578063392e53cd1461059457005b806318160ddd1161026b57806318160ddd14610434578063191c918a1461045357806323b872dd1461047357806325b00243146104935780633092afd5146104b357806330adf81f146104d357005b80627ffb78146102af57806301e88208146102e65780630269ae111461033657806306fdde0314610356578063095ea7b314610378578063160a7925146103a8575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613d6b565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b506102ad610351366004613da0565b6109e1565b34801561036257600080fd5b5061036b610e05565b6040516102dd9190613e25565b34801561038457600080fd5b50610398610393366004613e58565b610e97565b60405190151581526020016102dd565b3480156103b457600080fd5b506104156103c3366004613d6b565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561044057600080fd5b506002545b6040519081526020016102dd565b34801561045f57600080fd5b506102ad61046e366004613e92565b610ead565b34801561047f57600080fd5b5061039861048e366004613ef1565b61107f565b34801561049f57600080fd5b506102ad6104ae366004613d6b565b61112b565b3480156104bf57600080fd5b506102ad6104ce366004613d6b565b6111c5565b3480156104df57600080fd5b506104457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561051357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561053557600080fd5b50600a54610445565b34801561054a57600080fd5b506102ad610559366004613f45565b61125c565b34801561056a57600080fd5b506102ad610579366004613f8b565b6112ad565b34801561058a57600080fd5b5061044560115481565b3480156105a057600080fd5b50600b54600160a01b900460ff16610398565b3480156105bf57600080fd5b506103986105ce366004613e58565b611587565b3480156105df57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b34801561061b57600080fd5b506102ad61062a366004613e58565b6115c3565b34801561063b57600080fd5b506102ad61064a366004613fe3565b611690565b34801561065b57600080fd5b5061066461169a565b6040516102dd9190614040565b34801561067d57600080fd5b506102ad6116fb565b34801561069257600080fd5b506102ad6106a1366004613d6b565b6117e2565b3480156106b257600080fd5b506102ad6106c1366004613ef1565b611924565b3480156106d257600080fd5b506002610517565b3480156106e657600080fd5b506104456106f5366004613d6b565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506102ad61072b366004613e58565b611a78565b34801561073c57600080fd5b50610745611afe565b6040516102dd9190614053565b34801561075e57600080fd5b5061044561076d366004613d6b565b60126020526000908152604090205481565b34801561078b57600080fd5b506102ad611b73565b3480156107a057600080fd5b506104456107af36600461417f565b611bcd565b3480156107c057600080fd5b5061036b611e81565b3480156107d557600080fd5b506103986107e4366004613d6b565b611e90565b3480156107f557600080fd5b506102ad610804366004613d6b565b611f0b565b34801561081557600080fd5b50610398610824366004613e58565b611fa2565b34801561083557600080fd5b50610398610844366004613e58565b61203b565b34801561085557600080fd5b50610398610864366004613d6b565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088e57600080fd5b506102ad61089d366004613d6b565b612048565b3480156108ae57600080fd5b506102ad6108bd36600461424a565b6120df565b3480156108ce57600080fd5b506103986108dd366004614306565b612210565b3480156108ee57600080fd5b506102ad6108fd36600461440c565b61234a565b34801561090e57600080fd5b5061044561091d36600461447a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61255c565b34801561095c57600080fd5b506102c961259c565b34801561097157600080fd5b506102ad6109803660046144b3565b612631565b34801561099157600080fd5b50610445670de0b6b3a764000081565b3480156109ad57600080fd5b506102c96109bc366004613fe3565b612756565b3480156109cd57600080fd5b506013546102c9906001600160a01b031681565b60026007541415610a0d5760405162461bcd60e51b8152600401610a04906144f9565b60405180910390fd5b6002600755600080610a226020840184613d6b565b604051634c87087d60e01b8152602085013560048201526001600160a01b039190911690634c87087d9060240161018060405180830381865afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190614530565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614610b105760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610a04565b600080610b206020860186613d6b565b60405163c99733a760e01b815260208701356004820152670de0b6b3a764000060248201526001600160a01b03919091169063c99733a790604401608060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c91906145ed565b5050915091508460400135821115610c065760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610a04565b6000670de0b6b3a7640000610c1f606088013584614639565b610c299190614658565b9050610c35818461467a565b9250610c4c6001600160a01b038516333086612780565b610c6d610c5c6020880188613d6b565b6001600160a01b03861690856127f1565b610c7a6020870187613d6b565b60405163412dae6b60e11b815260208801356004820152670de0b6b3a76400006024820152604481018590526001600160a01b03919091169063825b5cd690606401600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015610d575760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610a04565b610d6a3033670de0b6b3a76400006128a3565b610d8c610d7a6020890189613d6b565b602089013561057960408b018b614692565b8015610db657610db6610da560a0880160808901613d6b565b6001600160a01b0386169083612a71565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a1505060016007555050505050565b606060088054610e14906146b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906146b2565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b6000610ea4338484612aa1565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906146e7565b60200151610f3b5760405162461bcd60e51b8152600401610a049061476b565b60026007541415610f5e5760405162461bcd60e51b8152600401610a04906144f9565b6002600755601354604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610fcb57600080fd5b505af1158015610fdf573d6000803e3d6000fd5b505050508115610ff257610ff285612bc5565b601580546001810182556000919091527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4750180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b600061108c8484846128a3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156111115760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b61111e8533858403612aa1565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119991906146e7565b602001516111b95760405162461bcd60e51b8152600401610a049061476b565b6111c281612cc7565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123391906146e7565b602001516112535760405162461bcd60e51b8152600401610a049061476b565b6111c281612d28565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a16112a981612d88565b5050565b33600090815260208190526040812054670de0b6b3a764000091908211156113235760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610a04565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a3600060105411801561139e5750600f546001600160a01b031615155b80156113b45750600e546001600160a01b031615155b1561156e57601054600f546113d8916001600160a01b039091169033903090612780565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144691906147a0565b9050801561147857611475670de0b6b3a764000061146f8360105461311a90919063ffffffff16565b90613126565b91505b600e546010546114a9916001600160a01b0316906114969085613132565b600f546001600160a01b03169190612a71565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906114ee9086613132565b60405190815260200160405180910390a3811561156c57600b54600f54611522916001600160a01b03918216911684612a71565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b61157783612d88565b61158082611690565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ea49185906115be90869061467a565b612aa1565b3360009081526005602052604090205460ff166116225760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610a04565b600a546116388261163260025490565b9061313e565b11156116865760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610a04565b6112a9828261314a565b6111c23382613229565b60606015805480602002602001604051908101604052809291908181526020018280548015610e8d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116d4575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906147b9565b6001600160a01b0316336001600160a01b0316146117c85760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610a04565b6117d0613377565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806118735750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906146e7565b602001515b6118d35760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610a04565b6118dc81613426565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b031633146119915760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610a04565b6001600160a01b0383166119f85760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610a04565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611a84833361091d565b905081811015611ae25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a04565b611aef8333848403612aa1565b611af98383613229565b505050565b60606014805480602002602001604051908101604052809291908181526020016000905b82821015611b6a576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611b22565b50505050905090565b600c546001600160a01b031633146117c85760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610a04565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3c91906146e7565b60200151611c5c5760405162461bcd60e51b8152600401610a049061476b565b60026007541415611c7f5760405162461bcd60e51b8152600401610a04906144f9565b60026007819055503083600381518110611c9b57611c9b6147d6565b6001600160a01b039283166020918202929092010152601354604051638244937560e01b8152911690638244937590611cdc908790879087906004016147ec565b6020604051808303816000875af1158015611cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1f91906147a0565b9050600082600481518110611d3657611d366147d6565b60200260200101511115611d4d57611d4d84612bc5565b82600081518110611d6057611d606147d6565b60200260200101516001600160a01b031683600181518110611d8457611d846147d6565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dd89291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601480546001808201835560009290925292517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec600290940293840180546001600160a01b0319169190981617909655517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed909101556007939093555090919050565b606060098054610e14906146b2565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0191906146e7565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906146e7565b60200151611f995760405162461bcd60e51b8152600401610a049061476b565b6111c281612bc5565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6120313385858403612aa1565b5060019392505050565b6000610ea43384846128a3565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b691906146e7565b602001516120d65760405162461bcd60e51b8152600401610a049061476b565b6111c281613448565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d91906146e7565b6020015161216d5760405162461bcd60e51b8152600401610a049061476b565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906121d99084908790879060040161487b565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156122875760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610a04565b61233b6122948b8d6148f5565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061233692508991508a905061497c565b613556565b9b9a5050505050505050505050565b4384101561238d5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610a04565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876123e0836149f7565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161245992919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156124c4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906124fa5750886001600160a01b0316816001600160a01b0316145b6125465760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610a04565b612551898989612aa1565b505050505050505050565b61256461259c565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156111c2573d6000803e3d6000fd5b600d546000906001600160a01b031661262157600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156125f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261c91906147b9565b905090565b50600d546001600160a01b031690565b600260075414156126545760405162461bcd60e51b8152600401610a04906144f9565b6002600755604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b5050336000908152602081905260409020548392509050101561272a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610a04565b61274c61273a6020850185613d6b565b60208501356105796040870187614692565b5050600160075550565b6006818154811061276657600080fd5b6000918252602090912001546001600160a01b0316905081565b6040516001600160a01b03808516602483015283166044820152606481018290526127eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a55565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286691906147a0565b612870919061467a565b6040516001600160a01b0385166024820152604481018290529091506127eb90859063095ea7b360e01b906064016127b4565b6001600160a01b0383166129075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166129695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b038316600090815260208190526040902054818110156129e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612a1890849061467a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6491815260200190565b60405180910390a36127eb565b6040516001600160a01b038316602482015260448101829052611af990849063a9059cbb60e01b906064016127b4565b6001600160a01b038316612b035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216612b645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff1615612c2f5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610a04565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff65890612cbb9042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d48090612cbb9042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612dcc60e0850185614a12565b612dd96020870187613d6b565b612de96040880160208901613d6b565b87604001358860c00135604051602001612e0896959493929190614a58565b60405160208183030381529060405280519060200120604051602001612e2f929190614a96565b60408051601f19818403018152919052805160209091012090506000600182612e5e6080870160608801614ab8565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612eb5573d6000803e3d6000fd5b5050604051601f1901519150612ed090506020850185613d6b565b6001600160a01b0316816001600160a01b031614612f275760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610a04565b612f376040850160208601613d6b565b6001600160a01b0316612f4d6020860186613d6b565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612f8960e0890189614a12565b612f9960808b0160608c01614ab8565b8a608001358b60a001358c60c00135604051612fbb9796959493929190614ad3565b60405180910390a360008460400135118015612ff057506000612fe46040860160208701613d6b565b6001600160a01b031614155b8015613012575060006130066020860186613d6b565b6001600160a01b031614155b156127eb5760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308591906147a0565b9050600081156130ac576130a9670de0b6b3a764000061146f60408901358561311a565b90505b60006130bc604088013583613132565b90506130f1336130cf60208a018a613d6b565b836130e060408c0160208d01613d6b565b6001600160a01b0316929190612780565b811561220757600b546122079033906001600160a01b0316846130e060408c0160208d01613d6b565b60006111248284614639565b60006111248284614658565b60006111248284614b16565b6000611124828461467a565b6001600160a01b0382166131a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a04565b80600260008282546131b2919061467a565b90915550506001600160a01b038216600090815260208190526040812080548392906131df90849061467a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166132895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156132fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b038316600090815260208190526040812083830390556002805484929061332c908490614b16565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156133dd576000600560006006848154811061339d5761339d6147d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806133d5816149f7565b91505061337a565b506133ea60066000613c9f565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156134c25760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610a04565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612cbb565b6000808460008151811061356c5761356c6147d6565b6020026020010151905060008560018151811061358b5761358b6147d6565b6020026020010151905060006001600160a01b0316826001600160a01b0316141561360d5760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610a04565b6001600160a01b0381166136895760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610a04565b8460008151811061369c5761369c6147d6565b6020026020010151600014156137005760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610a04565b84600081518110613713576137136147d6565b6020026020010151600a8190555087600081518110613734576137346147d6565b602002602001015160089080519060200190613751929190613cbd565b5087600181518110613765576137656147d6565b602002602001015160099080519060200190613782929190613cbd565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106137b3576137b36147d6565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161381d908890600090613810576138106147d6565b6020026020010151612bc5565b60006001600160a01b03168760018151811061383b5761383b6147d6565b60200260200101516001600160a01b0316146138e55761387487600181518110613867576138676147d6565b6020026020010151613426565b86600181518110613887576138876147d6565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516138dc929190918252602082015260400190565b60405180910390a35b866002815181106138f8576138f86147d6565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600381518110613939576139396147d6565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061397a5761397a6147d6565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516139bd9190614b2d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613aaa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b279092919063ffffffff16565b805190915015611af95780806020019051810190613ac89190614bc9565b611af95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a04565b6060613b368484600085613b3e565b949350505050565b606082471015613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a04565b843b613bed5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a04565b600080866001600160a01b03168587604051613c099190614be6565b60006040518083038185875af1925050503d8060008114613c46576040519150601f19603f3d011682016040523d82523d6000602084013e613c4b565b606091505b5091509150613c5b828286613c66565b979650505050505050565b60608315613c75575081611124565b825115613c855782518084602001fd5b8160405162461bcd60e51b8152600401610a049190613e25565b50805460008255906000526020600020908101906111c29190613d41565b828054613cc9906146b2565b90600052602060002090601f016020900481019282613ceb5760008555613d31565b82601f10613d0457805160ff1916838001178555613d31565b82800160010185558215613d31579182015b82811115613d31578251825591602001919060010190613d16565b50613d3d929150613d41565b5090565b5b80821115613d3d5760008155600101613d42565b6001600160a01b03811681146111c257600080fd5b600060208284031215613d7d57600080fd5b813561112481613d56565b600060608284031215613d9a57600080fd5b50919050565b60008082840360c0811215613db457600080fd5b83356001600160401b03811115613dca57600080fd5b613dd686828701613d88565b93505060a0601f1982011215613deb57600080fd5b506020830190509250929050565b60005b83811015613e14578181015183820152602001613dfc565b838111156127eb5750506000910152565b6020815260008251806020840152613e44816040850160208701613df9565b601f01601f19169190910160400192915050565b60008060408385031215613e6b57600080fd5b8235613e7681613d56565b946020939093013593505050565b80151581146111c257600080fd5b600080600080600060a08688031215613eaa57600080fd5b8535613eb581613d56565b945060208601359350604086013592506060860135613ed381613e84565b91506080860135613ee381613d56565b809150509295509295909350565b600080600060608486031215613f0657600080fd5b8335613f1181613d56565b92506020840135613f2181613d56565b929592945050506040919091013590565b60006101008284031215613d9a57600080fd5b60008060408385031215613f5857600080fd5b8235915060208301356001600160401b03811115613f7557600080fd5b613f8185828601613f32565b9150509250929050565b600080600060608486031215613fa057600080fd5b8335613fab81613d56565b92506020840135915060408401356001600160401b03811115613fcd57600080fd5b613fd986828701613f32565b9150509250925092565b600060208284031215613ff557600080fd5b5035919050565b600081518084526020808501945080840160005b838110156140355781516001600160a01b031687529582019590820190600101614010565b509495945050505050565b6020815260006111246020830184613ffc565b602080825282518282018190526000919060409081850190868401855b8281101561409e57815180516001600160a01b03168552860151868501529284019290850190600101614070565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156140e9576140e96140ab565b604052919050565b60006001600160401b0382111561410a5761410a6140ab565b5060051b60200190565b600082601f83011261412557600080fd5b8135602061413a614135836140f1565b6140c1565b82815260059290921b8401810191818101908684111561415957600080fd5b8286015b84811015614174578035835291830191830161415d565b509695505050505050565b60008060006060848603121561419457600080fd5b833561419f81613d56565b92506020848101356001600160401b03808211156141bc57600080fd5b818701915087601f8301126141d057600080fd5b81356141de614135826140f1565b81815260059190911b8301840190848101908a8311156141fd57600080fd5b938501935b8285101561422457843561421581613d56565b82529385019390850190614202565b96505050604087013592508083111561423c57600080fd5b5050613fd986828701614114565b6000806020838503121561425d57600080fd5b82356001600160401b038082111561427457600080fd5b818501915085601f83011261428857600080fd5b81358181111561429757600080fd5b8660208285010111156142a957600080fd5b60209290920196919550909350505050565b60008083601f8401126142cd57600080fd5b5081356001600160401b038111156142e457600080fd5b6020830191508360208260051b85010111156142ff57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561432557600080fd5b8a356001600160401b038082111561433c57600080fd5b6143488e838f016142bb565b909c509a5060208d013591508082111561436157600080fd5b61436d8e838f016142bb565b909a50985060408d013591508082111561438657600080fd5b6143928e838f016142bb565b909850965060608d01359150808211156143ab57600080fd5b6143b78e838f016142bb565b909650945060808d01359150808211156143d057600080fd5b506143dd8d828e016142bb565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461440757600080fd5b919050565b600080600080600080600060e0888a03121561442757600080fd5b873561443281613d56565b9650602088013561444281613d56565b9550604088013594506060880135935061445e608089016143f6565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561448d57600080fd5b823561449881613d56565b915060208301356144a881613d56565b809150509250929050565b600080604083850312156144c657600080fd5b82356001600160401b038111156144dc57600080fd5b6144e885828601613d88565b92505060208301356144a881613d56565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000806000806000806000806000806000806101808d8f03121561455357600080fd5b8c5161455e81613d56565b60208e0151909c5061456f81613d56565b60408e015160608f0151919c509a5061458781613d56565b8099505060808d0151975060a08d0151965060c08d01516145a781613e84565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d01516145d981613e84565b809150509295989b509295989b509295989b565b6000806000806080858703121561460357600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561465357614653614623565b500290565b60008261467557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561468d5761468d614623565b500190565b6000823560fe198336030181126146a857600080fd5b9190910192915050565b600181811c908216806146c657607f821691505b60208210811415613d9a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156146f957600080fd5b604051608081018181106001600160401b038211171561471b5761471b6140ab565b604052825161472981613e84565b8152602083015161473981613e84565b6020820152604083015161474c81613e84565b6040820152606083015161475f81613e84565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6000602082840312156147b257600080fd5b5051919050565b6000602082840312156147cb57600080fd5b815161112481613d56565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526060602080830182905260009161481190840186613ffc565b838103604085015284518082528286019183019060005b8181101561484457835183529284019291840191600101614828565b509098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000614895604083018486614852565b95945050505050565b60006001600160401b038311156148b7576148b76140ab565b6148ca601f8401601f19166020016140c1565b90508281528383830111156148de57600080fd5b828260208301376000602084830101529392505050565b6000614903614135846140f1565b80848252602080830192508560051b85013681111561492157600080fd5b855b818110156149705780356001600160401b038111156149425760008081fd5b870136601f8201126149545760008081fd5b61496236823586840161489e565b865250938201938201614923565b50919695505050505050565b600061498a614135846140f1565b80848252602080830192508560051b8501368111156149a857600080fd5b855b818110156149705780356001600160401b038111156149c95760008081fd5b870136601f8201126149db5760008081fd5b6149e936823586840161489e565b8652509382019382016149aa565b6000600019821415614a0b57614a0b614623565b5060010190565b6000808335601e19843603018112614a2957600080fd5b8301803591506001600160401b03821115614a4357600080fd5b6020019150368190038213156142ff57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b60008351614aa8818460208801613df9565b9190910191825250602001919050565b600060208284031215614aca57600080fd5b611124826143f6565b87815260c060208201526000614aed60c08301888a614852565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600082821015614b2857614b28614623565b500390565b600080835481600182811c915080831680614b4957607f831692505b6020808410821415614b6957634e487b7160e01b86526022600452602486fd5b818015614b7d5760018114614b8e57614bbb565b60ff19861689528489019650614bbb565b60008a81526020902060005b86811015614bb35781548b820152908501908301614b9a565b505084890196505b509498975050505050505050565b600060208284031215614bdb57600080fd5b815161112481613e84565b600082516146a8818460208701613df956fea2646970667358221220c6c541b55b7434428a1f5fec71f18215c72396f839989bbe881a60df2e21c0ce64736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106102ad5760003560e01c806357ad5ff611610166578063a9059cbb116100d3578063dd62ed3e1161008f578063e89b86651161006c578063e89b866514610965578063ec342ad014610985578063ef867ff4146109a1578063f887ea40146109c157005b8063dd62ed3e14610902578063e086e5ec14610948578063e487c2e81461095057005b8063a9059cbb14610829578063aa271e1a14610849578063aa492ef914610882578063ab62f0e1146108a2578063b3998be0146108c2578063d505accf146108e257005b806382c03da51161012257806382c03da51461077f5780638b96412b1461079457806395d89b41146107b457806396fb3eaf146107c9578063983b2d56146107e9578063a457c2d71461080957005b806357ad5ff6146106a65780635d1ca631146106c657806370a08231146106da57806379cc6790146107105780637dda231e146107305780637ecebe001461075257005b8063313ce5671161021c57806339509351116101d857806342966c68116101b557806342966c681461062f57806347ac7d551461064f5780634f189cb21461067157806357a3a31b1461068657005b806339509351146105b3578063397b3743146105d357806340c10f191461060f57005b8063313ce56714610507578063355274ea14610529578063361fef491461053e578063363bdb461461055e5780633644e5151461057e578063392e53cd1461059457005b806318160ddd1161026b57806318160ddd14610434578063191c918a1461045357806323b872dd1461047357806325b00243146104935780633092afd5146104b357806330adf81f146104d357005b80627ffb78146102af57806301e88208146102e65780630269ae111461033657806306fdde0314610356578063095ea7b314610378578063160a7925146103a8575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613d6b565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b506102ad610351366004613da0565b6109e1565b34801561036257600080fd5b5061036b610e05565b6040516102dd9190613e25565b34801561038457600080fd5b50610398610393366004613e58565b610e97565b60405190151581526020016102dd565b3480156103b457600080fd5b506104156103c3366004613d6b565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561044057600080fd5b506002545b6040519081526020016102dd565b34801561045f57600080fd5b506102ad61046e366004613e92565b610ead565b34801561047f57600080fd5b5061039861048e366004613ef1565b61107f565b34801561049f57600080fd5b506102ad6104ae366004613d6b565b61112b565b3480156104bf57600080fd5b506102ad6104ce366004613d6b565b6111c5565b3480156104df57600080fd5b506104457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561051357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561053557600080fd5b50600a54610445565b34801561054a57600080fd5b506102ad610559366004613f45565b61125c565b34801561056a57600080fd5b506102ad610579366004613f8b565b6112ad565b34801561058a57600080fd5b5061044560115481565b3480156105a057600080fd5b50600b54600160a01b900460ff16610398565b3480156105bf57600080fd5b506103986105ce366004613e58565b611587565b3480156105df57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b34801561061b57600080fd5b506102ad61062a366004613e58565b6115c3565b34801561063b57600080fd5b506102ad61064a366004613fe3565b611690565b34801561065b57600080fd5b5061066461169a565b6040516102dd9190614040565b34801561067d57600080fd5b506102ad6116fb565b34801561069257600080fd5b506102ad6106a1366004613d6b565b6117e2565b3480156106b257600080fd5b506102ad6106c1366004613ef1565b611924565b3480156106d257600080fd5b506002610517565b3480156106e657600080fd5b506104456106f5366004613d6b565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506102ad61072b366004613e58565b611a78565b34801561073c57600080fd5b50610745611afe565b6040516102dd9190614053565b34801561075e57600080fd5b5061044561076d366004613d6b565b60126020526000908152604090205481565b34801561078b57600080fd5b506102ad611b73565b3480156107a057600080fd5b506104456107af36600461417f565b611bcd565b3480156107c057600080fd5b5061036b611e81565b3480156107d557600080fd5b506103986107e4366004613d6b565b611e90565b3480156107f557600080fd5b506102ad610804366004613d6b565b611f0b565b34801561081557600080fd5b50610398610824366004613e58565b611fa2565b34801561083557600080fd5b50610398610844366004613e58565b61203b565b34801561085557600080fd5b50610398610864366004613d6b565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088e57600080fd5b506102ad61089d366004613d6b565b612048565b3480156108ae57600080fd5b506102ad6108bd36600461424a565b6120df565b3480156108ce57600080fd5b506103986108dd366004614306565b612210565b3480156108ee57600080fd5b506102ad6108fd36600461440c565b61234a565b34801561090e57600080fd5b5061044561091d36600461447a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61255c565b34801561095c57600080fd5b506102c961259c565b34801561097157600080fd5b506102ad6109803660046144b3565b612631565b34801561099157600080fd5b50610445670de0b6b3a764000081565b3480156109ad57600080fd5b506102c96109bc366004613fe3565b612756565b3480156109cd57600080fd5b506013546102c9906001600160a01b031681565b60026007541415610a0d5760405162461bcd60e51b8152600401610a04906144f9565b60405180910390fd5b6002600755600080610a226020840184613d6b565b604051634c87087d60e01b8152602085013560048201526001600160a01b039190911690634c87087d9060240161018060405180830381865afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190614530565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614610b105760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610a04565b600080610b206020860186613d6b565b60405163c99733a760e01b815260208701356004820152670de0b6b3a764000060248201526001600160a01b03919091169063c99733a790604401608060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c91906145ed565b5050915091508460400135821115610c065760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610a04565b6000670de0b6b3a7640000610c1f606088013584614639565b610c299190614658565b9050610c35818461467a565b9250610c4c6001600160a01b038516333086612780565b610c6d610c5c6020880188613d6b565b6001600160a01b03861690856127f1565b610c7a6020870187613d6b565b60405163412dae6b60e11b815260208801356004820152670de0b6b3a76400006024820152604481018590526001600160a01b03919091169063825b5cd690606401600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015610d575760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610a04565b610d6a3033670de0b6b3a76400006128a3565b610d8c610d7a6020890189613d6b565b602089013561057960408b018b614692565b8015610db657610db6610da560a0880160808901613d6b565b6001600160a01b0386169083612a71565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a1505060016007555050505050565b606060088054610e14906146b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906146b2565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b6000610ea4338484612aa1565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906146e7565b60200151610f3b5760405162461bcd60e51b8152600401610a049061476b565b60026007541415610f5e5760405162461bcd60e51b8152600401610a04906144f9565b6002600755601354604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610fcb57600080fd5b505af1158015610fdf573d6000803e3d6000fd5b505050508115610ff257610ff285612bc5565b601580546001810182556000919091527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4750180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b600061108c8484846128a3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156111115760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b61111e8533858403612aa1565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119991906146e7565b602001516111b95760405162461bcd60e51b8152600401610a049061476b565b6111c281612cc7565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123391906146e7565b602001516112535760405162461bcd60e51b8152600401610a049061476b565b6111c281612d28565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a16112a981612d88565b5050565b33600090815260208190526040812054670de0b6b3a764000091908211156113235760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610a04565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a3600060105411801561139e5750600f546001600160a01b031615155b80156113b45750600e546001600160a01b031615155b1561156e57601054600f546113d8916001600160a01b039091169033903090612780565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144691906147a0565b9050801561147857611475670de0b6b3a764000061146f8360105461311a90919063ffffffff16565b90613126565b91505b600e546010546114a9916001600160a01b0316906114969085613132565b600f546001600160a01b03169190612a71565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906114ee9086613132565b60405190815260200160405180910390a3811561156c57600b54600f54611522916001600160a01b03918216911684612a71565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b61157783612d88565b61158082611690565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ea49185906115be90869061467a565b612aa1565b3360009081526005602052604090205460ff166116225760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610a04565b600a546116388261163260025490565b9061313e565b11156116865760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610a04565b6112a9828261314a565b6111c23382613229565b60606015805480602002602001604051908101604052809291908181526020018280548015610e8d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116d4575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906147b9565b6001600160a01b0316336001600160a01b0316146117c85760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610a04565b6117d0613377565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806118735750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906146e7565b602001515b6118d35760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610a04565b6118dc81613426565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b031633146119915760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610a04565b6001600160a01b0383166119f85760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610a04565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611a84833361091d565b905081811015611ae25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a04565b611aef8333848403612aa1565b611af98383613229565b505050565b60606014805480602002602001604051908101604052809291908181526020016000905b82821015611b6a576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611b22565b50505050905090565b600c546001600160a01b031633146117c85760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610a04565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3c91906146e7565b60200151611c5c5760405162461bcd60e51b8152600401610a049061476b565b60026007541415611c7f5760405162461bcd60e51b8152600401610a04906144f9565b60026007819055503083600381518110611c9b57611c9b6147d6565b6001600160a01b039283166020918202929092010152601354604051638244937560e01b8152911690638244937590611cdc908790879087906004016147ec565b6020604051808303816000875af1158015611cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1f91906147a0565b9050600082600481518110611d3657611d366147d6565b60200260200101511115611d4d57611d4d84612bc5565b82600081518110611d6057611d606147d6565b60200260200101516001600160a01b031683600181518110611d8457611d846147d6565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dd89291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601480546001808201835560009290925292517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec600290940293840180546001600160a01b0319169190981617909655517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed909101556007939093555090919050565b606060098054610e14906146b2565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0191906146e7565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906146e7565b60200151611f995760405162461bcd60e51b8152600401610a049061476b565b6111c281612bc5565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6120313385858403612aa1565b5060019392505050565b6000610ea43384846128a3565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b691906146e7565b602001516120d65760405162461bcd60e51b8152600401610a049061476b565b6111c281613448565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d91906146e7565b6020015161216d5760405162461bcd60e51b8152600401610a049061476b565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906121d99084908790879060040161487b565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156122875760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610a04565b61233b6122948b8d6148f5565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061233692508991508a905061497c565b613556565b9b9a5050505050505050505050565b4384101561238d5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610a04565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876123e0836149f7565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161245992919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156124c4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906124fa5750886001600160a01b0316816001600160a01b0316145b6125465760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610a04565b612551898989612aa1565b505050505050505050565b61256461259c565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156111c2573d6000803e3d6000fd5b600d546000906001600160a01b031661262157600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156125f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261c91906147b9565b905090565b50600d546001600160a01b031690565b600260075414156126545760405162461bcd60e51b8152600401610a04906144f9565b6002600755604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b5050336000908152602081905260409020548392509050101561272a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610a04565b61274c61273a6020850185613d6b565b60208501356105796040870187614692565b5050600160075550565b6006818154811061276657600080fd5b6000918252602090912001546001600160a01b0316905081565b6040516001600160a01b03808516602483015283166044820152606481018290526127eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a55565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286691906147a0565b612870919061467a565b6040516001600160a01b0385166024820152604481018290529091506127eb90859063095ea7b360e01b906064016127b4565b6001600160a01b0383166129075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166129695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b038316600090815260208190526040902054818110156129e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612a1890849061467a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6491815260200190565b60405180910390a36127eb565b6040516001600160a01b038316602482015260448101829052611af990849063a9059cbb60e01b906064016127b4565b6001600160a01b038316612b035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216612b645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff1615612c2f5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610a04565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff65890612cbb9042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d48090612cbb9042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612dcc60e0850185614a12565b612dd96020870187613d6b565b612de96040880160208901613d6b565b87604001358860c00135604051602001612e0896959493929190614a58565b60405160208183030381529060405280519060200120604051602001612e2f929190614a96565b60408051601f19818403018152919052805160209091012090506000600182612e5e6080870160608801614ab8565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612eb5573d6000803e3d6000fd5b5050604051601f1901519150612ed090506020850185613d6b565b6001600160a01b0316816001600160a01b031614612f275760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610a04565b612f376040850160208601613d6b565b6001600160a01b0316612f4d6020860186613d6b565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612f8960e0890189614a12565b612f9960808b0160608c01614ab8565b8a608001358b60a001358c60c00135604051612fbb9796959493929190614ad3565b60405180910390a360008460400135118015612ff057506000612fe46040860160208701613d6b565b6001600160a01b031614155b8015613012575060006130066020860186613d6b565b6001600160a01b031614155b156127eb5760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308591906147a0565b9050600081156130ac576130a9670de0b6b3a764000061146f60408901358561311a565b90505b60006130bc604088013583613132565b90506130f1336130cf60208a018a613d6b565b836130e060408c0160208d01613d6b565b6001600160a01b0316929190612780565b811561220757600b546122079033906001600160a01b0316846130e060408c0160208d01613d6b565b60006111248284614639565b60006111248284614658565b60006111248284614b16565b6000611124828461467a565b6001600160a01b0382166131a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a04565b80600260008282546131b2919061467a565b90915550506001600160a01b038216600090815260208190526040812080548392906131df90849061467a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166132895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156132fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b038316600090815260208190526040812083830390556002805484929061332c908490614b16565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156133dd576000600560006006848154811061339d5761339d6147d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806133d5816149f7565b91505061337a565b506133ea60066000613c9f565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156134c25760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610a04565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612cbb565b6000808460008151811061356c5761356c6147d6565b6020026020010151905060008560018151811061358b5761358b6147d6565b6020026020010151905060006001600160a01b0316826001600160a01b0316141561360d5760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610a04565b6001600160a01b0381166136895760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610a04565b8460008151811061369c5761369c6147d6565b6020026020010151600014156137005760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610a04565b84600081518110613713576137136147d6565b6020026020010151600a8190555087600081518110613734576137346147d6565b602002602001015160089080519060200190613751929190613cbd565b5087600181518110613765576137656147d6565b602002602001015160099080519060200190613782929190613cbd565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106137b3576137b36147d6565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161381d908890600090613810576138106147d6565b6020026020010151612bc5565b60006001600160a01b03168760018151811061383b5761383b6147d6565b60200260200101516001600160a01b0316146138e55761387487600181518110613867576138676147d6565b6020026020010151613426565b86600181518110613887576138876147d6565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516138dc929190918252602082015260400190565b60405180910390a35b866002815181106138f8576138f86147d6565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600381518110613939576139396147d6565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061397a5761397a6147d6565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516139bd9190614b2d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613aaa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b279092919063ffffffff16565b805190915015611af95780806020019051810190613ac89190614bc9565b611af95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a04565b6060613b368484600085613b3e565b949350505050565b606082471015613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a04565b843b613bed5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a04565b600080866001600160a01b03168587604051613c099190614be6565b60006040518083038185875af1925050503d8060008114613c46576040519150601f19603f3d011682016040523d82523d6000602084013e613c4b565b606091505b5091509150613c5b828286613c66565b979650505050505050565b60608315613c75575081611124565b825115613c855782518084602001fd5b8160405162461bcd60e51b8152600401610a049190613e25565b50805460008255906000526020600020908101906111c29190613d41565b828054613cc9906146b2565b90600052602060002090601f016020900481019282613ceb5760008555613d31565b82601f10613d0457805160ff1916838001178555613d31565b82800160010185558215613d31579182015b82811115613d31578251825591602001919060010190613d16565b50613d3d929150613d41565b5090565b5b80821115613d3d5760008155600101613d42565b6001600160a01b03811681146111c257600080fd5b600060208284031215613d7d57600080fd5b813561112481613d56565b600060608284031215613d9a57600080fd5b50919050565b60008082840360c0811215613db457600080fd5b83356001600160401b03811115613dca57600080fd5b613dd686828701613d88565b93505060a0601f1982011215613deb57600080fd5b506020830190509250929050565b60005b83811015613e14578181015183820152602001613dfc565b838111156127eb5750506000910152565b6020815260008251806020840152613e44816040850160208701613df9565b601f01601f19169190910160400192915050565b60008060408385031215613e6b57600080fd5b8235613e7681613d56565b946020939093013593505050565b80151581146111c257600080fd5b600080600080600060a08688031215613eaa57600080fd5b8535613eb581613d56565b945060208601359350604086013592506060860135613ed381613e84565b91506080860135613ee381613d56565b809150509295509295909350565b600080600060608486031215613f0657600080fd5b8335613f1181613d56565b92506020840135613f2181613d56565b929592945050506040919091013590565b60006101008284031215613d9a57600080fd5b60008060408385031215613f5857600080fd5b8235915060208301356001600160401b03811115613f7557600080fd5b613f8185828601613f32565b9150509250929050565b600080600060608486031215613fa057600080fd5b8335613fab81613d56565b92506020840135915060408401356001600160401b03811115613fcd57600080fd5b613fd986828701613f32565b9150509250925092565b600060208284031215613ff557600080fd5b5035919050565b600081518084526020808501945080840160005b838110156140355781516001600160a01b031687529582019590820190600101614010565b509495945050505050565b6020815260006111246020830184613ffc565b602080825282518282018190526000919060409081850190868401855b8281101561409e57815180516001600160a01b03168552860151868501529284019290850190600101614070565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156140e9576140e96140ab565b604052919050565b60006001600160401b0382111561410a5761410a6140ab565b5060051b60200190565b600082601f83011261412557600080fd5b8135602061413a614135836140f1565b6140c1565b82815260059290921b8401810191818101908684111561415957600080fd5b8286015b84811015614174578035835291830191830161415d565b509695505050505050565b60008060006060848603121561419457600080fd5b833561419f81613d56565b92506020848101356001600160401b03808211156141bc57600080fd5b818701915087601f8301126141d057600080fd5b81356141de614135826140f1565b81815260059190911b8301840190848101908a8311156141fd57600080fd5b938501935b8285101561422457843561421581613d56565b82529385019390850190614202565b96505050604087013592508083111561423c57600080fd5b5050613fd986828701614114565b6000806020838503121561425d57600080fd5b82356001600160401b038082111561427457600080fd5b818501915085601f83011261428857600080fd5b81358181111561429757600080fd5b8660208285010111156142a957600080fd5b60209290920196919550909350505050565b60008083601f8401126142cd57600080fd5b5081356001600160401b038111156142e457600080fd5b6020830191508360208260051b85010111156142ff57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561432557600080fd5b8a356001600160401b038082111561433c57600080fd5b6143488e838f016142bb565b909c509a5060208d013591508082111561436157600080fd5b61436d8e838f016142bb565b909a50985060408d013591508082111561438657600080fd5b6143928e838f016142bb565b909850965060608d01359150808211156143ab57600080fd5b6143b78e838f016142bb565b909650945060808d01359150808211156143d057600080fd5b506143dd8d828e016142bb565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461440757600080fd5b919050565b600080600080600080600060e0888a03121561442757600080fd5b873561443281613d56565b9650602088013561444281613d56565b9550604088013594506060880135935061445e608089016143f6565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561448d57600080fd5b823561449881613d56565b915060208301356144a881613d56565b809150509250929050565b600080604083850312156144c657600080fd5b82356001600160401b038111156144dc57600080fd5b6144e885828601613d88565b92505060208301356144a881613d56565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000806000806000806000806000806000806101808d8f03121561455357600080fd5b8c5161455e81613d56565b60208e0151909c5061456f81613d56565b60408e015160608f0151919c509a5061458781613d56565b8099505060808d0151975060a08d0151965060c08d01516145a781613e84565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d01516145d981613e84565b809150509295989b509295989b509295989b565b6000806000806080858703121561460357600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561465357614653614623565b500290565b60008261467557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561468d5761468d614623565b500190565b6000823560fe198336030181126146a857600080fd5b9190910192915050565b600181811c908216806146c657607f821691505b60208210811415613d9a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156146f957600080fd5b604051608081018181106001600160401b038211171561471b5761471b6140ab565b604052825161472981613e84565b8152602083015161473981613e84565b6020820152604083015161474c81613e84565b6040820152606083015161475f81613e84565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6000602082840312156147b257600080fd5b5051919050565b6000602082840312156147cb57600080fd5b815161112481613d56565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526060602080830182905260009161481190840186613ffc565b838103604085015284518082528286019183019060005b8181101561484457835183529284019291840191600101614828565b509098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000614895604083018486614852565b95945050505050565b60006001600160401b038311156148b7576148b76140ab565b6148ca601f8401601f19166020016140c1565b90508281528383830111156148de57600080fd5b828260208301376000602084830101529392505050565b6000614903614135846140f1565b80848252602080830192508560051b85013681111561492157600080fd5b855b818110156149705780356001600160401b038111156149425760008081fd5b870136601f8201126149545760008081fd5b61496236823586840161489e565b865250938201938201614923565b50919695505050505050565b600061498a614135846140f1565b80848252602080830192508560051b8501368111156149a857600080fd5b855b818110156149705780356001600160401b038111156149c95760008081fd5b870136601f8201126149db5760008081fd5b6149e936823586840161489e565b8652509382019382016149aa565b6000600019821415614a0b57614a0b614623565b5060010190565b6000808335601e19843603018112614a2957600080fd5b8301803591506001600160401b03821115614a4357600080fd5b6020019150368190038213156142ff57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b60008351614aa8818460208801613df9565b9190910191825250602001919050565b600060208284031215614aca57600080fd5b611124826143f6565b87815260c060208201526000614aed60c08301888a614852565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600082821015614b2857614b28614623565b500390565b600080835481600182811c915080831680614b4957607f831692505b6020808410821415614b6957634e487b7160e01b86526022600452602486fd5b818015614b7d5760018114614b8e57614bbb565b60ff19861689528489019650614bbb565b60008a81526020902060005b86811015614bb35781548b820152908501908301614b9a565b505084890196505b509498975050505050505050565b600060208284031215614bdb57600080fd5b815161112481613e84565b600082516146a8818460208701613df956fea2646970667358221220c6c541b55b7434428a1f5fec71f18215c72396f839989bbe881a60df2e21c0ce64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/ERC721Factory.json b/abis/ERC721Factory.json deleted file mode 100644 index 0ab45f8..0000000 --- a/abis/ERC721Factory.json +++ /dev/null @@ -1,1273 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721Factory", - "sourceName": "contracts/ERC721Factory.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_template721", - "type": "address" - }, - { - "internalType": "address", - "name": "_template", - "type": "address" - }, - { - "internalType": "address", - "name": "_collector", - "type": "address" - }, - { - "internalType": "address", - "name": "_router", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "DispenserCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "InstanceDeployed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newTokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "tokenName", - "type": "string" - }, - { - "indexed": false, - "internalType": "address", - "name": "admin", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "NFTCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "dispenserContract", - "type": "address" - } - ], - "name": "NewDispenser", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "exchangeContract", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "baseToken", - "type": "address" - } - ], - "name": "NewFixedRate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "poolAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "ssContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - } - ], - "name": "NewPool", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_templateAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nftTemplateCount", - "type": "uint256" - } - ], - "name": "Template20Added", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_templateAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nftTemplateCount", - "type": "uint256" - } - ], - "name": "Template721Added", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newTokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "cap", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "creator", - "type": "address" - } - ], - "name": "TokenCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_templateAddress", - "type": "address" - } - ], - "name": "add721TokenTemplate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_templateAddress", - "type": "address" - } - ], - "name": "addTokenTemplate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "internalType": "struct ERC721Factory.NftCreateData", - "name": "_NftCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "internalType": "struct ERC721Factory.ErcCreateData", - "name": "_ErcCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "dispenserAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "withMint", - "type": "bool" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "internalType": "struct ERC721Factory.DispenserData", - "name": "_DispenserData", - "type": "tuple" - } - ], - "name": "createNftErcWithDispenser", - "outputs": [ - { - "internalType": "address", - "name": "erc721Address", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "internalType": "struct ERC721Factory.NftCreateData", - "name": "_NftCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "internalType": "struct ERC721Factory.ErcCreateData", - "name": "_ErcCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "fixedPriceAddress", - "type": "address" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - } - ], - "internalType": "struct ERC721Factory.FixedData", - "name": "_FixedData", - "type": "tuple" - } - ], - "name": "createNftErcWithFixedRate", - "outputs": [ - { - "internalType": "address", - "name": "erc721Address", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "internalType": "struct ERC721Factory.NftCreateData", - "name": "_NftCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "internalType": "struct ERC721Factory.ErcCreateData", - "name": "_ErcCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256[]", - "name": "ssParams", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "swapFees", - "type": "uint256[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - } - ], - "internalType": "struct ERC721Factory.PoolData", - "name": "_PoolData", - "type": "tuple" - } - ], - "name": "createNftErcWithPool", - "outputs": [ - { - "internalType": "address", - "name": "erc721Address", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - }, - { - "internalType": "address", - "name": "poolAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "internalType": "struct ERC721Factory.NftCreateData", - "name": "_NftCreateData", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "internalType": "struct ERC721Factory.ErcCreateData", - "name": "_ErcCreateData", - "type": "tuple" - } - ], - "name": "createNftWithErc", - "outputs": [ - { - "internalType": "address", - "name": "erc721Address", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "name": "createToken", - "outputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_templateIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "additionalERC20Deployer", - "type": "address" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "deployERC721Contract", - "outputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "disable721TokenTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "disableTokenTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "erc20List", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "erc721List", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentNFTCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentNFTTemplateCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentTemplateCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCurrentTokenCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getNFTTemplate", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - } - ], - "internalType": "struct ERC721Factory.Template", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getTokenTemplate", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - } - ], - "internalType": "struct ERC721Factory.Template", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "nftTemplateList", - "outputs": [ - { - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "reactivate721TokenTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "reactivateTokenTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "orderTxId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct IERC20Template.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "internalType": "struct ERC721Factory.reuseTokenOrder[]", - "name": "orders", - "type": "tuple[]" - } - ], - "name": "reuseMultipleTokenOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "consumer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "serviceIndex", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "providerFeeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "providerFeeToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "providerFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "validUntil", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "providerData", - "type": "bytes" - } - ], - "internalType": "struct IERC20Template.providerFees", - "name": "_providerFees", - "type": "tuple" - } - ], - "internalType": "struct ERC721Factory.tokenOrder[]", - "name": "orders", - "type": "tuple[]" - } - ], - "name": "startMultipleTokenOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "templateCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "templateList", - "outputs": [ - { - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526000600a553480156200001657600080fd5b5060405162004132380380620041328339810160408190526200003991620005ab565b6200004433620001be565b600180556001600160a01b038316158015906200006957506001600160a01b03821615155b80156200007e57506001600160a01b03841615155b620001065760405162461bcd60e51b815260206004820152604760248201527f4552433732314454466163746f72793a20496e76616c69642074656d706c617460448201527f6520746f6b656e2f636f6d6d756e6974792066656520636f6c6c6563746f72206064820152666164647265737360c81b608482015260a4015b60405180910390fd5b6001600160a01b0381166200016e5760405162461bcd60e51b815260206004820152602760248201527f4552433732314454466163746f72793a20496e76616c696420726f75746572206044820152666164647265737360c81b6064820152608401620000fd565b62000179846200020e565b506200018583620003d1565b50600c80546001600160a01b039283166001600160a01b03199182161790915560028054939092169216919091179055506200062f9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080546001600160a01b031633146200025a5760405162461bcd60e51b81526020600482018190526024820152600080516020620041128339815191526044820152606401620000fd565b6001600160a01b038216620002d85760405162461bcd60e51b815260206004820152603760248201527f4552433732314454466163746f72793a204552433732312074656d706c61746560448201527f2061646472657373283029204e4f5420414c4c4f5745440000000000000000006064820152608401620000fd565b813b620003285760405162461bcd60e51b815260206004820152601b60248201527f455243373231466163746f72793a204e4f5420434f4e545241435400000000006044820152606401620000fd565b6001600560008282546200033d919062000608565b90915550506040805180820182526001600160a01b038085168083526001602080850191825260058054600090815260069092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fc0167b92c8eb4a2bad2c05e0134f076fba5d3cd54671a3e8edf13d2e61443bd991a350506005545b919050565b600080546001600160a01b031633146200041d5760405162461bcd60e51b81526020600482018190526024820152600080516020620041128339815191526044820152606401620000fd565b6001600160a01b0382166200049b5760405162461bcd60e51b815260206004820152603460248201527f4552433230466163746f72793a204552433732312074656d706c61746520616460448201527f6472657373283029204e4f5420414c4c4f5745440000000000000000000000006064820152608401620000fd565b813b620004eb5760405162461bcd60e51b815260206004820152601a60248201527f4552433230466163746f72793a204e4f5420434f4e54524143540000000000006044820152606401620000fd565b6001600b600082825462000500919062000608565b90915550506040805180820182526001600160a01b0380851680835260016020808501918252600b8054600090815260079092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fdcd16da87b60cea6dbd55a83f73b8a4bf9a54655db58ae0f35b82a2373fc150d91a35050600b54919050565b80516001600160a01b0381168114620003cc57600080fd5b60008060008060808587031215620005c257600080fd5b620005cd8562000593565b9350620005dd6020860162000593565b9250620005ed6040860162000593565b9150620005fd6060860162000593565b905092959194509250565b600082198211156200062a57634e487b7160e01b600052601160045260246000fd5b500190565b613ad3806200063f6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638989886911610104578063b9cd2264116100a2578063e5fc01f011610071578063e5fc01f01461051d578063f2fde38b14610525578063f887ea4014610538578063fd024d6a1461054b57600080fd5b8063b9cd226414610496578063bbf8d71f146104cf578063c6cf868a146104e2578063e3491099146104ea57600080fd5b806394051699116100de578063940516991461040957806395c603051461043e578063a33ef2a614610446578063b3440f8c1461045957600080fd5b806389898869146103d25780638da5cb5b146103e55780638f6051af146103f657600080fd5b80635c70598211610171578063732752141161014b57806373275214146103455780637b20bccf14610358578063809d81051461036b57806382c442041461037e57600080fd5b80635c7059821461030c578063715018a61461031457806372f670f01461031c57600080fd5b80632515422e116101ad5780632515422e1461025a57806326705c3c1461026d5780633315efd114610284578063557fcfb0146102e157600080fd5b8063042ab9b3146101d45780630ffda88714610212578063226e761514610227575b600080fd5b6101e76101e23660046128d1565b61055e565b6040805182516001600160a01b03168152602092830151151592810192909252015b60405180910390f35b6102256102203660046128d1565b6105e5565b005b61024a61023536600461290a565b60096020526000908152604090205460ff1681565b6040519015158152602001610209565b610225610268366004612b20565b61062a565b610276600b5481565b604051908152602001610209565b6101e76102923660046128d1565b6040805180820190915260008082526020820152506000908152600660209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff1615159082015290565b6102f46102ef366004612d6f565b61090b565b6040516001600160a01b039091168152602001610209565b600354610276565b6102256109ac565b6102f461032a36600461290a565b6008602052600090815260409020546001600160a01b031681565b610225610353366004612e97565b6109e2565b61027661036636600461290a565b610e24565b6102256103793660046128d1565b610fb7565b6103b361038c3660046128d1565b6006602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b039093168352901515602083015201610209565b6102f46103e0366004612fa1565b611029565b6000546001600160a01b03166102f4565b61027661040436600461290a565b6112fa565b6103b36104173660046128d1565b6007602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b600b54610276565b6102256104543660046128d1565b611495565b61046c610467366004613076565b61150d565b604080516001600160a01b0394851681529284166020840152921691810191909152606001610209565b6104a96104a4366004613076565b6118a3565b604080516001600160a01b03948516815293909216602084015290820152606001610209565b6102256104dd3660046128d1565b611a26565b600a54610276565b6104fd6104f83660046130fd565b611ae2565b604080516001600160a01b03938416815292909116602083015201610209565b600554610276565b61022561053336600461290a565b611cba565b600c546102f4906001600160a01b031681565b6104fd610559366004613160565b611d55565b60408051808201909152600080825260208201526000828152600760209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff16151590820152600b5483118015906105ba57508215155b6105df5760405162461bcd60e51b81526004016105d6906131d4565b60405180910390fd5b92915050565b6000546001600160a01b0316331461060f5760405162461bcd60e51b81526004016105d69061321d565b6000908152600760205260409020805460ff60a01b19169055565b6002600154141561064d5760405162461bcd60e51b81526004016105d690613252565b60026001558051603210156106a45760405162461bcd60e51b815260206004820152601e60248201527f455243373231466163746f72793a20546f6f204d616e79204f7264657273000060448201526064016105d6565b60005b81518110156109035760008282815181106106c4576106c4613289565b60200260200101516040015160400151118015610715575060006001600160a01b03168282815181106106f9576106f9613289565b602002602001015160400151602001516001600160a01b031614155b8015610755575060006001600160a01b031682828151811061073957610739613289565b602002602001015160400151600001516001600160a01b031614155b15610839576107bc333084848151811061077157610771613289565b6020026020010151604001516040015185858151811061079357610793613289565b602002602001015160400151602001516001600160a01b0316611feb909392919063ffffffff16565b6108398282815181106107d1576107d1613289565b6020026020010151600001518383815181106107ef576107ef613289565b6020026020010151604001516040015184848151811061081157610811613289565b602002602001015160400151602001516001600160a01b031661205c9092919063ffffffff16565b81818151811061084b5761084b613289565b6020026020010151600001516001600160a01b031663361fef4983838151811061087757610877613289565b60200260200101516020015184848151811061089557610895613289565b6020026020010151604001516040518363ffffffff1660e01b81526004016108be92919061336b565b600060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b5050505080806108fb9061339a565b9150506106a7565b505060018055565b3360008181526008602052604081205490916001600160a01b03909116146109945760405162461bcd60e51b815260206004820152603660248201527f455243373231466163746f72793a204f4e4c592045524337323120494e5354416044820152754e43452046524f4d20455243373231464143544f525960501b60648201526084016105d6565b6109a286868686863361210e565b9695505050505050565b6000546001600160a01b031633146109d65760405162461bcd60e51b81526004016105d69061321d565b6109e060006123f3565b565b60026001541415610a055760405162461bcd60e51b81526004016105d690613252565b6002600155805160321015610a5c5760405162461bcd60e51b815260206004820152601e60248201527f455243373231466163746f72793a20546f6f204d616e79204f7264657273000060448201526064016105d6565b60005b8151811015610903576000806000848481518110610a7f57610a7f613289565b6020026020010151600001516001600160a01b031663397b37436040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906133b5565b925092509250600081118015610b0a57506001600160a01b03821615155b8015610b1e57506001600160a01b03831615155b15610b6a57610b386001600160a01b038316333084611feb565b610b6a858581518110610b4d57610b4d613289565b6020908102919091010151516001600160a01b038416908361205c565b6000858581518110610b7e57610b7e613289565b60200260200101516060015160400151118015610bcf575060006001600160a01b0316858581518110610bb357610bb3613289565b602002602001015160600151602001516001600160a01b031614155b8015610c0f575060006001600160a01b0316858581518110610bf357610bf3613289565b602002602001015160600151600001516001600160a01b031614155b15610cf357610c763330878781518110610c2b57610c2b613289565b60200260200101516060015160400151888881518110610c4d57610c4d613289565b602002602001015160600151602001516001600160a01b0316611feb909392919063ffffffff16565b610cf3858581518110610c8b57610c8b613289565b602002602001015160000151868681518110610ca957610ca9613289565b60200260200101516060015160400151878781518110610ccb57610ccb613289565b602002602001015160600151602001516001600160a01b031661205c9092919063ffffffff16565b610d383330670de0b6b3a7640000888881518110610d1357610d13613289565b6020026020010151600001516001600160a01b0316611feb909392919063ffffffff16565b848481518110610d4a57610d4a613289565b6020026020010151600001516001600160a01b031663363bdb46868681518110610d7657610d76613289565b602002602001015160200151878781518110610d9457610d94613289565b602002602001015160400151888881518110610db257610db2613289565b6020026020010151606001516040518463ffffffff1660e01b8152600401610ddc939291906133f8565b600060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b505050505050508080610e1c9061339a565b915050610a5f565b600080546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b038216610ec25760405162461bcd60e51b815260206004820152603460248201527f4552433230466163746f72793a204552433732312074656d706c617465206164604482015273191c995cdcca0c0a481393d50810531313d5d15160621b60648201526084016105d6565b813b610f105760405162461bcd60e51b815260206004820152601a60248201527f4552433230466163746f72793a204e4f5420434f4e545241435400000000000060448201526064016105d6565b6001600b6000828254610f23919061341f565b90915550506040805180820182526001600160a01b0380851680835260016020808501918252600b8054600090815260079092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fdcd16da87b60cea6dbd55a83f73b8a4bf9a54655db58ae0f35b82a2373fc150d91a35050600b545b919050565b6000546001600160a01b03163314610fe15760405162461bcd60e51b81526004016105d69061321d565b6005548111158015610ff257508015155b61100e5760405162461bcd60e51b81526004016105d690613437565b6000908152600660205260409020805460ff60a01b19169055565b6000600554841115801561103c57508315155b6110585760405162461bcd60e51b81526004016105d690613437565b6000848152600660209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff1615159082018190526110f45760405162461bcd60e51b815260206004820152602e60248201527f4552433732314454466163746f72793a20455243373231546f6b656e2054656d60448201526d1c1b185d1948191a5cd8589b195960921b60648201526084016105d6565b80516110ff90612443565b91506001600160a01b03821661117f576040805162461bcd60e51b81526020600482015260248101919091527f4552433732314454466163746f72793a204661696c656420746f20706572666f60448201527f726d206d696e696d616c206465706c6f79206f662061206e657720746f6b656e60648201526084016105d6565b6001600160a01b0382166000818152600860205260409081902080546001600160a01b03191683179055516370c166d760e01b81528391906370c166d7906111d59033908c908c9030908c908c90600401613483565b6020604051808303816000875af11580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121891906134f7565b6112815760405162461bcd60e51b815260206004820152603460248201527f4552433732314454466163746f72793a20556e61626c6520746f20696e697469604482015273616c697a6520746f6b656e20696e7374616e636560601b60648201526084016105d6565b81600001516001600160a01b0316836001600160a01b03167f46f5e3cee761854fc3892024ae7aa2c832007dff583603ce093f177ebd9c4c968a338b896040516112ce9493929190613514565b60405180910390a36001600360008282546112e9919061341f565b909155509298975050505050505050565b600080546001600160a01b031633146113255760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b0382166113a15760405162461bcd60e51b815260206004820152603760248201527f4552433732314454466163746f72793a204552433732312074656d706c61746560448201527f2061646472657373283029204e4f5420414c4c4f57454400000000000000000060648201526084016105d6565b813b6113ef5760405162461bcd60e51b815260206004820152601b60248201527f455243373231466163746f72793a204e4f5420434f4e5452414354000000000060448201526064016105d6565b600160056000828254611402919061341f565b90915550506040805180820182526001600160a01b038085168083526001602080850191825260058054600090815260069092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fc0167b92c8eb4a2bad2c05e0134f076fba5d3cd54671a3e8edf13d2e61443bd991a35050600554919050565b6000546001600160a01b031633146114bf5760405162461bcd60e51b81526004016105d69061321d565b60055481111580156114d057508015155b6114ec5760405162461bcd60e51b81526004016105d690613437565b6000908152600660205260409020805460ff60a01b1916600160a01b179055565b6000806000600260015414156115355760405162461bcd60e51b81526004016105d690613252565b60026001556115a83330611549878061355c565b600481811061155a5761155a613289565b90506020020135878060400190611571919061355c565b600181811061158257611582613289565b9050602002016020810190611597919061290a565b6001600160a01b0316929190611feb565b6116786115b587806135ac565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f79250505060208901896135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408901353061163e60608c018c6135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061102992505050565b92506001600160a01b03831663e38d7cad8635611698602089018961355c565b6116a560408b018b61355c565b6116b260608d018d61355c565b6116bf60808f018f61355c565b6040518a63ffffffff1660e01b81526004016116e39998979695949392919061373c565b6020604051808303816000875af1158015611702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172691906137ed565b600c549092506117a1906001600160a01b0316611743868061355c565b600481811061175457611754613289565b9050602002013586806040019061176b919061355c565b600181811061177c5761177c613289565b9050602002016020810190611791919061290a565b6001600160a01b0316919061205c565b6001600160a01b038216635bfe4da06117ba868061355c565b6117c7602089018961355c565b6117d460408b018b61355c565b6040518763ffffffff1660e01b81526004016117f59695949392919061380a565b6020604051808303816000875af1158015611814573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183891906137ed565b6040516301fc3d9160e71b81523060048201529091506001600160a01b0384169063fe1ec88090602401600060405180830381600087803b15801561187c57600080fd5b505af1158015611890573d6000803e3d6000fd5b5050600180555092969195509350915050565b6000806000600260015414156118cb5760405162461bcd60e51b81526004016105d690613252565b60026001556118dd6115b587806135ac565b92506001600160a01b03831663e38d7cad86356118fd602089018961355c565b61190a60408b018b61355c565b61191760608d018d61355c565b61192460808f018f61355c565b6040518a63ffffffff1660e01b81526004016119489998979695949392919061373c565b6020604051808303816000875af1158015611967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198b91906137ed565b91506001600160a01b038216638b96412b6119a9602087018761290a565b6119b6602088018861355c565b6119c360408a018a61355c565b6040518663ffffffff1660e01b81526004016119e3959493929190613853565b6020604051808303816000875af1158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118389190613897565b6000546001600160a01b03163314611a505760405162461bcd60e51b81526004016105d69061321d565b600b548111158015611a6157508015155b611ac15760405162461bcd60e51b815260206004820152602b60248201527f45524332304454466163746f72793a2054656d706c61746520696e646578206460448201526a1bd95cdb9d08195e1a5cdd60aa1b60648201526084016105d6565b6000908152600760205260409020805460ff60a01b1916600160a01b179055565b60008060026001541415611b085760405162461bcd60e51b81526004016105d690613252565b6002600155611ba3611b1a85806135ac565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5c9250505060208701876135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408701353061163e60608a018a6135ac565b91506001600160a01b03821663e38d7cad8435611bc3602087018761355c565b611bd0604089018961355c565b611bdd60608b018b61355c565b611bea60808d018d61355c565b6040518a63ffffffff1660e01b8152600401611c0e9998979695949392919061373c565b6020604051808303816000875af1158015611c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5191906137ed565b6040516301fc3d9160e71b81523060048201529091506001600160a01b0383169063fe1ec88090602401600060405180830381600087803b158015611c9557600080fd5b505af1158015611ca9573d6000803e3d6000fd5b505060018055509194909350915050565b6000546001600160a01b03163314611ce45760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b038116611d495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d6565b611d52816123f3565b50565b60008060026001541415611d7b5760405162461bcd60e51b81526004016105d690613252565b6002600155611e16611d8d86806135ac565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dcf9250505060208801886135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408801353061163e60608b018b6135ac565b91506001600160a01b03821663e38d7cad8535611e36602088018861355c565b611e4360408a018a61355c565b611e5060608c018c61355c565b611e5d60808e018e61355c565b6040518a63ffffffff1660e01b8152600401611e819998979695949392919061373c565b6020604051808303816000875af1158015611ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec491906137ed565b90506001600160a01b03811663191c918a611ee2602086018661290a565b60208601356040870135611efc6080890160608a016138b0565b611f0c60a08a0160808b0161290a565b60405160e087901b6001600160e01b03191681526001600160a01b0395861660048201526024810194909452604484019290925215156064830152909116608482015260a401600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b50506040516301fc3d9160e71b81523060048201526001600160a01b038516925063fe1ec8809150602401600060405180830381600087803b158015611fc557600080fd5b505af1158015611fd9573d6000803e3d6000fd5b50506001805550919590945092505050565b6040516001600160a01b03808516602483015283166044820152606481018290526120569085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526124d3565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156120ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d19190613897565b6120db919061341f565b6040516001600160a01b03851660248201526044810182905290915061205690859063095ea7b360e01b9060640161201f565b60008360008151811061212357612123613289565b6020026020010151600014156121895760405162461bcd60e51b815260206004820152602560248201527f4552433230466163746f72793a207a65726f20636170206973206e6f7420616c6044820152641b1bddd95960da1b60648201526084016105d6565b600b54871115801561219a57508615155b6121b65760405162461bcd60e51b81526004016105d6906131d4565b6000878152600760209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff16151590820181905261224f5760405162461bcd60e51b815260206004820152602b60248201527f4552433230466163746f72793a20455243373231546f6b656e2054656d706c6160448201526a1d1948191a5cd8589b195960aa1b60648201526084016105d6565b805161225a90612443565b6001600160a01b0381166000818152600960205260409020805460ff191660011790559092506122f25760405162461bcd60e51b815260206004820152603e60248201527f455243373231466163746f72793a204661696c656420746f20706572666f726d60448201527f206d696e696d616c206465706c6f79206f662061206e657720746f6b656e000060648201526084016105d6565b80600001516001600160a01b0316826001600160a01b03167f567699dbf7c5f63a51a42fd451f5e065bca0dfc723adf2cc498bbb7cfb780b908960008151811061233e5761233e613289565b60200260200101518a60018151811061235957612359613289565b60200260200101518960008151811061237457612374613289565b60200260200101518860405161238d94939291906138cd565b60405180910390a36001600a60008282546123a8919061341f565b90915550506040805160a081018252888152602081018890529081018690526001600160a01b0384166080820152606081018590526123e783826125aa565b50509695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b6000612528826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127579092919063ffffffff16565b8051909150156125a5578080602001905181019061254691906134f7565b6125a55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d6565b505050565b60408051600380825260808201909252839160009190602082016060803683370190505090508260800151816000815181106125e8576125e8613289565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061261957612619613289565b6001600160a01b039283166020918202929092010152600c5482519116908290600290811061264a5761264a613289565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663b3998be08460000151856020015184876040015188606001516040518663ffffffff1660e01b81526004016126ae9594939291906139c5565b6020604051808303816000875af11580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f191906134f7565b6120565760405162461bcd60e51b815260206004820152603160248201527f4552433230466163746f72793a20556e61626c6520746f20696e697469616c696044820152707a6520746f6b656e20696e7374616e636560781b60648201526084016105d6565b60606127668484600085612770565b90505b9392505050565b6060824710156127d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d6565b843b61281f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d6565b600080866001600160a01b0316858760405161283b9190613a6e565b60006040518083038185875af1925050503d8060008114612878576040519150601f19603f3d011682016040523d82523d6000602084013e61287d565b606091505b509150915061288d828286612898565b979650505050505050565b606083156128a7575081612769565b8251156128b75782518084602001fd5b8160405162461bcd60e51b81526004016105d69190613a8a565b6000602082840312156128e357600080fd5b5035919050565b6001600160a01b0381168114611d5257600080fd5b8035610fb2816128ea565b60006020828403121561291c57600080fd5b8135612769816128ea565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171561296057612960612927565b60405290565b604051606081016001600160401b038111828210171561296057612960612927565b604051608081016001600160401b038111828210171561296057612960612927565b604051601f8201601f191681016001600160401b03811182821017156129d2576129d2612927565b604052919050565b60006001600160401b038211156129f3576129f3612927565b5060051b60200190565b803560ff81168114610fb257600080fd5b600082601f830112612a1f57600080fd5b81356001600160401b03811115612a3857612a38612927565b612a4b601f8201601f19166020016129aa565b818152846020838601011115612a6057600080fd5b816020850160208301376000918101602001919091529392505050565b60006101008284031215612a9057600080fd5b612a9861293d565b9050612aa3826128ff565b8152612ab1602083016128ff565b602082015260408201356040820152612acc606083016129fd565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e08201356001600160401b03811115612b0857600080fd5b612b1484828501612a0e565b60e08301525092915050565b60006020808385031215612b3357600080fd5b82356001600160401b0380821115612b4a57600080fd5b818501915085601f830112612b5e57600080fd5b8135612b71612b6c826129da565b6129aa565b81815260059190911b83018401908481019088831115612b9057600080fd5b8585015b83811015612c1957803585811115612bac5760008081fd5b86016060818c03601f1901811315612bc45760008081fd5b612bcc612966565b89830135612bd9816128ea565b81526040838101358b830152918301359188831115612bf85760008081fd5b612c068e8c85870101612a7d565b9082015285525050918601918601612b94565b5098975050505050505050565b600082601f830112612c3757600080fd5b81356020612c47612b6c836129da565b82815260059290921b84018101918181019086841115612c6657600080fd5b8286015b84811015612c8a578035612c7d816128ea565b8352918301918301612c6a565b509695505050505050565b600082601f830112612ca657600080fd5b81356020612cb6612b6c836129da565b82815260059290921b84018101918181019086841115612cd557600080fd5b8286015b84811015612c8a5780358352918301918301612cd9565b600082601f830112612d0157600080fd5b81356020612d11612b6c836129da565b82815260059290921b84018101918181019086841115612d3057600080fd5b8286015b84811015612c8a5780356001600160401b03811115612d535760008081fd5b612d618986838b0101612a0e565b845250918301918301612d34565b600080600080600060a08688031215612d8757600080fd5b853594506020808701356001600160401b0380821115612da657600080fd5b818901915089601f830112612dba57600080fd5b8135612dc8612b6c826129da565b81815260059190911b8301840190848101908c831115612de757600080fd5b8585015b83811015612e1f57803585811115612e035760008081fd5b612e118f89838a0101612a0e565b845250918601918601612deb565b50985050506040890135925080831115612e3857600080fd5b612e448a848b01612c26565b95506060890135925080831115612e5a57600080fd5b612e668a848b01612c95565b94506080890135925080831115612e7c57600080fd5b5050612e8a88828901612cf0565b9150509295509295909350565b60006020808385031215612eaa57600080fd5b82356001600160401b0380821115612ec157600080fd5b818501915085601f830112612ed557600080fd5b8135612ee3612b6c826129da565b81815260059190911b83018401908481019088831115612f0257600080fd5b8585015b83811015612c1957803585811115612f1e5760008081fd5b86016080818c03601f1901811315612f365760008081fd5b612f3e612988565b89830135612f4b816128ea565b8152604083810135612f5c816128ea565b828c015260608481013582840152928401359289841115612f7f57600091508182fd5b612f8d8f8d86880101612a7d565b908301525085525050918601918601612f06565b600080600080600060a08688031215612fb957600080fd5b85356001600160401b0380821115612fd057600080fd5b612fdc89838a01612a0e565b96506020880135915080821115612ff257600080fd5b612ffe89838a01612a0e565b95506040880135945060608801359150613017826128ea565b9092506080870135908082111561302d57600080fd5b50612e8a88828901612a0e565b60006080828403121561304c57600080fd5b50919050565b600060a0828403121561304c57600080fd5b60006060828403121561304c57600080fd5b60008060006060848603121561308b57600080fd5b83356001600160401b03808211156130a257600080fd5b6130ae8783880161303a565b945060208601359150808211156130c457600080fd5b6130d087838801613052565b935060408601359150808211156130e657600080fd5b506130f386828701613064565b9150509250925092565b6000806040838503121561311057600080fd5b82356001600160401b038082111561312757600080fd5b6131338683870161303a565b9350602085013591508082111561314957600080fd5b5061315685828601613052565b9150509250929050565b600080600060e0848603121561317557600080fd5b83356001600160401b038082111561318c57600080fd5b6131988783880161303a565b945060208601359150808211156131ae57600080fd5b506131bb86828701613052565b9250506131cb8560408601613052565b90509250925092565b60208082526029908201527f4552433230466163746f72793a2054656d706c61746520696e64657820646f656040820152681cdb9d08195e1a5cdd60ba1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60005b838110156132ba5781810151838201526020016132a2565b838111156120565750506000910152565b600081518084526132e381602086016020860161329f565b601f01601f19169290920160200192915050565b600061010060018060a01b03808451168552806020850151166020860152506040830151604085015260ff60608401511660608501526080830151608085015260a083015160a085015260c083015160c085015260e08301518160e0860152613362828601826132cb565b95945050505050565b82815260406020820152600061276660408301846132f7565b634e487b7160e01b600052601160045260246000fd5b60006000198214156133ae576133ae613384565b5060010190565b6000806000606084860312156133ca57600080fd5b83516133d5816128ea565b60208501519093506133e6816128ea565b80925050604084015190509250925092565b60018060a01b038416815282602082015260606040820152600061336260608301846132f7565b6000821982111561343257613432613384565b500190565b6020808252602c908201527f4552433732314454466163746f72793a2054656d706c61746520696e6465782060408201526b191bd95cdb9d08195e1a5cdd60a21b606082015260800190565b600060018060a01b03808916835260c060208401526134a560c08401896132cb565b83810360408501526134b781896132cb565b90508187166060850152818616608085015283810360a08501526134db81866132cb565b9a9950505050505050505050565b8015158114611d5257600080fd5b60006020828403121561350957600080fd5b8151612769816134e9565b60808152600061352760808301876132cb565b6001600160a01b0386166020840152828103604084015261354881866132cb565b9050828103606084015261288d81856132cb565b6000808335601e1984360301811261357357600080fd5b8301803591506001600160401b0382111561358d57600080fd5b6020019150600581901b36038213156135a557600080fd5b9250929050565b6000808335601e198436030181126135c357600080fd5b8301803591506001600160401b038211156135dd57600080fd5b6020019150368190038213156135a557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e1984360301811261363257600080fd5b83016020810192503590506001600160401b0381111561365157600080fd5b8036038313156135a557600080fd5b8183526000602080850194508260005b8581101561369e578135613683816128ea565b6001600160a01b031687529582019590820190600101613670565b509495945050505050565b81835260006001600160fb1b038311156136c257600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b8781101561372f578284038952613710828861361b565b61371b8682846135f2565b9a87019a95505050908401906001016136f9565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c81101561379d5785840360bf1901835261377b828f61361b565b6137868682846135f2565b955050506020928301929190910190600101613760565b50505082810360408401526137b381898b613660565b905082810360608401526137c88187896136a9565b905082810360808401526137dd8185876136df565b9c9b505050505050505050505050565b6000602082840312156137ff57600080fd5b8151612769816128ea565b60608152600061381e60608301888a6136a9565b82810360208401526138318187896136a9565b90508281036040840152613846818587613660565b9998505050505050505050565b6001600160a01b03861681526060602082018190526000906138789083018688613660565b828103604084015261388b8185876136a9565b98975050505050505050565b6000602082840312156138a957600080fd5b5051919050565b6000602082840312156138c257600080fd5b8135612769816134e9565b6080815260006138e060808301876132cb565b82810360208401526138f281876132cb565b604084019590955250506001600160a01b039190911660609091015292915050565b600081518084526020808501945080840160005b8381101561369e5781516001600160a01b031687529582019590820190600101613928565b600081518084526020808501945080840160005b8381101561369e57815187529582019590820190600101613961565b600081518084526020808501808196508360051b8101915082860160005b8581101561372f5782840389526139b38483516132cb565b9885019893509084019060010161399b565b600060a0820160a0835280885180835260c08501915060c08160051b86010192506020808b0160005b83811015613a1c5760bf19888703018552613a0a8683516132cb565b955093820193908201906001016139ee565b505085840381870152505050613a328188613914565b90508281036040840152613a468187613914565b90508281036060840152613a5a818661394d565b9050828103608084015261388b818561397d565b60008251613a8081846020870161329f565b9190910192915050565b60208152600061276960208301846132cb56fea2646970667358221220e5230d911a5f424516f8a305573b55003357dca8e5841e5fe2956a268271ed2164736f6c634300080a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638989886911610104578063b9cd2264116100a2578063e5fc01f011610071578063e5fc01f01461051d578063f2fde38b14610525578063f887ea4014610538578063fd024d6a1461054b57600080fd5b8063b9cd226414610496578063bbf8d71f146104cf578063c6cf868a146104e2578063e3491099146104ea57600080fd5b806394051699116100de578063940516991461040957806395c603051461043e578063a33ef2a614610446578063b3440f8c1461045957600080fd5b806389898869146103d25780638da5cb5b146103e55780638f6051af146103f657600080fd5b80635c70598211610171578063732752141161014b57806373275214146103455780637b20bccf14610358578063809d81051461036b57806382c442041461037e57600080fd5b80635c7059821461030c578063715018a61461031457806372f670f01461031c57600080fd5b80632515422e116101ad5780632515422e1461025a57806326705c3c1461026d5780633315efd114610284578063557fcfb0146102e157600080fd5b8063042ab9b3146101d45780630ffda88714610212578063226e761514610227575b600080fd5b6101e76101e23660046128d1565b61055e565b6040805182516001600160a01b03168152602092830151151592810192909252015b60405180910390f35b6102256102203660046128d1565b6105e5565b005b61024a61023536600461290a565b60096020526000908152604090205460ff1681565b6040519015158152602001610209565b610225610268366004612b20565b61062a565b610276600b5481565b604051908152602001610209565b6101e76102923660046128d1565b6040805180820190915260008082526020820152506000908152600660209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff1615159082015290565b6102f46102ef366004612d6f565b61090b565b6040516001600160a01b039091168152602001610209565b600354610276565b6102256109ac565b6102f461032a36600461290a565b6008602052600090815260409020546001600160a01b031681565b610225610353366004612e97565b6109e2565b61027661036636600461290a565b610e24565b6102256103793660046128d1565b610fb7565b6103b361038c3660046128d1565b6006602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b039093168352901515602083015201610209565b6102f46103e0366004612fa1565b611029565b6000546001600160a01b03166102f4565b61027661040436600461290a565b6112fa565b6103b36104173660046128d1565b6007602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b600b54610276565b6102256104543660046128d1565b611495565b61046c610467366004613076565b61150d565b604080516001600160a01b0394851681529284166020840152921691810191909152606001610209565b6104a96104a4366004613076565b6118a3565b604080516001600160a01b03948516815293909216602084015290820152606001610209565b6102256104dd3660046128d1565b611a26565b600a54610276565b6104fd6104f83660046130fd565b611ae2565b604080516001600160a01b03938416815292909116602083015201610209565b600554610276565b61022561053336600461290a565b611cba565b600c546102f4906001600160a01b031681565b6104fd610559366004613160565b611d55565b60408051808201909152600080825260208201526000828152600760209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff16151590820152600b5483118015906105ba57508215155b6105df5760405162461bcd60e51b81526004016105d6906131d4565b60405180910390fd5b92915050565b6000546001600160a01b0316331461060f5760405162461bcd60e51b81526004016105d69061321d565b6000908152600760205260409020805460ff60a01b19169055565b6002600154141561064d5760405162461bcd60e51b81526004016105d690613252565b60026001558051603210156106a45760405162461bcd60e51b815260206004820152601e60248201527f455243373231466163746f72793a20546f6f204d616e79204f7264657273000060448201526064016105d6565b60005b81518110156109035760008282815181106106c4576106c4613289565b60200260200101516040015160400151118015610715575060006001600160a01b03168282815181106106f9576106f9613289565b602002602001015160400151602001516001600160a01b031614155b8015610755575060006001600160a01b031682828151811061073957610739613289565b602002602001015160400151600001516001600160a01b031614155b15610839576107bc333084848151811061077157610771613289565b6020026020010151604001516040015185858151811061079357610793613289565b602002602001015160400151602001516001600160a01b0316611feb909392919063ffffffff16565b6108398282815181106107d1576107d1613289565b6020026020010151600001518383815181106107ef576107ef613289565b6020026020010151604001516040015184848151811061081157610811613289565b602002602001015160400151602001516001600160a01b031661205c9092919063ffffffff16565b81818151811061084b5761084b613289565b6020026020010151600001516001600160a01b031663361fef4983838151811061087757610877613289565b60200260200101516020015184848151811061089557610895613289565b6020026020010151604001516040518363ffffffff1660e01b81526004016108be92919061336b565b600060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b5050505080806108fb9061339a565b9150506106a7565b505060018055565b3360008181526008602052604081205490916001600160a01b03909116146109945760405162461bcd60e51b815260206004820152603660248201527f455243373231466163746f72793a204f4e4c592045524337323120494e5354416044820152754e43452046524f4d20455243373231464143544f525960501b60648201526084016105d6565b6109a286868686863361210e565b9695505050505050565b6000546001600160a01b031633146109d65760405162461bcd60e51b81526004016105d69061321d565b6109e060006123f3565b565b60026001541415610a055760405162461bcd60e51b81526004016105d690613252565b6002600155805160321015610a5c5760405162461bcd60e51b815260206004820152601e60248201527f455243373231466163746f72793a20546f6f204d616e79204f7264657273000060448201526064016105d6565b60005b8151811015610903576000806000848481518110610a7f57610a7f613289565b6020026020010151600001516001600160a01b031663397b37436040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906133b5565b925092509250600081118015610b0a57506001600160a01b03821615155b8015610b1e57506001600160a01b03831615155b15610b6a57610b386001600160a01b038316333084611feb565b610b6a858581518110610b4d57610b4d613289565b6020908102919091010151516001600160a01b038416908361205c565b6000858581518110610b7e57610b7e613289565b60200260200101516060015160400151118015610bcf575060006001600160a01b0316858581518110610bb357610bb3613289565b602002602001015160600151602001516001600160a01b031614155b8015610c0f575060006001600160a01b0316858581518110610bf357610bf3613289565b602002602001015160600151600001516001600160a01b031614155b15610cf357610c763330878781518110610c2b57610c2b613289565b60200260200101516060015160400151888881518110610c4d57610c4d613289565b602002602001015160600151602001516001600160a01b0316611feb909392919063ffffffff16565b610cf3858581518110610c8b57610c8b613289565b602002602001015160000151868681518110610ca957610ca9613289565b60200260200101516060015160400151878781518110610ccb57610ccb613289565b602002602001015160600151602001516001600160a01b031661205c9092919063ffffffff16565b610d383330670de0b6b3a7640000888881518110610d1357610d13613289565b6020026020010151600001516001600160a01b0316611feb909392919063ffffffff16565b848481518110610d4a57610d4a613289565b6020026020010151600001516001600160a01b031663363bdb46868681518110610d7657610d76613289565b602002602001015160200151878781518110610d9457610d94613289565b602002602001015160400151888881518110610db257610db2613289565b6020026020010151606001516040518463ffffffff1660e01b8152600401610ddc939291906133f8565b600060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b505050505050508080610e1c9061339a565b915050610a5f565b600080546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b038216610ec25760405162461bcd60e51b815260206004820152603460248201527f4552433230466163746f72793a204552433732312074656d706c617465206164604482015273191c995cdcca0c0a481393d50810531313d5d15160621b60648201526084016105d6565b813b610f105760405162461bcd60e51b815260206004820152601a60248201527f4552433230466163746f72793a204e4f5420434f4e545241435400000000000060448201526064016105d6565b6001600b6000828254610f23919061341f565b90915550506040805180820182526001600160a01b0380851680835260016020808501918252600b8054600090815260079092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fdcd16da87b60cea6dbd55a83f73b8a4bf9a54655db58ae0f35b82a2373fc150d91a35050600b545b919050565b6000546001600160a01b03163314610fe15760405162461bcd60e51b81526004016105d69061321d565b6005548111158015610ff257508015155b61100e5760405162461bcd60e51b81526004016105d690613437565b6000908152600660205260409020805460ff60a01b19169055565b6000600554841115801561103c57508315155b6110585760405162461bcd60e51b81526004016105d690613437565b6000848152600660209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff1615159082018190526110f45760405162461bcd60e51b815260206004820152602e60248201527f4552433732314454466163746f72793a20455243373231546f6b656e2054656d60448201526d1c1b185d1948191a5cd8589b195960921b60648201526084016105d6565b80516110ff90612443565b91506001600160a01b03821661117f576040805162461bcd60e51b81526020600482015260248101919091527f4552433732314454466163746f72793a204661696c656420746f20706572666f60448201527f726d206d696e696d616c206465706c6f79206f662061206e657720746f6b656e60648201526084016105d6565b6001600160a01b0382166000818152600860205260409081902080546001600160a01b03191683179055516370c166d760e01b81528391906370c166d7906111d59033908c908c9030908c908c90600401613483565b6020604051808303816000875af11580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121891906134f7565b6112815760405162461bcd60e51b815260206004820152603460248201527f4552433732314454466163746f72793a20556e61626c6520746f20696e697469604482015273616c697a6520746f6b656e20696e7374616e636560601b60648201526084016105d6565b81600001516001600160a01b0316836001600160a01b03167f46f5e3cee761854fc3892024ae7aa2c832007dff583603ce093f177ebd9c4c968a338b896040516112ce9493929190613514565b60405180910390a36001600360008282546112e9919061341f565b909155509298975050505050505050565b600080546001600160a01b031633146113255760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b0382166113a15760405162461bcd60e51b815260206004820152603760248201527f4552433732314454466163746f72793a204552433732312074656d706c61746560448201527f2061646472657373283029204e4f5420414c4c4f57454400000000000000000060648201526084016105d6565b813b6113ef5760405162461bcd60e51b815260206004820152601b60248201527f455243373231466163746f72793a204e4f5420434f4e5452414354000000000060448201526064016105d6565b600160056000828254611402919061341f565b90915550506040805180820182526001600160a01b038085168083526001602080850191825260058054600090815260069092528682208651815494511515600160a01b026001600160a81b03199095169616959095179290921790935554935192939290917fc0167b92c8eb4a2bad2c05e0134f076fba5d3cd54671a3e8edf13d2e61443bd991a35050600554919050565b6000546001600160a01b031633146114bf5760405162461bcd60e51b81526004016105d69061321d565b60055481111580156114d057508015155b6114ec5760405162461bcd60e51b81526004016105d690613437565b6000908152600660205260409020805460ff60a01b1916600160a01b179055565b6000806000600260015414156115355760405162461bcd60e51b81526004016105d690613252565b60026001556115a83330611549878061355c565b600481811061155a5761155a613289565b90506020020135878060400190611571919061355c565b600181811061158257611582613289565b9050602002016020810190611597919061290a565b6001600160a01b0316929190611feb565b6116786115b587806135ac565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f79250505060208901896135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408901353061163e60608c018c6135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061102992505050565b92506001600160a01b03831663e38d7cad8635611698602089018961355c565b6116a560408b018b61355c565b6116b260608d018d61355c565b6116bf60808f018f61355c565b6040518a63ffffffff1660e01b81526004016116e39998979695949392919061373c565b6020604051808303816000875af1158015611702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172691906137ed565b600c549092506117a1906001600160a01b0316611743868061355c565b600481811061175457611754613289565b9050602002013586806040019061176b919061355c565b600181811061177c5761177c613289565b9050602002016020810190611791919061290a565b6001600160a01b0316919061205c565b6001600160a01b038216635bfe4da06117ba868061355c565b6117c7602089018961355c565b6117d460408b018b61355c565b6040518763ffffffff1660e01b81526004016117f59695949392919061380a565b6020604051808303816000875af1158015611814573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183891906137ed565b6040516301fc3d9160e71b81523060048201529091506001600160a01b0384169063fe1ec88090602401600060405180830381600087803b15801561187c57600080fd5b505af1158015611890573d6000803e3d6000fd5b5050600180555092969195509350915050565b6000806000600260015414156118cb5760405162461bcd60e51b81526004016105d690613252565b60026001556118dd6115b587806135ac565b92506001600160a01b03831663e38d7cad86356118fd602089018961355c565b61190a60408b018b61355c565b61191760608d018d61355c565b61192460808f018f61355c565b6040518a63ffffffff1660e01b81526004016119489998979695949392919061373c565b6020604051808303816000875af1158015611967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198b91906137ed565b91506001600160a01b038216638b96412b6119a9602087018761290a565b6119b6602088018861355c565b6119c360408a018a61355c565b6040518663ffffffff1660e01b81526004016119e3959493929190613853565b6020604051808303816000875af1158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118389190613897565b6000546001600160a01b03163314611a505760405162461bcd60e51b81526004016105d69061321d565b600b548111158015611a6157508015155b611ac15760405162461bcd60e51b815260206004820152602b60248201527f45524332304454466163746f72793a2054656d706c61746520696e646578206460448201526a1bd95cdb9d08195e1a5cdd60aa1b60648201526084016105d6565b6000908152600760205260409020805460ff60a01b1916600160a01b179055565b60008060026001541415611b085760405162461bcd60e51b81526004016105d690613252565b6002600155611ba3611b1a85806135ac565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5c9250505060208701876135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408701353061163e60608a018a6135ac565b91506001600160a01b03821663e38d7cad8435611bc3602087018761355c565b611bd0604089018961355c565b611bdd60608b018b61355c565b611bea60808d018d61355c565b6040518a63ffffffff1660e01b8152600401611c0e9998979695949392919061373c565b6020604051808303816000875af1158015611c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5191906137ed565b6040516301fc3d9160e71b81523060048201529091506001600160a01b0383169063fe1ec88090602401600060405180830381600087803b158015611c9557600080fd5b505af1158015611ca9573d6000803e3d6000fd5b505060018055509194909350915050565b6000546001600160a01b03163314611ce45760405162461bcd60e51b81526004016105d69061321d565b6001600160a01b038116611d495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d6565b611d52816123f3565b50565b60008060026001541415611d7b5760405162461bcd60e51b81526004016105d690613252565b6002600155611e16611d8d86806135ac565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dcf9250505060208801886135ac565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408801353061163e60608b018b6135ac565b91506001600160a01b03821663e38d7cad8535611e36602088018861355c565b611e4360408a018a61355c565b611e5060608c018c61355c565b611e5d60808e018e61355c565b6040518a63ffffffff1660e01b8152600401611e819998979695949392919061373c565b6020604051808303816000875af1158015611ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec491906137ed565b90506001600160a01b03811663191c918a611ee2602086018661290a565b60208601356040870135611efc6080890160608a016138b0565b611f0c60a08a0160808b0161290a565b60405160e087901b6001600160e01b03191681526001600160a01b0395861660048201526024810194909452604484019290925215156064830152909116608482015260a401600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b50506040516301fc3d9160e71b81523060048201526001600160a01b038516925063fe1ec8809150602401600060405180830381600087803b158015611fc557600080fd5b505af1158015611fd9573d6000803e3d6000fd5b50506001805550919590945092505050565b6040516001600160a01b03808516602483015283166044820152606481018290526120569085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526124d3565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156120ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d19190613897565b6120db919061341f565b6040516001600160a01b03851660248201526044810182905290915061205690859063095ea7b360e01b9060640161201f565b60008360008151811061212357612123613289565b6020026020010151600014156121895760405162461bcd60e51b815260206004820152602560248201527f4552433230466163746f72793a207a65726f20636170206973206e6f7420616c6044820152641b1bddd95960da1b60648201526084016105d6565b600b54871115801561219a57508615155b6121b65760405162461bcd60e51b81526004016105d6906131d4565b6000878152600760209081526040918290208251808401909352546001600160a01b0381168352600160a01b900460ff16151590820181905261224f5760405162461bcd60e51b815260206004820152602b60248201527f4552433230466163746f72793a20455243373231546f6b656e2054656d706c6160448201526a1d1948191a5cd8589b195960aa1b60648201526084016105d6565b805161225a90612443565b6001600160a01b0381166000818152600960205260409020805460ff191660011790559092506122f25760405162461bcd60e51b815260206004820152603e60248201527f455243373231466163746f72793a204661696c656420746f20706572666f726d60448201527f206d696e696d616c206465706c6f79206f662061206e657720746f6b656e000060648201526084016105d6565b80600001516001600160a01b0316826001600160a01b03167f567699dbf7c5f63a51a42fd451f5e065bca0dfc723adf2cc498bbb7cfb780b908960008151811061233e5761233e613289565b60200260200101518a60018151811061235957612359613289565b60200260200101518960008151811061237457612374613289565b60200260200101518860405161238d94939291906138cd565b60405180910390a36001600a60008282546123a8919061341f565b90915550506040805160a081018252888152602081018890529081018690526001600160a01b0384166080820152606081018590526123e783826125aa565b50509695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b6000612528826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127579092919063ffffffff16565b8051909150156125a5578080602001905181019061254691906134f7565b6125a55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d6565b505050565b60408051600380825260808201909252839160009190602082016060803683370190505090508260800151816000815181106125e8576125e8613289565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061261957612619613289565b6001600160a01b039283166020918202929092010152600c5482519116908290600290811061264a5761264a613289565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663b3998be08460000151856020015184876040015188606001516040518663ffffffff1660e01b81526004016126ae9594939291906139c5565b6020604051808303816000875af11580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f191906134f7565b6120565760405162461bcd60e51b815260206004820152603160248201527f4552433230466163746f72793a20556e61626c6520746f20696e697469616c696044820152707a6520746f6b656e20696e7374616e636560781b60648201526084016105d6565b60606127668484600085612770565b90505b9392505050565b6060824710156127d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d6565b843b61281f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d6565b600080866001600160a01b0316858760405161283b9190613a6e565b60006040518083038185875af1925050503d8060008114612878576040519150601f19603f3d011682016040523d82523d6000602084013e61287d565b606091505b509150915061288d828286612898565b979650505050505050565b606083156128a7575081612769565b8251156128b75782518084602001fd5b8160405162461bcd60e51b81526004016105d69190613a8a565b6000602082840312156128e357600080fd5b5035919050565b6001600160a01b0381168114611d5257600080fd5b8035610fb2816128ea565b60006020828403121561291c57600080fd5b8135612769816128ea565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171561296057612960612927565b60405290565b604051606081016001600160401b038111828210171561296057612960612927565b604051608081016001600160401b038111828210171561296057612960612927565b604051601f8201601f191681016001600160401b03811182821017156129d2576129d2612927565b604052919050565b60006001600160401b038211156129f3576129f3612927565b5060051b60200190565b803560ff81168114610fb257600080fd5b600082601f830112612a1f57600080fd5b81356001600160401b03811115612a3857612a38612927565b612a4b601f8201601f19166020016129aa565b818152846020838601011115612a6057600080fd5b816020850160208301376000918101602001919091529392505050565b60006101008284031215612a9057600080fd5b612a9861293d565b9050612aa3826128ff565b8152612ab1602083016128ff565b602082015260408201356040820152612acc606083016129fd565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e08201356001600160401b03811115612b0857600080fd5b612b1484828501612a0e565b60e08301525092915050565b60006020808385031215612b3357600080fd5b82356001600160401b0380821115612b4a57600080fd5b818501915085601f830112612b5e57600080fd5b8135612b71612b6c826129da565b6129aa565b81815260059190911b83018401908481019088831115612b9057600080fd5b8585015b83811015612c1957803585811115612bac5760008081fd5b86016060818c03601f1901811315612bc45760008081fd5b612bcc612966565b89830135612bd9816128ea565b81526040838101358b830152918301359188831115612bf85760008081fd5b612c068e8c85870101612a7d565b9082015285525050918601918601612b94565b5098975050505050505050565b600082601f830112612c3757600080fd5b81356020612c47612b6c836129da565b82815260059290921b84018101918181019086841115612c6657600080fd5b8286015b84811015612c8a578035612c7d816128ea565b8352918301918301612c6a565b509695505050505050565b600082601f830112612ca657600080fd5b81356020612cb6612b6c836129da565b82815260059290921b84018101918181019086841115612cd557600080fd5b8286015b84811015612c8a5780358352918301918301612cd9565b600082601f830112612d0157600080fd5b81356020612d11612b6c836129da565b82815260059290921b84018101918181019086841115612d3057600080fd5b8286015b84811015612c8a5780356001600160401b03811115612d535760008081fd5b612d618986838b0101612a0e565b845250918301918301612d34565b600080600080600060a08688031215612d8757600080fd5b853594506020808701356001600160401b0380821115612da657600080fd5b818901915089601f830112612dba57600080fd5b8135612dc8612b6c826129da565b81815260059190911b8301840190848101908c831115612de757600080fd5b8585015b83811015612e1f57803585811115612e035760008081fd5b612e118f89838a0101612a0e565b845250918601918601612deb565b50985050506040890135925080831115612e3857600080fd5b612e448a848b01612c26565b95506060890135925080831115612e5a57600080fd5b612e668a848b01612c95565b94506080890135925080831115612e7c57600080fd5b5050612e8a88828901612cf0565b9150509295509295909350565b60006020808385031215612eaa57600080fd5b82356001600160401b0380821115612ec157600080fd5b818501915085601f830112612ed557600080fd5b8135612ee3612b6c826129da565b81815260059190911b83018401908481019088831115612f0257600080fd5b8585015b83811015612c1957803585811115612f1e5760008081fd5b86016080818c03601f1901811315612f365760008081fd5b612f3e612988565b89830135612f4b816128ea565b8152604083810135612f5c816128ea565b828c015260608481013582840152928401359289841115612f7f57600091508182fd5b612f8d8f8d86880101612a7d565b908301525085525050918601918601612f06565b600080600080600060a08688031215612fb957600080fd5b85356001600160401b0380821115612fd057600080fd5b612fdc89838a01612a0e565b96506020880135915080821115612ff257600080fd5b612ffe89838a01612a0e565b95506040880135945060608801359150613017826128ea565b9092506080870135908082111561302d57600080fd5b50612e8a88828901612a0e565b60006080828403121561304c57600080fd5b50919050565b600060a0828403121561304c57600080fd5b60006060828403121561304c57600080fd5b60008060006060848603121561308b57600080fd5b83356001600160401b03808211156130a257600080fd5b6130ae8783880161303a565b945060208601359150808211156130c457600080fd5b6130d087838801613052565b935060408601359150808211156130e657600080fd5b506130f386828701613064565b9150509250925092565b6000806040838503121561311057600080fd5b82356001600160401b038082111561312757600080fd5b6131338683870161303a565b9350602085013591508082111561314957600080fd5b5061315685828601613052565b9150509250929050565b600080600060e0848603121561317557600080fd5b83356001600160401b038082111561318c57600080fd5b6131988783880161303a565b945060208601359150808211156131ae57600080fd5b506131bb86828701613052565b9250506131cb8560408601613052565b90509250925092565b60208082526029908201527f4552433230466163746f72793a2054656d706c61746520696e64657820646f656040820152681cdb9d08195e1a5cdd60ba1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60005b838110156132ba5781810151838201526020016132a2565b838111156120565750506000910152565b600081518084526132e381602086016020860161329f565b601f01601f19169290920160200192915050565b600061010060018060a01b03808451168552806020850151166020860152506040830151604085015260ff60608401511660608501526080830151608085015260a083015160a085015260c083015160c085015260e08301518160e0860152613362828601826132cb565b95945050505050565b82815260406020820152600061276660408301846132f7565b634e487b7160e01b600052601160045260246000fd5b60006000198214156133ae576133ae613384565b5060010190565b6000806000606084860312156133ca57600080fd5b83516133d5816128ea565b60208501519093506133e6816128ea565b80925050604084015190509250925092565b60018060a01b038416815282602082015260606040820152600061336260608301846132f7565b6000821982111561343257613432613384565b500190565b6020808252602c908201527f4552433732314454466163746f72793a2054656d706c61746520696e6465782060408201526b191bd95cdb9d08195e1a5cdd60a21b606082015260800190565b600060018060a01b03808916835260c060208401526134a560c08401896132cb565b83810360408501526134b781896132cb565b90508187166060850152818616608085015283810360a08501526134db81866132cb565b9a9950505050505050505050565b8015158114611d5257600080fd5b60006020828403121561350957600080fd5b8151612769816134e9565b60808152600061352760808301876132cb565b6001600160a01b0386166020840152828103604084015261354881866132cb565b9050828103606084015261288d81856132cb565b6000808335601e1984360301811261357357600080fd5b8301803591506001600160401b0382111561358d57600080fd5b6020019150600581901b36038213156135a557600080fd5b9250929050565b6000808335601e198436030181126135c357600080fd5b8301803591506001600160401b038211156135dd57600080fd5b6020019150368190038213156135a557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e1984360301811261363257600080fd5b83016020810192503590506001600160401b0381111561365157600080fd5b8036038313156135a557600080fd5b8183526000602080850194508260005b8581101561369e578135613683816128ea565b6001600160a01b031687529582019590820190600101613670565b509495945050505050565b81835260006001600160fb1b038311156136c257600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b8781101561372f578284038952613710828861361b565b61371b8682846135f2565b9a87019a95505050908401906001016136f9565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c81101561379d5785840360bf1901835261377b828f61361b565b6137868682846135f2565b955050506020928301929190910190600101613760565b50505082810360408401526137b381898b613660565b905082810360608401526137c88187896136a9565b905082810360808401526137dd8185876136df565b9c9b505050505050505050505050565b6000602082840312156137ff57600080fd5b8151612769816128ea565b60608152600061381e60608301888a6136a9565b82810360208401526138318187896136a9565b90508281036040840152613846818587613660565b9998505050505050505050565b6001600160a01b03861681526060602082018190526000906138789083018688613660565b828103604084015261388b8185876136a9565b98975050505050505050565b6000602082840312156138a957600080fd5b5051919050565b6000602082840312156138c257600080fd5b8135612769816134e9565b6080815260006138e060808301876132cb565b82810360208401526138f281876132cb565b604084019590955250506001600160a01b039190911660609091015292915050565b600081518084526020808501945080840160005b8381101561369e5781516001600160a01b031687529582019590820190600101613928565b600081518084526020808501945080840160005b8381101561369e57815187529582019590820190600101613961565b600081518084526020808501808196508360051b8101915082860160005b8581101561372f5782840389526139b38483516132cb565b9885019893509084019060010161399b565b600060a0820160a0835280885180835260c08501915060c08160051b86010192506020808b0160005b83811015613a1c5760bf19888703018552613a0a8683516132cb565b955093820193908201906001016139ee565b505085840381870152505050613a328188613914565b90508281036040840152613a468187613914565b90508281036060840152613a5a818661394d565b9050828103608084015261388b818561397d565b60008251613a8081846020870161329f565b9190910192915050565b60208152600061276960208301846132cb56fea2646970667358221220e5230d911a5f424516f8a305573b55003357dca8e5841e5fe2956a268271ed2164736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/ERC721Template.json b/abis/ERC721Template.json deleted file mode 100644 index 7872265..0000000 --- a/abis/ERC721Template.json +++ /dev/null @@ -1,1616 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721Template", - "sourceName": "contracts/templates/ERC721Template.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedTo725StoreList", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedToCreateERC20List", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "AddedToMetadataList", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "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": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "CleanedPermissions", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "key", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "value", - "type": "bytes" - } - ], - "name": "DataChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_operation", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "Executed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "createdBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "state", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "string", - "name": "decryptorUrl", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "flags", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "metaDataHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "MetadataCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "updatedBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "state", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "MetadataState", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "updatedBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "state", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "string", - "name": "decryptorUrl", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "flags", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "metaDataHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "MetadataUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "validator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "metaDataHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "MetadataValidated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedFrom725StoreList", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedFromCreateERC20List", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedFromMetadataList", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "RemovedManager", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newTokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "templateAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "cap", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "creator", - "type": "address" - } - ], - "name": "TokenCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "updatedBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "tokenURI", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "TokenURIUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_managerAddress", - "type": "address" - } - ], - "name": "addManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "addTo725StoreList", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "addToCreateERC20List", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "addToMetadataList", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "auth", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "cleanPermissions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_templateIndex", - "type": "uint256" - }, - { - "internalType": "string[]", - "name": "strings", - "type": "string[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "bytess", - "type": "bytes[]" - } - ], - "name": "createERC20", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_operation", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "executeCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - } - ], - "name": "getData", - "outputs": [ - { - "internalType": "bytes", - "name": "_value", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getMetaData", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "internalType": "uint8", - "name": "", - "type": "uint8" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getPermissions", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "manager", - "type": "bool" - }, - { - "internalType": "bool", - "name": "deployERC20", - "type": "bool" - }, - { - "internalType": "bool", - "name": "updateMetadata", - "type": "bool" - }, - { - "internalType": "bool", - "name": "store", - "type": "bool" - } - ], - "internalType": "struct ERC721RolesAddress.Roles", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTokensList", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hasMetaData", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "address", - "name": "tokenFactory", - "type": "address" - }, - { - "internalType": "address", - "name": "additionalERC20Deployer", - "type": "address" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - } - ], - "name": "isDeployed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isERC20Deployer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isInitialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "metaDataDecryptorAddress", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "metaDataDecryptorUrl", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "metaDataState", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "removeFrom725StoreList", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "removeFromCreateERC20List", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allowedAddress", - "type": "address" - } - ], - "name": "removeFromMetadataList", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_managerAddress", - "type": "address" - } - ], - "name": "removeManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "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": "string", - "name": "_baseURI", - "type": "string" - } - ], - "name": "setBaseURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_value", - "type": "bytes" - } - ], - "name": "setDataERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_metaDataState", - "type": "uint8" - }, - { - "internalType": "string", - "name": "_metaDataDecryptorUrl", - "type": "string" - }, - { - "internalType": "string", - "name": "_metaDataDecryptorAddress", - "type": "string" - }, - { - "internalType": "bytes", - "name": "flags", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_metaDataHash", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "validatorAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct ERC721Template.metaDataProof[]", - "name": "_metadataProofs", - "type": "tuple[]" - } - ], - "name": "setMetaData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "metaDataState", - "type": "uint8" - }, - { - "internalType": "string", - "name": "metaDataDecryptorUrl", - "type": "string" - }, - { - "internalType": "string", - "name": "metaDataDecryptorAddress", - "type": "string" - }, - { - "internalType": "bytes", - "name": "flags", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "metaDataHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - }, - { - "components": [ - { - "internalType": "address", - "name": "validatorAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct ERC721Template.metaDataProof[]", - "name": "metadataProofs", - "type": "tuple[]" - } - ], - "internalType": "struct ERC721Template.metaDataAndTokenURI", - "name": "_metaDataAndTokenURI", - "type": "tuple" - } - ], - "name": "setMetaDataAndTokenURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_metaDataState", - "type": "uint8" - } - ], - "name": "setMetaDataState", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_value", - "type": "bytes" - } - ], - "name": "setNewData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "setTokenURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "ssContract", - "outputs": [ - { - "internalType": "address", - "name": "", - "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": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdrawETH", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600881526754656d706c61746560c01b60208083019182528351808501909452600e84526d15195b5c1b185d1954de5b589bdb60921b908401528151919291620000689160009162000136565b5080516200007e90600190602084019062000136565b50620000959150632260147f60e11b9050620000b2565b620000a7632bd57b7360e01b620000b2565b6001600c5562000219565b6001600160e01b03198082161415620001115760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015260640160405180910390fd5b6001600160e01b0319166000908152600a60205260409020805460ff19166001179055565b8280546200014490620001dc565b90600052602060002090601f016020900481019282620001685760008555620001b3565b82601f106200018357805160ff1916838001178555620001b3565b82800160010185558215620001b3579182015b82811115620001b357825182559160200191906001019062000196565b50620001c1929150620001c5565b5090565b5b80821115620001c15760008155600101620001c6565b600181811c90821680620001f157607f821691505b602082108114156200021357634e487b7160e01b600052602260045260246000fd5b50919050565b61463980620002296000396000f3fe6080604052600436106102685760003560e01c806354f6127f11610143578063a22cb465116100bb578063d2786ba411610077578063d2786ba414610858578063d8053ad31461087d578063e086e5ec1461089c578063e38d7cad146108a4578063e985e9c5146108c4578063fe1ec8801461090d57005b8063a22cb465146107ab578063ac18de43146107cb578063b0c41ead146107eb578063c55f81261461080b578063c87b56dd1461081e578063ccd7d4761461083e57005b806370a082311161010a57806370a08231146106bc57806370c166d7146106ea57806382cf129d1461070a57806390184b021461071f57806395d89b411461075857806396fb3eaf1461076d57005b806354f6127f1461061a57806355f804b31461063a5780635d1ca6311461065a5780636352211e1461067c57806367530a611461069c57005b80631aa3adf9116101e1578063431053ac1161019d578063431053ac14610563578063466bca0214610583578063467c97f5146105a55780634a63740a146105c55780634b2ee5e9146105e55780634f189cb21461060557005b80631aa3adf9146104ab57806323b872dd146104cb578063273e06b3146104eb5780632d06177a1461050b578063392e53cd1461052b57806342842e0e1461054357005b80630e57c7e8116102305780630e57c7e81461032e57806310c558bf1461034e578063160a79251461036e578063162094c41461044b57806319a18a851461046b57806319c186e51461048b57005b806301ffc9a71461026a57806306fdde031461029f578063081812fc146102c1578063095ea7b3146102f95780630e05662e14610319575b005b34801561027657600080fd5b5061028a6102853660046136c0565b61092d565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102b461096d565b604051610296919061373c565b3480156102cd57600080fd5b506102e16102dc36600461374f565b6109ff565b6040516001600160a01b039091168152602001610296565b34801561030557600080fd5b5061026861031436600461377d565b610a99565b34801561032557600080fd5b506102b4610baf565b34801561033a57600080fd5b506102686103493660046137f1565b610c3d565b34801561035a57600080fd5b5061026861036936600461383c565b610cb2565b34801561037a57600080fd5b5061041061038936600461383c565b604080516080810182526000808252602082018190529181018290526060810191909152506001600160a01b03166000908152600860209081526040918290208251608081018452905460ff808216151583526101008204811615159383019390935262010000810483161515938201939093526301000000909204161515606082015290565b604051610296919081511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b34801561045757600080fd5b5061026861046636600461390e565b610d85565b34801561047757600080fd5b50610268610486366004613954565b610e13565b34801561049757600080fd5b506102686104a636600461383c565b610f47565b3480156104b757600080fd5b506102686104c6366004613aa0565b611010565b3480156104d757600080fd5b506102686104e6366004613ba7565b611065565b3480156104f757600080fd5b5061026861050636600461383c565b611137565b34801561051757600080fd5b5061026861052636600461383c565b61126d565b34801561053757600080fd5b50600f5460ff1661028a565b34801561054f57600080fd5b5061026861055e366004613ba7565b6112b0565b34801561056f57600080fd5b5061026861057e36600461383c565b611356565b34801561058f57600080fd5b5061059861148b565b6040516102969190613be8565b3480156105b157600080fd5b506102686105c0366004613c35565b6114ec565b3480156105d157600080fd5b506102686105e036600461383c565b611577565b3480156105f157600080fd5b506014546102e1906001600160a01b031681565b34801561061157600080fd5b5061026861163c565b34801561062657600080fd5b506102b461063536600461374f565b611680565b34801561064657600080fd5b50610268610655366004613c50565b611722565b34801561066657600080fd5b5060015b60405160ff9091168152602001610296565b34801561068857600080fd5b506102e161069736600461374f565b611773565b3480156106a857600080fd5b506102686106b73660046137f1565b6117ea565b3480156106c857600080fd5b506106dc6106d736600461383c565b61185a565b604051908152602001610296565b3480156106f657600080fd5b5061028a610705366004613c84565b6118e1565b34801561071657600080fd5b506102b46119fe565b34801561072b57600080fd5b5061028a61073a36600461383c565b6001600160a01b031660009081526015602052604090205460ff1690565b34801561076457600080fd5b506102b4611a0b565b34801561077957600080fd5b5061028a61078836600461383c565b6001600160a01b0316600090815260086020526040902054610100900460ff1690565b3480156107b757600080fd5b506102686107c6366004613d52565b611a1a565b3480156107d757600080fd5b506102686107e636600461383c565b611ad8565b3480156107f757600080fd5b506102e161080636600461374f565b611b1b565b610268610819366004613d90565b611b45565b34801561082a57600080fd5b506102b461083936600461374f565b611b8d565b34801561084a57600080fd5b5060125461066a9060ff1681565b34801561086457600080fd5b5061086d611ceb565b6040516102969493929190613df9565b34801561088957600080fd5b50600f5461028a90610100900460ff1681565b610268611e3b565b3480156108b057600080fd5b506102e16108bf366004613e7e565b611e7d565b3480156108d057600080fd5b5061028a6108df366004613f4d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561091957600080fd5b5061026861092836600461383c565b61204d565b60006301ffc9a760e01b6001600160e01b03198316148061096757506001600160e01b031982166000908152600a602052604090205460ff165b92915050565b6060600d805461097c90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a890613f7b565b80156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b0316610a7d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610aa482611773565b9050806001600160a01b0316836001600160a01b03161415610b125760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a74565b336001600160a01b0382161480610b2e5750610b2e81336108df565b610ba05760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a74565b610baa838361217d565b505050565b60118054610bbc90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890613f7b565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b3360009081526015602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152602260248201527f45524337323154656d706c6174653a204e4f5420455243323020436f6e74726160448201526118dd60f21b6064820152608401610a74565b610baa8383836121eb565b3360009081526008602052604090205460ff161515600114610ce65760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805462ff00001916620100001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917fc2a42571a74ce1442c8c44d375ba9442e7d55d94b37afeace261c83c62128fa490610d799042904390918252602082015260400190565b60405180910390a35050565b610d8e82611773565b6001600160a01b0316336001600160a01b031614610dbe5760405162461bcd60e51b8152600401610a7490613fed565b610dc88282612244565b336001600160a01b03167f6de6cd3982065cbd31e789e3109106f4d76d1c8a46e85262045cf947fb3fd4ed82844243604051610e079493929190614024565b60405180910390a25050565b3360009081526008602052604090205462010000900460ff16610e485760405162461bcd60e51b8152600401610a7490614053565b610ef5610e586020830183613c35565b610e656020840184614094565b610e726040860186614094565b610e7f6060880188614094565b610e8c60808a018a614094565b60a08b0135610e9f6101008d018d6140da565b808060200260200160405190810160405280939291908181526020016000905b82821015610eeb57610edc60808302860136819003810190614123565b81526020019060010190610ebf565b50505050506122de565b610f4460c0820135610f0a60e0840184614094565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d8592505050565b50565b3360009081526008602052604090205460ff161515600114610f7b5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805463ff000000191663010000001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917feb09276310ed110a7e565d64966d0ff68a47112d2dd5eeb6cbd7451836ce35ee90610d799042904390918252602082015260400190565b3360009081526008602052604090205462010000900460ff166110455760405162461bcd60e51b8152600401610a7490614053565b6110588b8b8b8b8b8b8b8b8b8b8b6122de565b5050505050505050505050565b806001146110855760405162461bcd60e51b8152600401610a749061413f565b6110ef6110ea60138054806020026020016040519081016040528092919081815260200182805480156110e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c3575b50505050505190565b6126e7565b6110f7612778565b611102838383612829565b61110b8261286a565b506001600160a01b03166000908152600860205260409020805463ffffff001916630101010017905550565b3360009081526008602052604090205460ff161515600114806111885750336001600160a01b0382161480156111885750336000908152600860205260409020546301000000900460ff1615156001145b156111f0576001600160a01b03811660008181526008602052604090819020805463ff000000191681559051909133917fc929b18b08ffea86a1f95e29384dbe8968f2fcbd70cfd735df3aba1cc548cbf390610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604660248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2037323553746f6064820152651c99531a5cdd60d21b608482015260a401610a74565b6112776001611773565b6001600160a01b0316336001600160a01b0316146112a75760405162461bcd60e51b8152600401610a7490613fed565b610f448161286a565b806001146112d05760405162461bcd60e51b8152600401610a749061413f565b6113336110ea60138054806020026020016040519081016040528092919081815260200182805480156110e1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116110c35750505050505190565b61133b612778565b611102838383604051806020016040528060008152506128fb565b3360009081526008602052604090205460ff161515600114806113a65750336001600160a01b0382161480156113a657503360009081526008602052604090205462010000900460ff1615156001145b1561140d576001600160a01b03811660008181526008602052604090819020805462ff0000191681559051909133917f9b41e1311fa819e825bc77fa2568492112e15ea92d173f3f8ee1c8ec3c1c562b90610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604760248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d206d65746164616064820152661d18481b1a5cdd60ca1b608482015260a401610a74565b606060138054806020026020016040519081016040528092919081815260200182805480156109f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114c5575050505050905090565b3360009081526008602052604090205462010000900460ff166115215760405162461bcd60e51b8152600401610a7490614053565b6012805460ff191660ff831690811790915560408051918252426020830152439082015233907fa8336411cc72db0e5bdc4dff989eeb35879bafaceffb59b54b37645c3395adb99060600160405180910390a250565b3360009081526008602052604090205460ff1615156001146115ab5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805461ff0019166101001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917f0572d56343be407a66810f01449212e8545e14ff5049c479d34be944cdfd0d4f90610d799042904390918252602082015260400190565b6116466001611773565b6001600160a01b0316336001600160a01b0316146116765760405162461bcd60e51b8152600401610a7490613fed565b61167e612778565b565b6000818152600b6020526040902080546060919061169d90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546116c990613f7b565b80156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b50505050509050919050565b61172c6001611773565b6001600160a01b0316336001600160a01b03161461175c5760405162461bcd60e51b8152600401610a7490613fed565b805161176f906002906020840190613583565b5050565b6000818152600360205260408120546001600160a01b0316806109675760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a74565b336000908152600860205260409020546301000000900460ff16610ca75760405162461bcd60e51b815260206004820152602160248201527f45524337323154656d706c6174653a204e4f542053544f5245205550444154456044820152602960f91b6064820152608401610a74565b60006001600160a01b0382166118c55760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a74565b506001600160a01b031660009081526004602052604090205490565b600f5460009060ff16156119525760405162461bcd60e51b815260206004820152603260248201527f45524337323154656d706c6174653a20746f6b656e20696e7374616e636520616044820152711b1c9958591e481a5b9a5d1a585b1a5e995960721b6064820152608401610a74565b60006119cc8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b90819084018382808284376000920191909152508b92508991506129339050565b90508080156119e357506001600160a01b03841615155b156119f1576119f1846115ab565b9998505050505050505050565b60108054610bbc90613f7b565b6060600e805461097c90613f7b565b6001600160a01b038216331415611a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a74565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610d79565b611ae26001611773565b6001600160a01b0316336001600160a01b031614611b125760405162461bcd60e51b8152600401610a7490613fed565b610f4481612a73565b60098181548110611b2b57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526008602052604090205460ff161515600114611b795760405162461bcd60e51b8152600401610a7490613fb6565b611b868585858585612ad3565b5050505050565b6000818152600360205260409020546060906001600160a01b0316611c0c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a74565b60008281526007602052604081208054611c2590613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5190613f7b565b8015611c9e5780601f10611c7357610100808354040283529160200191611c9e565b820191906000526020600020905b815481529060010190602001808311611c8157829003601f168201915b505050505090506000611caf612cfc565b825190915015611ce4578082604051602001611ccc92919061418b565b60405160208183030381529060405292505050919050565b5092915050565b60608060008060106011601260009054906101000a900460ff16600f60019054906101000a900460ff16838054611d2190613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4d90613f7b565b8015611d9a5780601f10611d6f57610100808354040283529160200191611d9a565b820191906000526020600020905b815481529060010190602001808311611d7d57829003601f168201915b50505050509350828054611dad90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd990613f7b565b8015611e265780601f10611dfb57610100808354040283529160200191611e26565b820191906000526020600020905b815481529060010190602001808311611e0957829003601f168201915b50505050509250935093509350935090919293565b611e456001611773565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610f44573d6000803e3d6000fd5b60006002600c541415611ed25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a74565b6002600c5533600090815260086020526040902054610100900460ff16611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524337323154656d706c6174653a204e4f542045524332304445504c4f5945604482015265525f524f4c4560d01b6064820152608401610a74565b601254604051630557fcfb60e41b815260009161010090046001600160a01b03169063557fcfb090611f90908e908e908e908e908e908e908e908e908e90600401614304565b6020604051808303816000875af1158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906143b5565b6001600160a01b0381166000818152601560205260408120805460ff191660019081179091556013805491820181559091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900180546001600160a01b03191690911790559150506001600c559998505050505050505050565b3360009081526008602052604090205460ff1615156001148061209d5750336001600160a01b03821614801561209d57503360009081526008602052604090205460ff6101009091041615156001145b15612103576001600160a01b03811660008181526008602052604090819020805461ff00191681559051909133917f59bd33f4c27cc16a2d74450e1fa43d7896020be9aecea4bee009db9294de899790610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604360248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2045524332304c6064820152621a5cdd60ea1b608482015260a401610a74565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906121b282611773565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000838152600b60205260409020612204908383613607565b50827fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b283836040516122379291906143d2565b60405180910390a2505050565b6000828152600360205260409020546001600160a01b03166122bf5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610a74565b60008281526007602090815260409091208251610baa92840190613583565b6012805460ff191660ff8d161790556122f960108b8b613607565b5061230660118989613607565b50600f54610100900460ff1661237d57336001600160a01b03167f5463569dcc320958360074a9ab27e809e8a6942c394fb151d139b5f7b4ecb1bd8c8c8c8a8a8a8a8a42436040516123619a999897969594939291906143e6565b60405180910390a2600f805461ff0019166101001790556123cf565b60125460405133917fe5c4cf86b1815151e6f453e1e133d4454ae3b0b07145db39f2e0178685deac84916123c69160ff16908e908e908c908c908c908c908c90429043906143e6565b60405180910390a25b6032815111156124135760405162461bcd60e51b815260206004820152600f60248201526e546f6f204d616e792050726f6f667360881b6044820152606401610a74565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260005b82518110156126d85760006001600160a01b03168382815181106124705761247061444e565b6020026020010151600001516001600160a01b0316146125f2576000828560405160200161249f929190614464565b60405160208183030381529060405280519060200120905060006001828685815181106124ce576124ce61444e565b6020026020010151602001518786815181106124ec576124ec61444e565b60200260200101516040015188878151811061250a5761250a61444e565b6020026020010151606001516040516000815260200160405260405161254c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561256e573d6000803e3d6000fd5b50505060206040510351905084838151811061258c5761258c61444e565b6020026020010151600001516001600160a01b0316816001600160a01b0316146125ef5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210383937b7b31039b4b3b732b960611b6044820152606401610a74565b50505b8281815181106126045761260461444e565b6020026020010151600001516001600160a01b03167f2819d8badf5cff2c9220b8ee99dacc14d67058e343d7f0c2c444d198507fe9418585848151811061264d5761264d61444e565b60200260200101516020015186858151811061266b5761266b61444e565b6020026020010151604001518786815181106126895761268961444e565b6020026020010151606001516040516126be949392919093845260ff9290921660208401526040830152606082015260800190565b60405180910390a2806126d08161449c565b91505061244a565b50505050505050505050505050565b60005b8181101561176f57601381815481106127055761270561444e565b6000918252602082200154604080516382c03da560e01b815290516001600160a01b03909216926382c03da59260048084019382900301818387803b15801561274d57600080fd5b505af1158015612761573d6000803e3d6000fd5b5050505080806127709061449c565b9150506126ea565b60005b6009548110156127e0576000600860006009848154811061279e5761279e61444e565b60009182526020808320909101546001600160a01b031683528201929092526040019020805463ffffffff1916905550806127d88161449c565b91505061277b565b506127ed6009600061367b565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6128333382612d0b565b61284f5760405162461bcd60e51b8152600401610a74906144b7565b610baa838383604051806020016040528060008152506128fb565b6001600160a01b038116600081815260086020526040808220805460ff1916600190811782556009805491820181559093526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917faf8fc8b6726138c96881c895390a08e9d91a94c288f06281e7f9821c49c7155b90610d799042904390918252602082015260400190565b6129053383612d0b565b6129215760405162461bcd60e51b8152600401610a74906144b7565b61292d84848484612e02565b50505050565b60006001600160a01b0386166129a25760405162461bcd60e51b815260206004820152602e60248201527f45524337323154656d706c6174653a3a20496e76616c6964206d696e7465722c60448201526d20207a65726f206164647265737360901b6064820152608401610a74565b84516129b590600d906020880190613583565b5083516129c990600e906020870190613583565b5060128054610100600160a81b0319166101006001600160a01b03861602179055604080516020810191829052600090819052612a0891600291613583565b50600f805461ffff19166001908117909155612a25908790612e35565b612a2e8661286a565b6001600160a01b0386166000908152600860205260409020805463ffffff0019166301010100178155612a62600184612244565b5050600f5460ff1695945050505050565b6001600160a01b03811660008181526008602052604090819020805460ff191681559051909133917fb572db0e6da4924b771ed1712b980d48b5992b9a1c27aede55fbb3318c48996a90610d799042904390918252602082015260400190565b82846001600160a01b0316867f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b88585604051612b109291906143d2565b60405180910390a460006109c45a612b289190614508565b905085612b7857612b72858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612e4f915050565b50612cf4565b6003861415612bc157612b728484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6792505050565b6002861415612cb5576000612c1884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c13925060209150879050614508565b612f03565b90506000612c6785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612c6291506020905088614508565b612f61565b90506000612c7687848461306e565b6040519091506001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a2505050612cf4565b60405162461bcd60e51b815260206004820152601460248201527357726f6e67206f7065726174696f6e207479706560601b6044820152606401610a74565b505050505050565b60606002805461097c90613f7b565b6000818152600360205260408120546001600160a01b0316612d845760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a74565b6000612d8f83611773565b9050806001600160a01b0316846001600160a01b03161480612dca5750836001600160a01b0316612dbf846109ff565b6001600160a01b0316145b80612dfa57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b612e0d848484613170565b612e1984848484613310565b61292d5760405162461bcd60e51b8152600401610a749061451f565b61176f82826040518060200160405280600081525061340e565b6000806000845160208601878987f195945050505050565b600081516020830184f090506001600160a01b038116612ec95760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74206465706c6f7920636f6e7472616374000000000000006044820152606401610a74565b6040516001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a292915050565b6000612f10826020614571565b83511015612f585760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610a74565b50016020015190565b606081612f6f81601f614571565b1015612fae5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610a74565b612fb88284614571565b84511015612ffc5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610a74565b60608215801561301b5760405191506000825260208201604052613065565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561305457805183526020928301920161303c565b5050858452601f01601f1916604052505b50949350505050565b600080844710156130c15760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610a74565b825161310f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610a74565b8383516020850187f590506001600160a01b038116612dfa5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610a74565b826001600160a01b031661318382611773565b6001600160a01b0316146131eb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a74565b6001600160a01b03821661324d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a74565b61325860008261217d565b6001600160a01b0383166000908152600460205260408120805460019290613281908490614508565b90915550506001600160a01b03821660009081526004602052604081208054600192906132af908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160a01b0384163b1561340357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613354903390899088908890600401614589565b6020604051808303816000875af192505050801561338f575060408051601f3d908101601f1916820190925261338c918101906145c6565b60015b6133e9573d8080156133bd576040519150601f19603f3d011682016040523d82523d6000602084013e6133c2565b606091505b5080516133e15760405162461bcd60e51b8152600401610a749061451f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612dfa565b506001949350505050565b6134188383613441565b6134256000848484613310565b610baa5760405162461bcd60e51b8152600401610a749061451f565b6001600160a01b0382166134975760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a74565b6000818152600360205260409020546001600160a01b0316156134fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a74565b6001600160a01b0382166000908152600460205260408120805460019290613525908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461358f90613f7b565b90600052602060002090601f0160209004810192826135b157600085556135f7565b82601f106135ca57805160ff19168380011785556135f7565b828001600101855582156135f7579182015b828111156135f75782518255916020019190600101906135dc565b50613603929150613695565b5090565b82805461361390613f7b565b90600052602060002090601f01602090048101928261363557600085556135f7565b82601f1061364e5782800160ff198235161785556135f7565b828001600101855582156135f7579182015b828111156135f7578235825591602001919060010190613660565b5080546000825590600052602060002090810190610f4491905b5b808211156136035760008155600101613696565b6001600160e01b031981168114610f4457600080fd5b6000602082840312156136d257600080fd5b81356136dd816136aa565b9392505050565b60005b838110156136ff5781810151838201526020016136e7565b8381111561292d5750506000910152565b600081518084526137288160208601602086016136e4565b601f01601f19169290920160200192915050565b6020815260006136dd6020830184613710565b60006020828403121561376157600080fd5b5035919050565b6001600160a01b0381168114610f4457600080fd5b6000806040838503121561379057600080fd5b823561379b81613768565b946020939093013593505050565b60008083601f8401126137bb57600080fd5b5081356001600160401b038111156137d257600080fd5b6020830191508360208285010111156137ea57600080fd5b9250929050565b60008060006040848603121561380657600080fd5b8335925060208401356001600160401b0381111561382357600080fd5b61382f868287016137a9565b9497909650939450505050565b60006020828403121561384e57600080fd5b81356136dd81613768565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561389757613897613859565b604052919050565b600082601f8301126138b057600080fd5b81356001600160401b038111156138c9576138c9613859565b6138dc601f8201601f191660200161386f565b8181528460208386010111156138f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561392157600080fd5b8235915060208301356001600160401b0381111561393e57600080fd5b61394a8582860161389f565b9150509250929050565b60006020828403121561396657600080fd5b81356001600160401b0381111561397c57600080fd5b820161012081850312156136dd57600080fd5b803560ff811681146139a057600080fd5b919050565b6000608082840312156139b757600080fd5b604051608081018181106001600160401b03821117156139d9576139d9613859565b60405290508082356139ea81613768565b81526139f86020840161398f565b602082015260408301356040820152606083013560608201525092915050565b600082601f830112613a2957600080fd5b813560206001600160401b03821115613a4457613a44613859565b613a52818360051b0161386f565b82815260079290921b84018101918181019086841115613a7157600080fd5b8286015b84811015613a9557613a8788826139a5565b835291830191608001613a75565b509695505050505050565b600080600080600080600080600080600060e08c8e031215613ac157600080fd5b613aca8c61398f565b9a506001600160401b038060208e01351115613ae557600080fd5b613af58e60208f01358f016137a9565b909b50995060408d0135811015613b0b57600080fd5b613b1b8e60408f01358f016137a9565b909950975060608d0135811015613b3157600080fd5b613b418e60608f01358f016137a9565b909750955060808d0135811015613b5757600080fd5b613b678e60808f01358f016137a9565b909550935060a08d0135925060c08d0135811015613b8457600080fd5b50613b958d60c08e01358e01613a18565b90509295989b509295989b9093969950565b600080600060608486031215613bbc57600080fd5b8335613bc781613768565b92506020840135613bd781613768565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b81811015613c295783516001600160a01b031683529284019291840191600101613c04565b50909695505050505050565b600060208284031215613c4757600080fd5b6136dd8261398f565b600060208284031215613c6257600080fd5b81356001600160401b03811115613c7857600080fd5b612dfa8482850161389f565b60008060008060008060008060c0898b031215613ca057600080fd5b8835613cab81613768565b975060208901356001600160401b0380821115613cc757600080fd5b613cd38c838d016137a9565b909950975060408b0135915080821115613cec57600080fd5b613cf88c838d016137a9565b909750955060608b01359150613d0d82613768565b90935060808a013590613d1f82613768565b90925060a08a01359080821115613d3557600080fd5b50613d428b828c0161389f565b9150509295985092959890939650565b60008060408385031215613d6557600080fd5b8235613d7081613768565b915060208301358015158114613d8557600080fd5b809150509250929050565b600080600080600060808688031215613da857600080fd5b853594506020860135613dba81613768565b93506040860135925060608601356001600160401b03811115613ddc57600080fd5b613de8888289016137a9565b969995985093965092949392505050565b608081526000613e0c6080830187613710565b8281036020840152613e1e8187613710565b60ff959095166040840152505090151560609091015292915050565b60008083601f840112613e4c57600080fd5b5081356001600160401b03811115613e6357600080fd5b6020830191508360208260051b85010111156137ea57600080fd5b600080600080600080600080600060a08a8c031215613e9c57600080fd5b8935985060208a01356001600160401b0380821115613eba57600080fd5b613ec68d838e01613e3a565b909a50985060408c0135915080821115613edf57600080fd5b613eeb8d838e01613e3a565b909850965060608c0135915080821115613f0457600080fd5b613f108d838e01613e3a565b909650945060808c0135915080821115613f2957600080fd5b50613f368c828d01613e3a565b915080935050809150509295985092959850929598565b60008060408385031215613f6057600080fd5b8235613f6b81613768565b91506020830135613d8581613768565b600181811c90821680613f8f57607f821691505b60208210811415613fb057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f455243373231526f6c6573416464726573733a204e4f54204d414e4147455200604082015260600190565b6020808252601c908201527f45524337323154656d706c6174653a206e6f74204e46544f776e657200000000604082015260600190565b6080815260006140376080830187613710565b6020830195909552506040810192909252606090910152919050565b60208082526021908201527f45524337323154656d706c6174653a204e4f54204d455441444154415f524f4c6040820152604560f81b606082015260800190565b6000808335601e198436030181126140ab57600080fd5b8301803591506001600160401b038211156140c557600080fd5b6020019150368190038213156137ea57600080fd5b6000808335601e198436030181126140f157600080fd5b8301803591506001600160401b0382111561410b57600080fd5b6020019150600781901b36038213156137ea57600080fd5b60006080828403121561413557600080fd5b6136dd83836139a5565b6020808252602c908201527f45524337323154656d706c6174653a2043616e6e6f74207472616e736665722060408201526b1d1a1a5cc81d1bdad95b925960a21b606082015260800190565b6000835161419d8184602088016136e4565b8351908301906141b18183602088016136e4565b01949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126141fa57600080fd5b83016020810192503590506001600160401b0381111561421957600080fd5b8036038313156137ea57600080fd5b8183526000602080850194508260005b8581101561426657813561424b81613768565b6001600160a01b031687529582019590820190600101614238565b509495945050505050565b81835260006001600160fb1b0383111561428a57600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b878110156142f75782840389526142d882886141e3565b6142e38682846141ba565b9a87019a95505050908401906001016142c1565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c8110156143655785840360bf19018352614343828f6141e3565b61434e8682846141ba565b955050506020928301929190910190600101614328565b505050828103604084015261437b81898b614228565b90508281036060840152614390818789614271565b905082810360808401526143a58185876142a7565b9c9b505050505050505050505050565b6000602082840312156143c757600080fd5b81516136dd81613768565b602081526000612dfa6020830184866141ba565b60ff8b16815260e06020820152600061440360e083018b8d6141ba565b8281036040840152614416818a8c6141ba565b9050828103606084015261442b81888a6141ba565b6080840196909652505060a081019290925260c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600083516144768184602088016136e4565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156144b0576144b0614486565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008282101561451a5761451a614486565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000821982111561458457614584614486565b500190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145bc90830184613710565b9695505050505050565b6000602082840312156145d857600080fd5b81516136dd816136aa56fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa2646970667358221220167cbbb235398818db92650684bdee471f8af67a58d8161b297003a91da4cfa164736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106102685760003560e01c806354f6127f11610143578063a22cb465116100bb578063d2786ba411610077578063d2786ba414610858578063d8053ad31461087d578063e086e5ec1461089c578063e38d7cad146108a4578063e985e9c5146108c4578063fe1ec8801461090d57005b8063a22cb465146107ab578063ac18de43146107cb578063b0c41ead146107eb578063c55f81261461080b578063c87b56dd1461081e578063ccd7d4761461083e57005b806370a082311161010a57806370a08231146106bc57806370c166d7146106ea57806382cf129d1461070a57806390184b021461071f57806395d89b411461075857806396fb3eaf1461076d57005b806354f6127f1461061a57806355f804b31461063a5780635d1ca6311461065a5780636352211e1461067c57806367530a611461069c57005b80631aa3adf9116101e1578063431053ac1161019d578063431053ac14610563578063466bca0214610583578063467c97f5146105a55780634a63740a146105c55780634b2ee5e9146105e55780634f189cb21461060557005b80631aa3adf9146104ab57806323b872dd146104cb578063273e06b3146104eb5780632d06177a1461050b578063392e53cd1461052b57806342842e0e1461054357005b80630e57c7e8116102305780630e57c7e81461032e57806310c558bf1461034e578063160a79251461036e578063162094c41461044b57806319a18a851461046b57806319c186e51461048b57005b806301ffc9a71461026a57806306fdde031461029f578063081812fc146102c1578063095ea7b3146102f95780630e05662e14610319575b005b34801561027657600080fd5b5061028a6102853660046136c0565b61092d565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102b461096d565b604051610296919061373c565b3480156102cd57600080fd5b506102e16102dc36600461374f565b6109ff565b6040516001600160a01b039091168152602001610296565b34801561030557600080fd5b5061026861031436600461377d565b610a99565b34801561032557600080fd5b506102b4610baf565b34801561033a57600080fd5b506102686103493660046137f1565b610c3d565b34801561035a57600080fd5b5061026861036936600461383c565b610cb2565b34801561037a57600080fd5b5061041061038936600461383c565b604080516080810182526000808252602082018190529181018290526060810191909152506001600160a01b03166000908152600860209081526040918290208251608081018452905460ff808216151583526101008204811615159383019390935262010000810483161515938201939093526301000000909204161515606082015290565b604051610296919081511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b34801561045757600080fd5b5061026861046636600461390e565b610d85565b34801561047757600080fd5b50610268610486366004613954565b610e13565b34801561049757600080fd5b506102686104a636600461383c565b610f47565b3480156104b757600080fd5b506102686104c6366004613aa0565b611010565b3480156104d757600080fd5b506102686104e6366004613ba7565b611065565b3480156104f757600080fd5b5061026861050636600461383c565b611137565b34801561051757600080fd5b5061026861052636600461383c565b61126d565b34801561053757600080fd5b50600f5460ff1661028a565b34801561054f57600080fd5b5061026861055e366004613ba7565b6112b0565b34801561056f57600080fd5b5061026861057e36600461383c565b611356565b34801561058f57600080fd5b5061059861148b565b6040516102969190613be8565b3480156105b157600080fd5b506102686105c0366004613c35565b6114ec565b3480156105d157600080fd5b506102686105e036600461383c565b611577565b3480156105f157600080fd5b506014546102e1906001600160a01b031681565b34801561061157600080fd5b5061026861163c565b34801561062657600080fd5b506102b461063536600461374f565b611680565b34801561064657600080fd5b50610268610655366004613c50565b611722565b34801561066657600080fd5b5060015b60405160ff9091168152602001610296565b34801561068857600080fd5b506102e161069736600461374f565b611773565b3480156106a857600080fd5b506102686106b73660046137f1565b6117ea565b3480156106c857600080fd5b506106dc6106d736600461383c565b61185a565b604051908152602001610296565b3480156106f657600080fd5b5061028a610705366004613c84565b6118e1565b34801561071657600080fd5b506102b46119fe565b34801561072b57600080fd5b5061028a61073a36600461383c565b6001600160a01b031660009081526015602052604090205460ff1690565b34801561076457600080fd5b506102b4611a0b565b34801561077957600080fd5b5061028a61078836600461383c565b6001600160a01b0316600090815260086020526040902054610100900460ff1690565b3480156107b757600080fd5b506102686107c6366004613d52565b611a1a565b3480156107d757600080fd5b506102686107e636600461383c565b611ad8565b3480156107f757600080fd5b506102e161080636600461374f565b611b1b565b610268610819366004613d90565b611b45565b34801561082a57600080fd5b506102b461083936600461374f565b611b8d565b34801561084a57600080fd5b5060125461066a9060ff1681565b34801561086457600080fd5b5061086d611ceb565b6040516102969493929190613df9565b34801561088957600080fd5b50600f5461028a90610100900460ff1681565b610268611e3b565b3480156108b057600080fd5b506102e16108bf366004613e7e565b611e7d565b3480156108d057600080fd5b5061028a6108df366004613f4d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561091957600080fd5b5061026861092836600461383c565b61204d565b60006301ffc9a760e01b6001600160e01b03198316148061096757506001600160e01b031982166000908152600a602052604090205460ff165b92915050565b6060600d805461097c90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a890613f7b565b80156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b0316610a7d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610aa482611773565b9050806001600160a01b0316836001600160a01b03161415610b125760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a74565b336001600160a01b0382161480610b2e5750610b2e81336108df565b610ba05760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a74565b610baa838361217d565b505050565b60118054610bbc90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890613f7b565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b3360009081526015602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152602260248201527f45524337323154656d706c6174653a204e4f5420455243323020436f6e74726160448201526118dd60f21b6064820152608401610a74565b610baa8383836121eb565b3360009081526008602052604090205460ff161515600114610ce65760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805462ff00001916620100001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917fc2a42571a74ce1442c8c44d375ba9442e7d55d94b37afeace261c83c62128fa490610d799042904390918252602082015260400190565b60405180910390a35050565b610d8e82611773565b6001600160a01b0316336001600160a01b031614610dbe5760405162461bcd60e51b8152600401610a7490613fed565b610dc88282612244565b336001600160a01b03167f6de6cd3982065cbd31e789e3109106f4d76d1c8a46e85262045cf947fb3fd4ed82844243604051610e079493929190614024565b60405180910390a25050565b3360009081526008602052604090205462010000900460ff16610e485760405162461bcd60e51b8152600401610a7490614053565b610ef5610e586020830183613c35565b610e656020840184614094565b610e726040860186614094565b610e7f6060880188614094565b610e8c60808a018a614094565b60a08b0135610e9f6101008d018d6140da565b808060200260200160405190810160405280939291908181526020016000905b82821015610eeb57610edc60808302860136819003810190614123565b81526020019060010190610ebf565b50505050506122de565b610f4460c0820135610f0a60e0840184614094565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d8592505050565b50565b3360009081526008602052604090205460ff161515600114610f7b5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805463ff000000191663010000001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917feb09276310ed110a7e565d64966d0ff68a47112d2dd5eeb6cbd7451836ce35ee90610d799042904390918252602082015260400190565b3360009081526008602052604090205462010000900460ff166110455760405162461bcd60e51b8152600401610a7490614053565b6110588b8b8b8b8b8b8b8b8b8b8b6122de565b5050505050505050505050565b806001146110855760405162461bcd60e51b8152600401610a749061413f565b6110ef6110ea60138054806020026020016040519081016040528092919081815260200182805480156110e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c3575b50505050505190565b6126e7565b6110f7612778565b611102838383612829565b61110b8261286a565b506001600160a01b03166000908152600860205260409020805463ffffff001916630101010017905550565b3360009081526008602052604090205460ff161515600114806111885750336001600160a01b0382161480156111885750336000908152600860205260409020546301000000900460ff1615156001145b156111f0576001600160a01b03811660008181526008602052604090819020805463ff000000191681559051909133917fc929b18b08ffea86a1f95e29384dbe8968f2fcbd70cfd735df3aba1cc548cbf390610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604660248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2037323553746f6064820152651c99531a5cdd60d21b608482015260a401610a74565b6112776001611773565b6001600160a01b0316336001600160a01b0316146112a75760405162461bcd60e51b8152600401610a7490613fed565b610f448161286a565b806001146112d05760405162461bcd60e51b8152600401610a749061413f565b6113336110ea60138054806020026020016040519081016040528092919081815260200182805480156110e1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116110c35750505050505190565b61133b612778565b611102838383604051806020016040528060008152506128fb565b3360009081526008602052604090205460ff161515600114806113a65750336001600160a01b0382161480156113a657503360009081526008602052604090205462010000900460ff1615156001145b1561140d576001600160a01b03811660008181526008602052604090819020805462ff0000191681559051909133917f9b41e1311fa819e825bc77fa2568492112e15ea92d173f3f8ee1c8ec3c1c562b90610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604760248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d206d65746164616064820152661d18481b1a5cdd60ca1b608482015260a401610a74565b606060138054806020026020016040519081016040528092919081815260200182805480156109f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114c5575050505050905090565b3360009081526008602052604090205462010000900460ff166115215760405162461bcd60e51b8152600401610a7490614053565b6012805460ff191660ff831690811790915560408051918252426020830152439082015233907fa8336411cc72db0e5bdc4dff989eeb35879bafaceffb59b54b37645c3395adb99060600160405180910390a250565b3360009081526008602052604090205460ff1615156001146115ab5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805461ff0019166101001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917f0572d56343be407a66810f01449212e8545e14ff5049c479d34be944cdfd0d4f90610d799042904390918252602082015260400190565b6116466001611773565b6001600160a01b0316336001600160a01b0316146116765760405162461bcd60e51b8152600401610a7490613fed565b61167e612778565b565b6000818152600b6020526040902080546060919061169d90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546116c990613f7b565b80156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b50505050509050919050565b61172c6001611773565b6001600160a01b0316336001600160a01b03161461175c5760405162461bcd60e51b8152600401610a7490613fed565b805161176f906002906020840190613583565b5050565b6000818152600360205260408120546001600160a01b0316806109675760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a74565b336000908152600860205260409020546301000000900460ff16610ca75760405162461bcd60e51b815260206004820152602160248201527f45524337323154656d706c6174653a204e4f542053544f5245205550444154456044820152602960f91b6064820152608401610a74565b60006001600160a01b0382166118c55760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a74565b506001600160a01b031660009081526004602052604090205490565b600f5460009060ff16156119525760405162461bcd60e51b815260206004820152603260248201527f45524337323154656d706c6174653a20746f6b656e20696e7374616e636520616044820152711b1c9958591e481a5b9a5d1a585b1a5e995960721b6064820152608401610a74565b60006119cc8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b90819084018382808284376000920191909152508b92508991506129339050565b90508080156119e357506001600160a01b03841615155b156119f1576119f1846115ab565b9998505050505050505050565b60108054610bbc90613f7b565b6060600e805461097c90613f7b565b6001600160a01b038216331415611a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a74565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610d79565b611ae26001611773565b6001600160a01b0316336001600160a01b031614611b125760405162461bcd60e51b8152600401610a7490613fed565b610f4481612a73565b60098181548110611b2b57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526008602052604090205460ff161515600114611b795760405162461bcd60e51b8152600401610a7490613fb6565b611b868585858585612ad3565b5050505050565b6000818152600360205260409020546060906001600160a01b0316611c0c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a74565b60008281526007602052604081208054611c2590613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5190613f7b565b8015611c9e5780601f10611c7357610100808354040283529160200191611c9e565b820191906000526020600020905b815481529060010190602001808311611c8157829003601f168201915b505050505090506000611caf612cfc565b825190915015611ce4578082604051602001611ccc92919061418b565b60405160208183030381529060405292505050919050565b5092915050565b60608060008060106011601260009054906101000a900460ff16600f60019054906101000a900460ff16838054611d2190613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4d90613f7b565b8015611d9a5780601f10611d6f57610100808354040283529160200191611d9a565b820191906000526020600020905b815481529060010190602001808311611d7d57829003601f168201915b50505050509350828054611dad90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd990613f7b565b8015611e265780601f10611dfb57610100808354040283529160200191611e26565b820191906000526020600020905b815481529060010190602001808311611e0957829003601f168201915b50505050509250935093509350935090919293565b611e456001611773565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610f44573d6000803e3d6000fd5b60006002600c541415611ed25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a74565b6002600c5533600090815260086020526040902054610100900460ff16611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524337323154656d706c6174653a204e4f542045524332304445504c4f5945604482015265525f524f4c4560d01b6064820152608401610a74565b601254604051630557fcfb60e41b815260009161010090046001600160a01b03169063557fcfb090611f90908e908e908e908e908e908e908e908e908e90600401614304565b6020604051808303816000875af1158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906143b5565b6001600160a01b0381166000818152601560205260408120805460ff191660019081179091556013805491820181559091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900180546001600160a01b03191690911790559150506001600c559998505050505050505050565b3360009081526008602052604090205460ff1615156001148061209d5750336001600160a01b03821614801561209d57503360009081526008602052604090205460ff6101009091041615156001145b15612103576001600160a01b03811660008181526008602052604090819020805461ff00191681559051909133917f59bd33f4c27cc16a2d74450e1fa43d7896020be9aecea4bee009db9294de899790610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604360248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2045524332304c6064820152621a5cdd60ea1b608482015260a401610a74565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906121b282611773565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000838152600b60205260409020612204908383613607565b50827fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b283836040516122379291906143d2565b60405180910390a2505050565b6000828152600360205260409020546001600160a01b03166122bf5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610a74565b60008281526007602090815260409091208251610baa92840190613583565b6012805460ff191660ff8d161790556122f960108b8b613607565b5061230660118989613607565b50600f54610100900460ff1661237d57336001600160a01b03167f5463569dcc320958360074a9ab27e809e8a6942c394fb151d139b5f7b4ecb1bd8c8c8c8a8a8a8a8a42436040516123619a999897969594939291906143e6565b60405180910390a2600f805461ff0019166101001790556123cf565b60125460405133917fe5c4cf86b1815151e6f453e1e133d4454ae3b0b07145db39f2e0178685deac84916123c69160ff16908e908e908c908c908c908c908c90429043906143e6565b60405180910390a25b6032815111156124135760405162461bcd60e51b815260206004820152600f60248201526e546f6f204d616e792050726f6f667360881b6044820152606401610a74565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260005b82518110156126d85760006001600160a01b03168382815181106124705761247061444e565b6020026020010151600001516001600160a01b0316146125f2576000828560405160200161249f929190614464565b60405160208183030381529060405280519060200120905060006001828685815181106124ce576124ce61444e565b6020026020010151602001518786815181106124ec576124ec61444e565b60200260200101516040015188878151811061250a5761250a61444e565b6020026020010151606001516040516000815260200160405260405161254c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561256e573d6000803e3d6000fd5b50505060206040510351905084838151811061258c5761258c61444e565b6020026020010151600001516001600160a01b0316816001600160a01b0316146125ef5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210383937b7b31039b4b3b732b960611b6044820152606401610a74565b50505b8281815181106126045761260461444e565b6020026020010151600001516001600160a01b03167f2819d8badf5cff2c9220b8ee99dacc14d67058e343d7f0c2c444d198507fe9418585848151811061264d5761264d61444e565b60200260200101516020015186858151811061266b5761266b61444e565b6020026020010151604001518786815181106126895761268961444e565b6020026020010151606001516040516126be949392919093845260ff9290921660208401526040830152606082015260800190565b60405180910390a2806126d08161449c565b91505061244a565b50505050505050505050505050565b60005b8181101561176f57601381815481106127055761270561444e565b6000918252602082200154604080516382c03da560e01b815290516001600160a01b03909216926382c03da59260048084019382900301818387803b15801561274d57600080fd5b505af1158015612761573d6000803e3d6000fd5b5050505080806127709061449c565b9150506126ea565b60005b6009548110156127e0576000600860006009848154811061279e5761279e61444e565b60009182526020808320909101546001600160a01b031683528201929092526040019020805463ffffffff1916905550806127d88161449c565b91505061277b565b506127ed6009600061367b565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6128333382612d0b565b61284f5760405162461bcd60e51b8152600401610a74906144b7565b610baa838383604051806020016040528060008152506128fb565b6001600160a01b038116600081815260086020526040808220805460ff1916600190811782556009805491820181559093526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917faf8fc8b6726138c96881c895390a08e9d91a94c288f06281e7f9821c49c7155b90610d799042904390918252602082015260400190565b6129053383612d0b565b6129215760405162461bcd60e51b8152600401610a74906144b7565b61292d84848484612e02565b50505050565b60006001600160a01b0386166129a25760405162461bcd60e51b815260206004820152602e60248201527f45524337323154656d706c6174653a3a20496e76616c6964206d696e7465722c60448201526d20207a65726f206164647265737360901b6064820152608401610a74565b84516129b590600d906020880190613583565b5083516129c990600e906020870190613583565b5060128054610100600160a81b0319166101006001600160a01b03861602179055604080516020810191829052600090819052612a0891600291613583565b50600f805461ffff19166001908117909155612a25908790612e35565b612a2e8661286a565b6001600160a01b0386166000908152600860205260409020805463ffffff0019166301010100178155612a62600184612244565b5050600f5460ff1695945050505050565b6001600160a01b03811660008181526008602052604090819020805460ff191681559051909133917fb572db0e6da4924b771ed1712b980d48b5992b9a1c27aede55fbb3318c48996a90610d799042904390918252602082015260400190565b82846001600160a01b0316867f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b88585604051612b109291906143d2565b60405180910390a460006109c45a612b289190614508565b905085612b7857612b72858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612e4f915050565b50612cf4565b6003861415612bc157612b728484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6792505050565b6002861415612cb5576000612c1884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c13925060209150879050614508565b612f03565b90506000612c6785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612c6291506020905088614508565b612f61565b90506000612c7687848461306e565b6040519091506001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a2505050612cf4565b60405162461bcd60e51b815260206004820152601460248201527357726f6e67206f7065726174696f6e207479706560601b6044820152606401610a74565b505050505050565b60606002805461097c90613f7b565b6000818152600360205260408120546001600160a01b0316612d845760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a74565b6000612d8f83611773565b9050806001600160a01b0316846001600160a01b03161480612dca5750836001600160a01b0316612dbf846109ff565b6001600160a01b0316145b80612dfa57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b612e0d848484613170565b612e1984848484613310565b61292d5760405162461bcd60e51b8152600401610a749061451f565b61176f82826040518060200160405280600081525061340e565b6000806000845160208601878987f195945050505050565b600081516020830184f090506001600160a01b038116612ec95760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74206465706c6f7920636f6e7472616374000000000000006044820152606401610a74565b6040516001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a292915050565b6000612f10826020614571565b83511015612f585760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610a74565b50016020015190565b606081612f6f81601f614571565b1015612fae5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610a74565b612fb88284614571565b84511015612ffc5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610a74565b60608215801561301b5760405191506000825260208201604052613065565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561305457805183526020928301920161303c565b5050858452601f01601f1916604052505b50949350505050565b600080844710156130c15760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610a74565b825161310f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610a74565b8383516020850187f590506001600160a01b038116612dfa5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610a74565b826001600160a01b031661318382611773565b6001600160a01b0316146131eb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a74565b6001600160a01b03821661324d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a74565b61325860008261217d565b6001600160a01b0383166000908152600460205260408120805460019290613281908490614508565b90915550506001600160a01b03821660009081526004602052604081208054600192906132af908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160a01b0384163b1561340357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613354903390899088908890600401614589565b6020604051808303816000875af192505050801561338f575060408051601f3d908101601f1916820190925261338c918101906145c6565b60015b6133e9573d8080156133bd576040519150601f19603f3d011682016040523d82523d6000602084013e6133c2565b606091505b5080516133e15760405162461bcd60e51b8152600401610a749061451f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612dfa565b506001949350505050565b6134188383613441565b6134256000848484613310565b610baa5760405162461bcd60e51b8152600401610a749061451f565b6001600160a01b0382166134975760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a74565b6000818152600360205260409020546001600160a01b0316156134fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a74565b6001600160a01b0382166000908152600460205260408120805460019290613525908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461358f90613f7b565b90600052602060002090601f0160209004810192826135b157600085556135f7565b82601f106135ca57805160ff19168380011785556135f7565b828001600101855582156135f7579182015b828111156135f75782518255916020019190600101906135dc565b50613603929150613695565b5090565b82805461361390613f7b565b90600052602060002090601f01602090048101928261363557600085556135f7565b82601f1061364e5782800160ff198235161785556135f7565b828001600101855582156135f7579182015b828111156135f7578235825591602001919060010190613660565b5080546000825590600052602060002090810190610f4491905b5b808211156136035760008155600101613696565b6001600160e01b031981168114610f4457600080fd5b6000602082840312156136d257600080fd5b81356136dd816136aa565b9392505050565b60005b838110156136ff5781810151838201526020016136e7565b8381111561292d5750506000910152565b600081518084526137288160208601602086016136e4565b601f01601f19169290920160200192915050565b6020815260006136dd6020830184613710565b60006020828403121561376157600080fd5b5035919050565b6001600160a01b0381168114610f4457600080fd5b6000806040838503121561379057600080fd5b823561379b81613768565b946020939093013593505050565b60008083601f8401126137bb57600080fd5b5081356001600160401b038111156137d257600080fd5b6020830191508360208285010111156137ea57600080fd5b9250929050565b60008060006040848603121561380657600080fd5b8335925060208401356001600160401b0381111561382357600080fd5b61382f868287016137a9565b9497909650939450505050565b60006020828403121561384e57600080fd5b81356136dd81613768565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561389757613897613859565b604052919050565b600082601f8301126138b057600080fd5b81356001600160401b038111156138c9576138c9613859565b6138dc601f8201601f191660200161386f565b8181528460208386010111156138f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561392157600080fd5b8235915060208301356001600160401b0381111561393e57600080fd5b61394a8582860161389f565b9150509250929050565b60006020828403121561396657600080fd5b81356001600160401b0381111561397c57600080fd5b820161012081850312156136dd57600080fd5b803560ff811681146139a057600080fd5b919050565b6000608082840312156139b757600080fd5b604051608081018181106001600160401b03821117156139d9576139d9613859565b60405290508082356139ea81613768565b81526139f86020840161398f565b602082015260408301356040820152606083013560608201525092915050565b600082601f830112613a2957600080fd5b813560206001600160401b03821115613a4457613a44613859565b613a52818360051b0161386f565b82815260079290921b84018101918181019086841115613a7157600080fd5b8286015b84811015613a9557613a8788826139a5565b835291830191608001613a75565b509695505050505050565b600080600080600080600080600080600060e08c8e031215613ac157600080fd5b613aca8c61398f565b9a506001600160401b038060208e01351115613ae557600080fd5b613af58e60208f01358f016137a9565b909b50995060408d0135811015613b0b57600080fd5b613b1b8e60408f01358f016137a9565b909950975060608d0135811015613b3157600080fd5b613b418e60608f01358f016137a9565b909750955060808d0135811015613b5757600080fd5b613b678e60808f01358f016137a9565b909550935060a08d0135925060c08d0135811015613b8457600080fd5b50613b958d60c08e01358e01613a18565b90509295989b509295989b9093969950565b600080600060608486031215613bbc57600080fd5b8335613bc781613768565b92506020840135613bd781613768565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b81811015613c295783516001600160a01b031683529284019291840191600101613c04565b50909695505050505050565b600060208284031215613c4757600080fd5b6136dd8261398f565b600060208284031215613c6257600080fd5b81356001600160401b03811115613c7857600080fd5b612dfa8482850161389f565b60008060008060008060008060c0898b031215613ca057600080fd5b8835613cab81613768565b975060208901356001600160401b0380821115613cc757600080fd5b613cd38c838d016137a9565b909950975060408b0135915080821115613cec57600080fd5b613cf88c838d016137a9565b909750955060608b01359150613d0d82613768565b90935060808a013590613d1f82613768565b90925060a08a01359080821115613d3557600080fd5b50613d428b828c0161389f565b9150509295985092959890939650565b60008060408385031215613d6557600080fd5b8235613d7081613768565b915060208301358015158114613d8557600080fd5b809150509250929050565b600080600080600060808688031215613da857600080fd5b853594506020860135613dba81613768565b93506040860135925060608601356001600160401b03811115613ddc57600080fd5b613de8888289016137a9565b969995985093965092949392505050565b608081526000613e0c6080830187613710565b8281036020840152613e1e8187613710565b60ff959095166040840152505090151560609091015292915050565b60008083601f840112613e4c57600080fd5b5081356001600160401b03811115613e6357600080fd5b6020830191508360208260051b85010111156137ea57600080fd5b600080600080600080600080600060a08a8c031215613e9c57600080fd5b8935985060208a01356001600160401b0380821115613eba57600080fd5b613ec68d838e01613e3a565b909a50985060408c0135915080821115613edf57600080fd5b613eeb8d838e01613e3a565b909850965060608c0135915080821115613f0457600080fd5b613f108d838e01613e3a565b909650945060808c0135915080821115613f2957600080fd5b50613f368c828d01613e3a565b915080935050809150509295985092959850929598565b60008060408385031215613f6057600080fd5b8235613f6b81613768565b91506020830135613d8581613768565b600181811c90821680613f8f57607f821691505b60208210811415613fb057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f455243373231526f6c6573416464726573733a204e4f54204d414e4147455200604082015260600190565b6020808252601c908201527f45524337323154656d706c6174653a206e6f74204e46544f776e657200000000604082015260600190565b6080815260006140376080830187613710565b6020830195909552506040810192909252606090910152919050565b60208082526021908201527f45524337323154656d706c6174653a204e4f54204d455441444154415f524f4c6040820152604560f81b606082015260800190565b6000808335601e198436030181126140ab57600080fd5b8301803591506001600160401b038211156140c557600080fd5b6020019150368190038213156137ea57600080fd5b6000808335601e198436030181126140f157600080fd5b8301803591506001600160401b0382111561410b57600080fd5b6020019150600781901b36038213156137ea57600080fd5b60006080828403121561413557600080fd5b6136dd83836139a5565b6020808252602c908201527f45524337323154656d706c6174653a2043616e6e6f74207472616e736665722060408201526b1d1a1a5cc81d1bdad95b925960a21b606082015260800190565b6000835161419d8184602088016136e4565b8351908301906141b18183602088016136e4565b01949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126141fa57600080fd5b83016020810192503590506001600160401b0381111561421957600080fd5b8036038313156137ea57600080fd5b8183526000602080850194508260005b8581101561426657813561424b81613768565b6001600160a01b031687529582019590820190600101614238565b509495945050505050565b81835260006001600160fb1b0383111561428a57600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b878110156142f75782840389526142d882886141e3565b6142e38682846141ba565b9a87019a95505050908401906001016142c1565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c8110156143655785840360bf19018352614343828f6141e3565b61434e8682846141ba565b955050506020928301929190910190600101614328565b505050828103604084015261437b81898b614228565b90508281036060840152614390818789614271565b905082810360808401526143a58185876142a7565b9c9b505050505050505050505050565b6000602082840312156143c757600080fd5b81516136dd81613768565b602081526000612dfa6020830184866141ba565b60ff8b16815260e06020820152600061440360e083018b8d6141ba565b8281036040840152614416818a8c6141ba565b9050828103606084015261442b81888a6141ba565b6080840196909652505060a081019290925260c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600083516144768184602088016136e4565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156144b0576144b0614486565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008282101561451a5761451a614486565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000821982111561458457614584614486565b500190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145bc90830184613710565b9695505050505050565b6000602082840312156145d857600080fd5b81516136dd816136aa56fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa2646970667358221220167cbbb235398818db92650684bdee471f8af67a58d8161b297003a91da4cfa164736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/FactoryRouter.json b/abis/FactoryRouter.json deleted file mode 100644 index 004b02e..0000000 --- a/abis/FactoryRouter.json +++ /dev/null @@ -1,1420 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "FactoryRouter", - "sourceName": "contracts/pools/FactoryRouter.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_routerOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "_oceanToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_bpoolTemplate", - "type": "address" - }, - { - "internalType": "address", - "name": "_opcCollector", - "type": "address" - }, - { - "internalType": "address[]", - "name": "_preCreatedPools", - "type": "address[]" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newBPoolAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "registeredBy", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "datatokenAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "bpoolTemplateAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "ssAddress", - "type": "address" - } - ], - "name": "BPoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "DispenserContractAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "DispenserContractRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "FactoryContractChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "FixedRateContractAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "FixedRateContractRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "InstanceDeployed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "poolAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isOcean", - "type": "bool" - } - ], - "name": "NewPool", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newSwapOceanFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newSwapNonOceanFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newConsumeFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newProviderFee", - "type": "uint256" - } - ], - "name": "OPCFeeChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "PoolTemplateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "PoolTemplateRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newRouter", - "type": "address" - } - ], - "name": "RouterChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "SSContractAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "SSContractRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "TokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "TokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "minVestingPeriodInBlocks", - "type": "uint256" - } - ], - "name": "VestingPeriodChanges", - "type": "event" - }, - { - "inputs": [], - "name": "BONE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "BPOW_PRECISION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXIT_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INIT_POOL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_IN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_OUT_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_TOTAL_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BALANCE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BOUND_TOKENS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_BPOW_BASE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_WEIGHT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - } - ], - "name": "addDispenserContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - } - ], - "name": "addFactory", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_fixedRate", - "type": "address" - } - ], - "name": "addFixedRateContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oceanTokenAddress", - "type": "address" - } - ], - "name": "addOceanToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "poolTemplate", - "type": "address" - } - ], - "name": "addPoolTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ssContract", - "type": "address" - } - ], - "name": "addSSContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "exchangeIds", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "enum FactoryRouter.operationType", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountsIn", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountsOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapMarketFee", - "type": "uint256" - }, - { - "internalType": "address", - "name": "marketFeeAddress", - "type": "address" - } - ], - "internalType": "struct FactoryRouter.Operations[]", - "name": "_operations", - "type": "tuple[]" - } - ], - "name": "buyDTBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_routerOwner", - "type": "address" - } - ], - "name": "changeRouterOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "consumeFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - }, - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBalance", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "deployDispenser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fixedPriceAddress", - "type": "address" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - } - ], - "name": "deployFixedRate", - "outputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[2]", - "name": "tokens", - "type": "address[2]" - }, - { - "internalType": "uint256[]", - "name": "ssParams", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "swapFees", - "type": "uint256[]" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - } - ], - "name": "deployPool", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "dispensers", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "fixedRate", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "fixedrates", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDispensersContracts", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFixedRatesContracts", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMinVestingPeriod", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOPCConsumeFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "baseToken", - "type": "address" - } - ], - "name": "getOPCFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOPCFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOPCProviderFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOceanTokens", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolTemplates", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSSContracts", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - } - ], - "name": "isDispenserContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_fixedRate", - "type": "address" - } - ], - "name": "isFixedRateContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oceanTokenAddress", - "type": "address" - } - ], - "name": "isOceanToken", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "poolTemplate", - "type": "address" - } - ], - "name": "isPoolTemplate", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ssContract", - "type": "address" - } - ], - "name": "isSSContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minVestingPeriodInBlocks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "oceanTokens", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "opcCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "poolTemplates", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "providerFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dispenser", - "type": "address" - } - ], - "name": "removeDispenserContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_fixedRate", - "type": "address" - } - ], - "name": "removeFixedRateContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oceanTokenAddress", - "type": "address" - } - ], - "name": "removeOceanToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "poolTemplate", - "type": "address" - } - ], - "name": "removePoolTemplate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ssContract", - "type": "address" - } - ], - "name": "removeSSContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "routerOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "ssContracts", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "swapNonOceanFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "swapOceanFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_newPeriod", - "type": "uint256" - } - ], - "name": "updateMinVestingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_newSwapOceanFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newSwapNonOceanFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newConsumeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newProviderFee", - "type": "uint256" - } - ], - "name": "updateOPCFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405262250490600555600060065566038d7ea4c68000600755662386f26fc1000060085560006009553480156200003857600080fd5b50604051620046c1380380620046c18339810160408190526200005b9162000609565b8282826001600160a01b038316620000d05760405162461bcd60e51b815260206004820152602d60248201527f42466163746f72793a20696e76616c69642062706f6f6c2074656d706c61746560448201526c207a65726f206164647265737360981b60648201526084015b60405180910390fd5b6001600160a01b038216620001285760405162461bcd60e51b815260206004820152601660248201527f42466163746f72793a207a65726f2061646472657373000000000000000000006044820152606401620000c7565b600080546001600160a01b0319166001600160a01b0384161790556200014e8362000379565b805115620001fd5760005b8151811015620001fb5760006001600160a01b0316336001600160a01b03168383815181106200018d576200018d62000729565b602090810291909101810151604080516000808252938101849052908101929092526001600160a01b0316907fbb6121447d29a04cc37bfd93cdf6a9dd08229f2d941116c1528f04698c4e790e9060600160405180910390a480620001f2816200073f565b91505062000159565b505b5050506001600160a01b038516620002645760405162461bcd60e51b815260206004820152602360248201527f466163746f7279526f757465723a20496e76616c696420726f75746572206f776044820152623732b960e91b6064820152608401620000c7565b6001600160a01b038216620002c85760405162461bcd60e51b815260206004820152602360248201527f466163746f7279526f757465723a20496e76616c6964206f7063436f6c6c65636044820152623a37b960e91b6064820152608401620000c7565b6001600160a01b038416620003335760405162461bcd60e51b815260206004820152602a60248201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604482015269656e206164647265737360b01b6064820152608401620000c7565b600280546001600160a01b038088166001600160a01b03199283161790925560008054928516929091169190911790556200036e8462000470565b505050505062000769565b6001600160a01b038116620003e55760405162461bcd60e51b815260206004820152602b60248201527f466163746f7279526f757465723a20496e76616c696420706f6f6c54656d706c60448201526a617465206164647265737360a81b6064820152608401620000c7565b620003f081620004fb565b6200046d5760018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051909133917fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac9190a35b50565b6200047b816200056d565b6200046d57600a805460018101825560009182527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038416908117909155604051909133917fdffbd9ded1c09446f09377de547142dcce7dc541c8b0b028142b1eba7026b9e79190a350565b6000805b6001548110156200056457826001600160a01b0316600182815481106200052a576200052a62000729565b6000918252602090912001546001600160a01b031614156200054f5750600192915050565b806200055b816200073f565b915050620004ff565b50600092915050565b6000805b600a548110156200056457826001600160a01b0316600a82815481106200059c576200059c62000729565b6000918252602090912001546001600160a01b03161415620005c15750600192915050565b80620005cd816200073f565b91505062000571565b80516001600160a01b0381168114620005ee57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156200062257600080fd5b6200062d86620005d6565b945060206200063e818801620005d6565b94506200064e60408801620005d6565b93506200065e60608801620005d6565b60808801519093506001600160401b03808211156200067c57600080fd5b818901915089601f8301126200069157600080fd5b815181811115620006a657620006a6620005f3565b8060051b604051601f19603f83011681018181108582111715620006ce57620006ce620005f3565b60405291825284820192508381018501918c831115620006ed57600080fd5b938501935b8285101562000716576200070685620005d6565b84529385019392850192620006f2565b8096505050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200076257634e487b7160e01b600052601160045260246000fd5b5060010190565b613f4880620007796000396000f3fe608060405234801561001057600080fd5b50600436106103c55760003560e01c8063992e2a92116101ff578063c6580d121161011a578063e2bdeefa116100ad578063ecdda5881161007c578063ecdda58814610732578063ee3bc63514610745578063fca24bc614610758578063fdaa59bf1461076b57600080fd5b8063e2bdeefa1461070e578063e4a28a521461040f578063e525f99c14610717578063ec0930211461072a57600080fd5b8063dce2d0df116100e9578063dce2d0df146106c4578063de9a95a7146106df578063e183fb3f146106f2578063e193faad146106fb57600080fd5b8063c6580d1214610697578063c6e983d91461069f578063cb870cbf146106a8578063d629a00a146106b157600080fd5b8063b8421e2b11610192578063bfa04b8511610161578063bfa04b851461065e578063c07c00fe14610671578063c36596a61461049e578063c45a01551461068457600080fd5b8063b8421e2b14610633578063ba019dab14610646578063bc063e1a1461064e578063bc694ea21461065657600080fd5b8063b0e0d136116101ce578063b0e0d13614610605578063b19aaac61461060d578063b66806fb14610620578063b7b800a41461060557600080fd5b8063992e2a92146105cf5780639bc01b3c146105d75780639cdfa6ad146105df5780639f2c010a146105f257600080fd5b806347e14094116102ef57806376c7a3c711610282578063824493751161025157806382449375146105995780638552730a146105ac578063867378c5146105bf5780639381cd2b146105c757600080fd5b806376c7a3c7146105635780637cbf85bf1461056b5780637d28354d1461057e578063802d14221461058657600080fd5b80636c9fb612116102be5780636c9fb612146105225780636cdf90a114610535578063737e5ca0146105485780637521aff91461055057600080fd5b806347e14094146104ec57806350cbbe76146104ff578063510f3465146105125780636c45e8811461051a57600080fd5b806316d9cb3d1161036757806329ce1ec51161033657806329ce1ec5146104b5578063335b7fa2146104c857806346104ea8146104db578063475030c0146104e357600080fd5b806316d9cb3d14610483578063189d00ca14610496578063218b53821461049e578063241c7a6d146104ad57600080fd5b80631184e8d9116103a35780631184e8d91461042557806315c25dd51461044857806315d4c9eb1461045b578063165926141461047057600080fd5b80630318ad66146103ca57806303814238146103df57806309a3bbe41461040f575b600080fd5b6103dd6103d83660046135d3565b61077e565b005b6000546103f2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6104176107bd565b604051908152602001610406565b6104386104333660046135d3565b6107d3565b6040519015158152602001610406565b6104386104563660046135d3565b61083d565b61046361089e565b60405161040691906135f0565b6103dd61047e3660046135d3565b610900565b6103dd6104913660046135d3565b610ac2565b610417610b9a565b610417670de0b6b3a764000081565b610463610bb1565b6103dd6104c33660046135d3565b610c11565b6103f26104d636600461363d565b610d3c565b610463610d66565b61041760055481565b6103dd6104fa3660046135d3565b610dc6565b6103f261050d36600461363d565b610f87565b600554610417565b600954610417565b6103dd6105303660046135d3565b610f97565b6104386105433660046135d3565b61106f565b6104636110d0565b6103dd61055e36600461363d565b611130565b610417611197565b6103f261057936600461363d565b6111ac565b600854610417565b6004546103f2906001600160a01b031681565b6104176105a73660046136a2565b6111bc565b6002546103f2906001600160a01b031681565b61041761132e565b610417611345565b610417611358565b610463611376565b6103dd6105ed3660046135d3565b6113d6565b6103dd6106003660046135d3565b6115da565b610417600281565b6103dd61061b3660046135d3565b61179b565b6103f261062e36600461363d565b6117ce565b6104176106413660046135d3565b6117de565b610417600181565b610417611803565b610417611816565b6103dd61066c366004613725565b611835565b61043861067f3660046135d3565b6118c3565b6003546103f2906001600160a01b031681565b610417600081565b61041760095481565b61041760075481565b6103dd6106bf366004613757565b611924565b60065460075460408051928352602083019190915201610406565b6103dd6106ed3660046135d3565b611a94565b61041760065481565b6103dd6107093660046135d3565b611b6c565b61041760085481565b6103dd6107253660046135d3565b611b9f565b610417611c6b565b6103dd6107403660046137c7565b611c7e565b6103f261075336600461383d565b61278a565b6104386107663660046135d3565b612b46565b6103f261077936600461363d565b612ba7565b6002546001600160a01b031633146107b15760405162461bcd60e51b81526004016107a8906138ed565b60405180910390fd5b6107ba81612bb7565b50565b6107d0670de0b6b3a76400006032613933565b81565b6000805b600a5481101561083457826001600160a01b0316600a82815481106107fe576107fe613952565b6000918252602090912001546001600160a01b031614156108225750600192915050565b8061082c81613968565b9150506107d7565b50600092915050565b6000805b600b5481101561083457826001600160a01b0316600b828154811061086857610868613952565b6000918252602090912001546001600160a01b0316141561088c5750600192915050565b8061089681613968565b915050610841565b6060600d8054806020026020016040519081016040528092919081815260200182805480156108f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d8575b5050505050905090565b6002546001600160a01b0316331461092a5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b0381166109505760405162461bcd60e51b81526004016107a890613983565b60005b600d548110156109ac57816001600160a01b0316600d828154811061097a5761097a613952565b6000918252602090912001546001600160a01b0316141561099a576109ac565b806109a481613968565b915050610953565b600d54811015610abe57805b600d546109c7906001906139cc565b811015610a5257600d6109db8260016139e3565b815481106109eb576109eb613952565b600091825260209091200154600d80546001600160a01b039092169183908110610a1757610a17613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580610a4a81613968565b9150506109b8565b50600d805480610a6457610a646139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917f63fe522dcdc5f006279afe8840a87398bb3d0dbb906b848866195859621908b39190a35b5050565b6002546001600160a01b03163314610aec5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610b125760405162461bcd60e51b81526004016107a890613a11565b610b1b8161106f565b6107ba57600c805460018101825560009182527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b038416908117909155604051909133917f45ccb9b9d6b112eb7a38daf6a23bda8b4c8449d5cf64a034975a5beb8cdd37b39190a350565b6107d06402540be400670de0b6b3a7640000613a5a565b606060018054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b03163314610c3b5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610ca15760405162461bcd60e51b815260206004820152602760248201527f466163746f7279526f757465723a20496e76616c6964205f666163746f7279206044820152666164647265737360c81b60648201526084016107a8565b6003546001600160a01b031615610cf05760405162461bcd60e51b8152602060048201526013602482015272119050d513d49648105314915051164814d155606a1b60448201526064016107a8565b600380546001600160a01b0319166001600160a01b03831690811790915560405133907f1f869f1ddaa0e2e3652252b3394c05c805f54a0d5f7fb6975f785ae4f91e587190600090a350565b600d8181548110610d4c57600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600c8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b03163314610df05760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610e165760405162461bcd60e51b81526004016107a890613a7c565b60005b600b54811015610e7257816001600160a01b0316600b8281548110610e4057610e40613952565b6000918252602090912001546001600160a01b03161415610e6057610e72565b80610e6a81613968565b915050610e19565b600b54811015610abe57805b600b54610e8d906001906139cc565b811015610f1857600b610ea18260016139e3565b81548110610eb157610eb1613952565b600091825260209091200154600b80546001600160a01b039092169183908110610edd57610edd613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580610f1081613968565b915050610e7e565b50600b805480610f2a57610f2a6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917f7df5d17d768be6563796784637c80bc9204e2af0bc4ba8630f5aa2fed96ea4879190a35050565b60018181548110610d4c57600080fd5b6002546001600160a01b03163314610fc15760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610fe75760405162461bcd60e51b81526004016107a890613a7c565b610ff08161083d565b6107ba57600b805460018101825560009182527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b038416908117909155604051909133917fcef3ce01f85c030161b431114e41e463297b68f169c1013c526b1cbc5747e5449190a350565b6000805b600c5481101561083457826001600160a01b0316600c828154811061109a5761109a613952565b6000918252602090912001546001600160a01b031614156110be5750600192915050565b806110c881613968565b915050611073565b6060600b8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b0316331461115a5760405162461bcd60e51b81526004016107a8906138ed565b600581905560405181815233907f5ee73342e684c0b848562c301fa2dc6b0146b266cfa12d4219fb04b316f7a4759060200160405180910390a250565b6107d0620f4240670de0b6b3a7640000613a5a565b600b8181548110610d4c57600080fd5b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015611205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112299190613ad6565b6112455760405162461bcd60e51b81526004016107a890613af1565b61124e8661106f565b6112ad5760405162461bcd60e51b815260206004820152602a60248201527f464143544f525920524f555445523a20496e76616c696420466978656450726960448201526918d950dbdb9d1c9858dd60b21b60648201526084016107a8565b60405163012c327560e01b81526001600160a01b0387169063012c3275906112e19033908990899089908990600401613b3c565b6020604051808303816000875af1158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190613bcb565b9695505050505050565b6107d064e8d4a51000670de0b6b3a7640000613a5a565b6107d0670de0b6b3a76400006064613933565b61136b6003670de0b6b3a7640000613a5a565b6107d09060016139e3565b6060600a8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b031633146114005760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b0381166114695760405162461bcd60e51b815260206004820152602a60248201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604482015269656e206164647265737360b01b60648201526084016107a8565b60005b600a548110156114c557816001600160a01b0316600a828154811061149357611493613952565b6000918252602090912001546001600160a01b031614156114b3576114c5565b806114bd81613968565b91505061146c565b600a54811015610abe57805b600a546114e0906001906139cc565b81101561156b57600a6114f48260016139e3565b8154811061150457611504613952565b600091825260209091200154600a80546001600160a01b03909216918390811061153057611530613952565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558061156381613968565b9150506114d1565b50600a80548061157d5761157d6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917fbbe55b1ff108e23e5ff1a6f5d36946eec15ec0ca0ded2bfed4cdcf697ca904609190a35050565b6002546001600160a01b031633146116045760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b03811661162a5760405162461bcd60e51b81526004016107a890613a11565b60005b600c5481101561168657816001600160a01b0316600c828154811061165457611654613952565b6000918252602090912001546001600160a01b0316141561167457611686565b8061167e81613968565b91505061162d565b600c54811015610abe57805b600c546116a1906001906139cc565b81101561172c57600c6116b58260016139e3565b815481106116c5576116c5613952565b600091825260209091200154600c80546001600160a01b0390921691839081106116f1576116f1613952565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558061172481613968565b915050611692565b50600c80548061173e5761173e6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917ff1ec0697329a2e8de8cf055335547acc40fbace8712fc77aeea1ea2afbcf7e3b9190a35050565b6002546001600160a01b031633146117c55760405162461bcd60e51b81526004016107a8906138ed565b6107ba81612c3f565b600c8181548110610d4c57600080fd5b60006117e9826107d3565b156117f657505060065490565b505060075490565b919050565b6107d0600a670de0b6b3a7640000613a5a565b600161182b670de0b6b3a76400006002613933565b6107d091906139cc565b6002546001600160a01b0316331461185f5760405162461bcd60e51b81526004016107a8906138ed565b600684905560078390556008829055600981905560408051858152602081018590529081018390526060810182905233907fe6171cf0506862c0a0185f8c21dca979859d4eb63186eff63f1b3dd14926be7b9060800160405180910390a250505050565b6000805b60015481101561083457826001600160a01b0316600182815481106118ee576118ee613952565b6000918252602090912001546001600160a01b031614156119125750600192915050565b8061191c81613968565b9150506118c7565b60035460405163226e761560e01b81523360048201526001600160a01b039091169063226e761590602401602060405180830381865afa15801561196c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119909190613ad6565b6119ac5760405162461bcd60e51b81526004016107a890613af1565b6119b586612b46565b611a135760405162461bcd60e51b815260206004820152602960248201527f464143544f525920524f555445523a20496e76616c69642044697370656e73656044820152681c90dbdb9d1c9858dd60ba1b60648201526084016107a8565b6040516324ce291760e01b81526001600160a01b0386811660048301526024820186905260448201859052838116606483015282811660848301528716906324ce29179060a401600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b50505050505050505050565b6002546001600160a01b03163314611abe5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116611ae45760405162461bcd60e51b81526004016107a890613983565b611aed81612b46565b6107ba57600d805460018101825560009182527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b038416908117909155604051909133917f78be9d87a7b2c8707b044dbf5b04c3f747b692c55ec34dcd1d7357736478789c9190a350565b6002546001600160a01b03163314611b965760405162461bcd60e51b81526004016107a8906138ed565b6107ba81612d30565b6002546001600160a01b03163314611bc95760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206e657720726f75746572206f776e6572000000000000000060448201526064016107a8565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907fc736654a613824c69968e0ec25ac1a428ccd49e15c28e97b5dfd2c6059757e2a90600090a350565b6107d06002670de0b6b3a7640000613a5a565b6032811115611cda5760405162461bcd60e51b815260206004820152602260248201527f466163746f7279526f757465723a20546f6f204d616e79204f7065726174696f6044820152616e7360f01b60648201526084016107a8565b60005b818110156127855760006040518060600160405280858585818110611d0457611d04613952565b905061014002016060016020810190611d1d91906135d3565b6001600160a01b03168152602001858585818110611d3d57611d3d613952565b9050610140020160a0016020810190611d5691906135d3565b6001600160a01b03168152602001858585818110611d7657611d76613952565b90506101400201610120016020810190611d9091906135d3565b6001600160a01b03166001600160a01b0316815250905060006040518060800160405280868686818110611dc657611dc6613952565b90506101400201608001358152602001868686818110611de857611de8613952565b9050610140020160c001358152602001868686818110611e0a57611e0a613952565b9050610140020160e001358152602001868686818110611e2c57611e2c613952565b905061014002016101000135815250905060006003811115611e5057611e50613be4565b858585818110611e6257611e62613952565b905061014002016040016020810190611e7b9190613bfa565b6003811115611e8c57611e8c613be4565b141561205b57611ef03330878787818110611ea957611ea9613952565b9050610140020160800135888888818110611ec657611ec6613952565b905061014002016060016020810190611edf91906135d3565b6001600160a01b0316929190612e9f565b611f76858585818110611f0557611f05613952565b905061014002016020016020810190611f1e91906135d3565b868686818110611f3057611f30613952565b9050610140020160800135878787818110611f4d57611f4d613952565b905061014002016060016020810190611f6691906135d3565b6001600160a01b03169190612f10565b6000858585818110611f8a57611f8a613952565b905061014002016020016020810190611fa391906135d3565b6001600160a01b031663c421a3fc84846040518363ffffffff1660e01b8152600401611fd0929190613c1b565b60408051808303816000875af1158015611fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120129190613c80565b509050612055338288888881811061202c5761202c613952565b9050610140020160a001602081019061204591906135d3565b6001600160a01b03169190612fc2565b50612770565b600185858581811061206f5761206f613952565b9050610140020160400160208101906120889190613bfa565b600381111561209957612099613be4565b14156123145760008585858181106120b3576120b3613952565b9050610140020160200160208101906120cc91906135d3565b6001600160a01b031663caa011488787878181106120ec576120ec613952565b90506101400201606001602081019061210591906135d3565b88888881811061211757612117613952565b9050610140020160a001602081019061213091906135d3565b89898981811061214257612142613952565b9050610140020160c001358a8a8a81811061215f5761215f613952565b6040516001600160e01b031960e089901b1681526001600160a01b0396871660048201529590941660248601525060448401919091526101006101409092020101356064820152608401602060405180830381865afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190613bcb565b9050612204333083898989818110611ec657611ec6613952565b61224586868681811061221957612219613952565b90506101400201602001602081019061223291906135d3565b82888888818110611f4d57611f4d613952565b85858581811061225757612257613952565b90506101400201602001602081019061227091906135d3565b6001600160a01b031663c98a59cf84846040518363ffffffff1660e01b815260040161229d929190613c1b565b60408051808303816000875af11580156122bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122df9190613c80565b5050612055338787878181106122f7576122f7613952565b9050610140020160c0013588888881811061202c5761202c613952565b600285858581811061232857612328613952565b9050610140020160400160208101906123419190613bfa565b600381111561235257612352613be4565b141561268757600085858581811061236c5761236c613952565b90506101400201602001602081019061238591906135d3565b6001600160a01b0316634c87087d8787878181106123a5576123a5613952565b90506101400201600001356040518263ffffffff1660e01b81526004016123ce91815260200190565b61018060405180830381865afa1580156123ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124109190613ca4565b50505050505050505050915050600086868681811061243157612431613952565b90506101400201602001602081019061244a91906135d3565b6001600160a01b031663c99733a788888881811061246a5761246a613952565b905061014002016000013589898981811061248757612487613952565b9050610140020160c001356040518363ffffffff1660e01b81526004016124b8929190918252602082015260400190565b608060405180830381865afa1580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f99190613d58565b50505090506125163330838a8a8a818110611ec657611ec6613952565b61255787878781811061252b5761252b613952565b90506101400201602001602081019061254491906135d3565b82898989818110611f4d57611f4d613952565b86868681811061256957612569613952565b90506101400201602001602081019061258291906135d3565b6001600160a01b031663825b5cd68888888181106125a2576125a2613952565b90506101400201600001358989898181106125bf576125bf613952565b9050610140020160c001358a8a8a8181106125dc576125dc613952565b6040516001600160e01b031960e088901b168152600481019590955260248501939093525060806101409092020101356044820152606401600060405180830381600087803b15801561262e57600080fd5b505af1158015612642573d6000803e3d6000fd5b505050506126803388888881811061265c5761265c613952565b9050610140020160c00135846001600160a01b0316612fc29092919063ffffffff16565b5050612770565b84848481811061269957612699613952565b9050610140020160200160208101906126b291906135d3565b6001600160a01b0316631d746d838686868181106126d2576126d2613952565b9050610140020160a00160208101906126eb91906135d3565b8787878181106126fd576126fd613952565b60405160e086901b6001600160e01b03191681526001600160a01b03949094166004850152610140029190910160c00135602483015250336044820152606401600060405180830381600087803b15801561275757600080fd5b505af115801561276b573d6000803e3d6000fd5b505050505b5050808061277d90613968565b915050611cdd565b505050565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa1580156127d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f79190613ad6565b6128135760405162461bcd60e51b81526004016107a890613af1565b61283e8383600081811061282957612829613952565b905060200201602081019061045691906135d3565b6128955760405162461bcd60e51b815260206004820152602260248201527f464143544f525920524f555445523a20696e76616c6964207373436f6e74726160448201526118dd60f21b60648201526084016107a8565b6000878760018181106128aa576128aa613952565b90506020020135116128ef5760405162461bcd60e51b815260206004820152600e60248201526d57726f6e6720646563696d616c7360901b60448201526064016107a8565b600061290160408a0160208b016135d3565b905061298a8484600281811061291957612919613952565b905060200201602081019061292e91906135d3565b8585600081811061294157612941613952565b905060200201602081019061295691906135d3565b8a8a600481811061296957612969613952565b90506020020135846001600160a01b0316612e9f909392919063ffffffff16565b604080518082018252600091612a4d91908c90600290839083908082843760009201919091525050604080516020808e0282810182019093528d82529092508d918d9182919085019084908082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250612ff292505050565b90506001600160a01b038116612a9d5760405162461bcd60e51b8152602060048201526015602482015274119052531151081513c81111541313d6481413d3d3605a1b60448201526064016107a8565b612ab061043360408c0160208d016135d3565b15612af957604051600181526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a2612b39565b604051600081526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a25b9998505050505050505050565b6000805b600d5481101561083457826001600160a01b0316600d8281548110612b7157612b71613952565b6000918252602090912001546001600160a01b03161415612b955750600192915050565b80612b9f81613968565b915050612b4a565b600a8181548110610d4c57600080fd5b612bc0816107d3565b6107ba57600a805460018101825560009182527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038416908117909155604051909133917fdffbd9ded1c09446f09377de547142dcce7dc541c8b0b028142b1eba7026b9e79190a350565b6001600160a01b038116612ca95760405162461bcd60e51b815260206004820152602b60248201527f466163746f7279526f757465723a20496e76616c696420706f6f6c54656d706c60448201526a617465206164647265737360a81b60648201526084016107a8565b612cb2816118c3565b6107ba5760018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051909133917fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac9190a350565b60005b600154811015612d8c57816001600160a01b031660018281548110612d5a57612d5a613952565b6000918252602090912001546001600160a01b03161415612d7a57612d8c565b80612d8481613968565b915050612d33565b600154811015610abe57805b60018054612da691906139cc565b811015612e30576001612db982826139e3565b81548110612dc957612dc9613952565b600091825260209091200154600180546001600160a01b039092169183908110612df557612df5613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580612e2881613968565b915050612d98565b506001805480612e4257612e426139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917fc73fd5d40669565e257cbcd153784617ef26acfcc9fead31e68c0dce3ce82fb29190a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052612f0a9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526132e2565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f859190613bcb565b612f8f91906139e3565b6040516001600160a01b038516602482015260448101829052909150612f0a90859063095ea7b360e01b90606401612ed3565b6040516001600160a01b03831660248201526044810182905261278590849063a9059cbb60e01b90606401612ed3565b60006130178260058151811061300a5761300a613952565b60200260200101516118c3565b6130635760405162461bcd60e51b815260206004820152601d60248201527f42466163746f72793a2057726f6e6720506f6f6c2054656d706c61746500000060448201526064016107a8565b600060405180604001604052808460048151811061308357613083613952565b6020908102919091018101516001600160a01b0390811683526000541691015283519091506130cc90849060059081106130bf576130bf613952565b60200260200101516133b4565b91506001600160a01b0382166131305760405162461bcd60e51b8152602060048201526024808201527f42466163746f72793a20696e76616c69642062706f6f6c207a65726f206164646044820152637265737360e01b60648201526084016107a8565b6000829050806001600160a01b031663c070a6d88560008151811061315757613157613952565b602002602001015130886000808d896040518863ffffffff1660e01b81526004016131889796959493929190613df5565b6020604051808303816000875af11580156131a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cb9190613ad6565b61320e5760405162461bcd60e51b815260206004820152601460248201527311549497d253925512505312569157d09413d3d360621b60448201526064016107a8565b8360008151811061322157613221613952565b60200260200101516001600160a01b03166383b87e5a8860006002811061324a5761324a613952565b60200201518960016020020151868860038151811061326b5761326b613952565b60200260200101518b6040518663ffffffff1660e01b8152600401613294959493929190613e5b565b6020604051808303816000875af11580156132b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d79190613ad6565b505050949350505050565b6000613337826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134449092919063ffffffff16565b80519091501561278557808060200190518101906133559190613ad6565b6127855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107a8565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b6060613453848460008561345d565b90505b9392505050565b6060824710156134be5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107a8565b843b61350c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107a8565b600080866001600160a01b031685876040516135289190613ec3565b60006040518083038185875af1925050503d8060008114613565576040519150601f19603f3d011682016040523d82523d6000602084013e61356a565b606091505b509150915061357a828286613585565b979650505050505050565b60608315613594575081613456565b8251156135a45782518084602001fd5b8160405162461bcd60e51b81526004016107a89190613edf565b6001600160a01b03811681146107ba57600080fd5b6000602082840312156135e557600080fd5b8135613456816135be565b6020808252825182820181905260009190848201906040850190845b818110156136315783516001600160a01b03168352928401929184019160010161360c565b50909695505050505050565b60006020828403121561364f57600080fd5b5035919050565b60008083601f84011261366857600080fd5b50813567ffffffffffffffff81111561368057600080fd5b6020830191508360208260051b850101111561369b57600080fd5b9250929050565b6000806000806000606086880312156136ba57600080fd5b85356136c5816135be565b9450602086013567ffffffffffffffff808211156136e257600080fd5b6136ee89838a01613656565b9096509450604088013591508082111561370757600080fd5b5061371488828901613656565b969995985093965092949392505050565b6000806000806080858703121561373b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060008060008060c0878903121561377057600080fd5b863561377b816135be565b9550602087013561378b816135be565b9450604087013593506060870135925060808701356137a9816135be565b915060a08701356137b9816135be565b809150509295509295509295565b600080602083850312156137da57600080fd5b823567ffffffffffffffff808211156137f257600080fd5b818501915085601f83011261380657600080fd5b81358181111561381557600080fd5b8660206101408302850101111561382b57600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a03121561385857600080fd5b604088018981111561386957600080fd5b8897503567ffffffffffffffff8082111561388357600080fd5b61388f8b838c01613656565b909850965060608a01359150808211156138a857600080fd5b6138b48b838c01613656565b909650945060808a01359150808211156138cd57600080fd5b506138da8a828b01613656565b989b979a50959850939692959293505050565b60208082526016908201527527b1b2b0b72937baba32b91d102727aa1027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561394d5761394d61391d565b500290565b634e487b7160e01b600052603260045260246000fd5b600060001982141561397c5761397c61391d565b5060010190565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f64697370656e736560408201526872206164647265737360b81b606082015260800190565b6000828210156139de576139de61391d565b500390565b600082198211156139f6576139f661391d565b500190565b634e487b7160e01b600052603160045260246000fd5b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f666978656452617460408201526865206164647265737360b81b606082015260800190565b600082613a7757634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964205f7373436f6e7472616040820152696374206164647265737360b01b606082015260800190565b805180151581146117fe57600080fd5b600060208284031215613ae857600080fd5b61345682613ac6565b6020808252602b908201527f464143544f525920524f555445523a204e4f54204f524947494e414c2045524360408201526a32302054454d504c41544560a81b606082015260800190565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015613b8b578435613b77816135be565b841682529382019390820190600101613b64565b5085810360408701528681526001600160fb1b03871115613bab57600080fd5b8660051b9350838883830137600093010191825250979650505050505050565b600060208284031215613bdd57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613c0c57600080fd5b81356004811061345657600080fd5b60e08101818460005b6003811015613c4c5781516001600160a01b0316835260209283019290910190600101613c24565b505050606082018360005b6004811015613c76578151835260209283019290910190600101613c57565b5050509392505050565b60008060408385031215613c9357600080fd5b505080516020909101519092909150565b6000806000806000806000806000806000806101808d8f031215613cc757600080fd5b8c51613cd2816135be565b60208e0151909c50613ce3816135be565b60408e015160608f0151919c509a50613cfb816135be565b60808e015160a08f0151919a5098509650613d1860c08e01613ac6565b955060e08d015194506101008d015193506101208d015192506101408d01519150613d466101608e01613ac6565b90509295989b509295989b509295989b565b60008060008060808587031215613d6e57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081518084526020808501945080840160005b83811015613dbe57815187529582019590820190600101613da2565b509495945050505050565b8060005b6002811015612f0a5781516001600160a01b0316845260209384019390910190600101613dcd565b6001600160a01b0388811682528716602082015261012060408201819052600090613e2283820189613d8e565b91505085151560608301528415156080830152613e4260a0830185613dc9565b613e4f60e0830184613dc9565b98975050505050505050565b6001600160a01b038681168252858116602083015284811660408301528316606082015260a06080820181905260009061357a90830184613d8e565b60005b83811015613eb2578181015183820152602001613e9a565b83811115612f0a5750506000910152565b60008251613ed5818460208701613e97565b9190910192915050565b6020815260008251806020840152613efe816040850160208701613e97565b601f01601f1916919091016040019291505056fea26469706673582212201b6a3a4f25a36e842f9c585c4d52dd992864ee2912fe8429fd64dfa0fbd9063c64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103c55760003560e01c8063992e2a92116101ff578063c6580d121161011a578063e2bdeefa116100ad578063ecdda5881161007c578063ecdda58814610732578063ee3bc63514610745578063fca24bc614610758578063fdaa59bf1461076b57600080fd5b8063e2bdeefa1461070e578063e4a28a521461040f578063e525f99c14610717578063ec0930211461072a57600080fd5b8063dce2d0df116100e9578063dce2d0df146106c4578063de9a95a7146106df578063e183fb3f146106f2578063e193faad146106fb57600080fd5b8063c6580d1214610697578063c6e983d91461069f578063cb870cbf146106a8578063d629a00a146106b157600080fd5b8063b8421e2b11610192578063bfa04b8511610161578063bfa04b851461065e578063c07c00fe14610671578063c36596a61461049e578063c45a01551461068457600080fd5b8063b8421e2b14610633578063ba019dab14610646578063bc063e1a1461064e578063bc694ea21461065657600080fd5b8063b0e0d136116101ce578063b0e0d13614610605578063b19aaac61461060d578063b66806fb14610620578063b7b800a41461060557600080fd5b8063992e2a92146105cf5780639bc01b3c146105d75780639cdfa6ad146105df5780639f2c010a146105f257600080fd5b806347e14094116102ef57806376c7a3c711610282578063824493751161025157806382449375146105995780638552730a146105ac578063867378c5146105bf5780639381cd2b146105c757600080fd5b806376c7a3c7146105635780637cbf85bf1461056b5780637d28354d1461057e578063802d14221461058657600080fd5b80636c9fb612116102be5780636c9fb612146105225780636cdf90a114610535578063737e5ca0146105485780637521aff91461055057600080fd5b806347e14094146104ec57806350cbbe76146104ff578063510f3465146105125780636c45e8811461051a57600080fd5b806316d9cb3d1161036757806329ce1ec51161033657806329ce1ec5146104b5578063335b7fa2146104c857806346104ea8146104db578063475030c0146104e357600080fd5b806316d9cb3d14610483578063189d00ca14610496578063218b53821461049e578063241c7a6d146104ad57600080fd5b80631184e8d9116103a35780631184e8d91461042557806315c25dd51461044857806315d4c9eb1461045b578063165926141461047057600080fd5b80630318ad66146103ca57806303814238146103df57806309a3bbe41461040f575b600080fd5b6103dd6103d83660046135d3565b61077e565b005b6000546103f2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6104176107bd565b604051908152602001610406565b6104386104333660046135d3565b6107d3565b6040519015158152602001610406565b6104386104563660046135d3565b61083d565b61046361089e565b60405161040691906135f0565b6103dd61047e3660046135d3565b610900565b6103dd6104913660046135d3565b610ac2565b610417610b9a565b610417670de0b6b3a764000081565b610463610bb1565b6103dd6104c33660046135d3565b610c11565b6103f26104d636600461363d565b610d3c565b610463610d66565b61041760055481565b6103dd6104fa3660046135d3565b610dc6565b6103f261050d36600461363d565b610f87565b600554610417565b600954610417565b6103dd6105303660046135d3565b610f97565b6104386105433660046135d3565b61106f565b6104636110d0565b6103dd61055e36600461363d565b611130565b610417611197565b6103f261057936600461363d565b6111ac565b600854610417565b6004546103f2906001600160a01b031681565b6104176105a73660046136a2565b6111bc565b6002546103f2906001600160a01b031681565b61041761132e565b610417611345565b610417611358565b610463611376565b6103dd6105ed3660046135d3565b6113d6565b6103dd6106003660046135d3565b6115da565b610417600281565b6103dd61061b3660046135d3565b61179b565b6103f261062e36600461363d565b6117ce565b6104176106413660046135d3565b6117de565b610417600181565b610417611803565b610417611816565b6103dd61066c366004613725565b611835565b61043861067f3660046135d3565b6118c3565b6003546103f2906001600160a01b031681565b610417600081565b61041760095481565b61041760075481565b6103dd6106bf366004613757565b611924565b60065460075460408051928352602083019190915201610406565b6103dd6106ed3660046135d3565b611a94565b61041760065481565b6103dd6107093660046135d3565b611b6c565b61041760085481565b6103dd6107253660046135d3565b611b9f565b610417611c6b565b6103dd6107403660046137c7565b611c7e565b6103f261075336600461383d565b61278a565b6104386107663660046135d3565b612b46565b6103f261077936600461363d565b612ba7565b6002546001600160a01b031633146107b15760405162461bcd60e51b81526004016107a8906138ed565b60405180910390fd5b6107ba81612bb7565b50565b6107d0670de0b6b3a76400006032613933565b81565b6000805b600a5481101561083457826001600160a01b0316600a82815481106107fe576107fe613952565b6000918252602090912001546001600160a01b031614156108225750600192915050565b8061082c81613968565b9150506107d7565b50600092915050565b6000805b600b5481101561083457826001600160a01b0316600b828154811061086857610868613952565b6000918252602090912001546001600160a01b0316141561088c5750600192915050565b8061089681613968565b915050610841565b6060600d8054806020026020016040519081016040528092919081815260200182805480156108f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d8575b5050505050905090565b6002546001600160a01b0316331461092a5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b0381166109505760405162461bcd60e51b81526004016107a890613983565b60005b600d548110156109ac57816001600160a01b0316600d828154811061097a5761097a613952565b6000918252602090912001546001600160a01b0316141561099a576109ac565b806109a481613968565b915050610953565b600d54811015610abe57805b600d546109c7906001906139cc565b811015610a5257600d6109db8260016139e3565b815481106109eb576109eb613952565b600091825260209091200154600d80546001600160a01b039092169183908110610a1757610a17613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580610a4a81613968565b9150506109b8565b50600d805480610a6457610a646139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917f63fe522dcdc5f006279afe8840a87398bb3d0dbb906b848866195859621908b39190a35b5050565b6002546001600160a01b03163314610aec5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610b125760405162461bcd60e51b81526004016107a890613a11565b610b1b8161106f565b6107ba57600c805460018101825560009182527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b038416908117909155604051909133917f45ccb9b9d6b112eb7a38daf6a23bda8b4c8449d5cf64a034975a5beb8cdd37b39190a350565b6107d06402540be400670de0b6b3a7640000613a5a565b606060018054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b03163314610c3b5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610ca15760405162461bcd60e51b815260206004820152602760248201527f466163746f7279526f757465723a20496e76616c6964205f666163746f7279206044820152666164647265737360c81b60648201526084016107a8565b6003546001600160a01b031615610cf05760405162461bcd60e51b8152602060048201526013602482015272119050d513d49648105314915051164814d155606a1b60448201526064016107a8565b600380546001600160a01b0319166001600160a01b03831690811790915560405133907f1f869f1ddaa0e2e3652252b3394c05c805f54a0d5f7fb6975f785ae4f91e587190600090a350565b600d8181548110610d4c57600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600c8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b03163314610df05760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610e165760405162461bcd60e51b81526004016107a890613a7c565b60005b600b54811015610e7257816001600160a01b0316600b8281548110610e4057610e40613952565b6000918252602090912001546001600160a01b03161415610e6057610e72565b80610e6a81613968565b915050610e19565b600b54811015610abe57805b600b54610e8d906001906139cc565b811015610f1857600b610ea18260016139e3565b81548110610eb157610eb1613952565b600091825260209091200154600b80546001600160a01b039092169183908110610edd57610edd613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580610f1081613968565b915050610e7e565b50600b805480610f2a57610f2a6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917f7df5d17d768be6563796784637c80bc9204e2af0bc4ba8630f5aa2fed96ea4879190a35050565b60018181548110610d4c57600080fd5b6002546001600160a01b03163314610fc15760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116610fe75760405162461bcd60e51b81526004016107a890613a7c565b610ff08161083d565b6107ba57600b805460018101825560009182527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b038416908117909155604051909133917fcef3ce01f85c030161b431114e41e463297b68f169c1013c526b1cbc5747e5449190a350565b6000805b600c5481101561083457826001600160a01b0316600c828154811061109a5761109a613952565b6000918252602090912001546001600160a01b031614156110be5750600192915050565b806110c881613968565b915050611073565b6060600b8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b0316331461115a5760405162461bcd60e51b81526004016107a8906138ed565b600581905560405181815233907f5ee73342e684c0b848562c301fa2dc6b0146b266cfa12d4219fb04b316f7a4759060200160405180910390a250565b6107d0620f4240670de0b6b3a7640000613a5a565b600b8181548110610d4c57600080fd5b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015611205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112299190613ad6565b6112455760405162461bcd60e51b81526004016107a890613af1565b61124e8661106f565b6112ad5760405162461bcd60e51b815260206004820152602a60248201527f464143544f525920524f555445523a20496e76616c696420466978656450726960448201526918d950dbdb9d1c9858dd60b21b60648201526084016107a8565b60405163012c327560e01b81526001600160a01b0387169063012c3275906112e19033908990899089908990600401613b3c565b6020604051808303816000875af1158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190613bcb565b9695505050505050565b6107d064e8d4a51000670de0b6b3a7640000613a5a565b6107d0670de0b6b3a76400006064613933565b61136b6003670de0b6b3a7640000613a5a565b6107d09060016139e3565b6060600a8054806020026020016040519081016040528092919081815260200182805480156108f6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108d8575050505050905090565b6002546001600160a01b031633146114005760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b0381166114695760405162461bcd60e51b815260206004820152602a60248201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604482015269656e206164647265737360b01b60648201526084016107a8565b60005b600a548110156114c557816001600160a01b0316600a828154811061149357611493613952565b6000918252602090912001546001600160a01b031614156114b3576114c5565b806114bd81613968565b91505061146c565b600a54811015610abe57805b600a546114e0906001906139cc565b81101561156b57600a6114f48260016139e3565b8154811061150457611504613952565b600091825260209091200154600a80546001600160a01b03909216918390811061153057611530613952565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558061156381613968565b9150506114d1565b50600a80548061157d5761157d6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917fbbe55b1ff108e23e5ff1a6f5d36946eec15ec0ca0ded2bfed4cdcf697ca904609190a35050565b6002546001600160a01b031633146116045760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b03811661162a5760405162461bcd60e51b81526004016107a890613a11565b60005b600c5481101561168657816001600160a01b0316600c828154811061165457611654613952565b6000918252602090912001546001600160a01b0316141561167457611686565b8061167e81613968565b91505061162d565b600c54811015610abe57805b600c546116a1906001906139cc565b81101561172c57600c6116b58260016139e3565b815481106116c5576116c5613952565b600091825260209091200154600c80546001600160a01b0390921691839081106116f1576116f1613952565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558061172481613968565b915050611692565b50600c80548061173e5761173e6139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917ff1ec0697329a2e8de8cf055335547acc40fbace8712fc77aeea1ea2afbcf7e3b9190a35050565b6002546001600160a01b031633146117c55760405162461bcd60e51b81526004016107a8906138ed565b6107ba81612c3f565b600c8181548110610d4c57600080fd5b60006117e9826107d3565b156117f657505060065490565b505060075490565b919050565b6107d0600a670de0b6b3a7640000613a5a565b600161182b670de0b6b3a76400006002613933565b6107d091906139cc565b6002546001600160a01b0316331461185f5760405162461bcd60e51b81526004016107a8906138ed565b600684905560078390556008829055600981905560408051858152602081018590529081018390526060810182905233907fe6171cf0506862c0a0185f8c21dca979859d4eb63186eff63f1b3dd14926be7b9060800160405180910390a250505050565b6000805b60015481101561083457826001600160a01b0316600182815481106118ee576118ee613952565b6000918252602090912001546001600160a01b031614156119125750600192915050565b8061191c81613968565b9150506118c7565b60035460405163226e761560e01b81523360048201526001600160a01b039091169063226e761590602401602060405180830381865afa15801561196c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119909190613ad6565b6119ac5760405162461bcd60e51b81526004016107a890613af1565b6119b586612b46565b611a135760405162461bcd60e51b815260206004820152602960248201527f464143544f525920524f555445523a20496e76616c69642044697370656e73656044820152681c90dbdb9d1c9858dd60ba1b60648201526084016107a8565b6040516324ce291760e01b81526001600160a01b0386811660048301526024820186905260448201859052838116606483015282811660848301528716906324ce29179060a401600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b50505050505050505050565b6002546001600160a01b03163314611abe5760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116611ae45760405162461bcd60e51b81526004016107a890613983565b611aed81612b46565b6107ba57600d805460018101825560009182527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b038416908117909155604051909133917f78be9d87a7b2c8707b044dbf5b04c3f747b692c55ec34dcd1d7357736478789c9190a350565b6002546001600160a01b03163314611b965760405162461bcd60e51b81526004016107a8906138ed565b6107ba81612d30565b6002546001600160a01b03163314611bc95760405162461bcd60e51b81526004016107a8906138ed565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206e657720726f75746572206f776e6572000000000000000060448201526064016107a8565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907fc736654a613824c69968e0ec25ac1a428ccd49e15c28e97b5dfd2c6059757e2a90600090a350565b6107d06002670de0b6b3a7640000613a5a565b6032811115611cda5760405162461bcd60e51b815260206004820152602260248201527f466163746f7279526f757465723a20546f6f204d616e79204f7065726174696f6044820152616e7360f01b60648201526084016107a8565b60005b818110156127855760006040518060600160405280858585818110611d0457611d04613952565b905061014002016060016020810190611d1d91906135d3565b6001600160a01b03168152602001858585818110611d3d57611d3d613952565b9050610140020160a0016020810190611d5691906135d3565b6001600160a01b03168152602001858585818110611d7657611d76613952565b90506101400201610120016020810190611d9091906135d3565b6001600160a01b03166001600160a01b0316815250905060006040518060800160405280868686818110611dc657611dc6613952565b90506101400201608001358152602001868686818110611de857611de8613952565b9050610140020160c001358152602001868686818110611e0a57611e0a613952565b9050610140020160e001358152602001868686818110611e2c57611e2c613952565b905061014002016101000135815250905060006003811115611e5057611e50613be4565b858585818110611e6257611e62613952565b905061014002016040016020810190611e7b9190613bfa565b6003811115611e8c57611e8c613be4565b141561205b57611ef03330878787818110611ea957611ea9613952565b9050610140020160800135888888818110611ec657611ec6613952565b905061014002016060016020810190611edf91906135d3565b6001600160a01b0316929190612e9f565b611f76858585818110611f0557611f05613952565b905061014002016020016020810190611f1e91906135d3565b868686818110611f3057611f30613952565b9050610140020160800135878787818110611f4d57611f4d613952565b905061014002016060016020810190611f6691906135d3565b6001600160a01b03169190612f10565b6000858585818110611f8a57611f8a613952565b905061014002016020016020810190611fa391906135d3565b6001600160a01b031663c421a3fc84846040518363ffffffff1660e01b8152600401611fd0929190613c1b565b60408051808303816000875af1158015611fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120129190613c80565b509050612055338288888881811061202c5761202c613952565b9050610140020160a001602081019061204591906135d3565b6001600160a01b03169190612fc2565b50612770565b600185858581811061206f5761206f613952565b9050610140020160400160208101906120889190613bfa565b600381111561209957612099613be4565b14156123145760008585858181106120b3576120b3613952565b9050610140020160200160208101906120cc91906135d3565b6001600160a01b031663caa011488787878181106120ec576120ec613952565b90506101400201606001602081019061210591906135d3565b88888881811061211757612117613952565b9050610140020160a001602081019061213091906135d3565b89898981811061214257612142613952565b9050610140020160c001358a8a8a81811061215f5761215f613952565b6040516001600160e01b031960e089901b1681526001600160a01b0396871660048201529590941660248601525060448401919091526101006101409092020101356064820152608401602060405180830381865afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190613bcb565b9050612204333083898989818110611ec657611ec6613952565b61224586868681811061221957612219613952565b90506101400201602001602081019061223291906135d3565b82888888818110611f4d57611f4d613952565b85858581811061225757612257613952565b90506101400201602001602081019061227091906135d3565b6001600160a01b031663c98a59cf84846040518363ffffffff1660e01b815260040161229d929190613c1b565b60408051808303816000875af11580156122bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122df9190613c80565b5050612055338787878181106122f7576122f7613952565b9050610140020160c0013588888881811061202c5761202c613952565b600285858581811061232857612328613952565b9050610140020160400160208101906123419190613bfa565b600381111561235257612352613be4565b141561268757600085858581811061236c5761236c613952565b90506101400201602001602081019061238591906135d3565b6001600160a01b0316634c87087d8787878181106123a5576123a5613952565b90506101400201600001356040518263ffffffff1660e01b81526004016123ce91815260200190565b61018060405180830381865afa1580156123ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124109190613ca4565b50505050505050505050915050600086868681811061243157612431613952565b90506101400201602001602081019061244a91906135d3565b6001600160a01b031663c99733a788888881811061246a5761246a613952565b905061014002016000013589898981811061248757612487613952565b9050610140020160c001356040518363ffffffff1660e01b81526004016124b8929190918252602082015260400190565b608060405180830381865afa1580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f99190613d58565b50505090506125163330838a8a8a818110611ec657611ec6613952565b61255787878781811061252b5761252b613952565b90506101400201602001602081019061254491906135d3565b82898989818110611f4d57611f4d613952565b86868681811061256957612569613952565b90506101400201602001602081019061258291906135d3565b6001600160a01b031663825b5cd68888888181106125a2576125a2613952565b90506101400201600001358989898181106125bf576125bf613952565b9050610140020160c001358a8a8a8181106125dc576125dc613952565b6040516001600160e01b031960e088901b168152600481019590955260248501939093525060806101409092020101356044820152606401600060405180830381600087803b15801561262e57600080fd5b505af1158015612642573d6000803e3d6000fd5b505050506126803388888881811061265c5761265c613952565b9050610140020160c00135846001600160a01b0316612fc29092919063ffffffff16565b5050612770565b84848481811061269957612699613952565b9050610140020160200160208101906126b291906135d3565b6001600160a01b0316631d746d838686868181106126d2576126d2613952565b9050610140020160a00160208101906126eb91906135d3565b8787878181106126fd576126fd613952565b60405160e086901b6001600160e01b03191681526001600160a01b03949094166004850152610140029190910160c00135602483015250336044820152606401600060405180830381600087803b15801561275757600080fd5b505af115801561276b573d6000803e3d6000fd5b505050505b5050808061277d90613968565b915050611cdd565b505050565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa1580156127d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f79190613ad6565b6128135760405162461bcd60e51b81526004016107a890613af1565b61283e8383600081811061282957612829613952565b905060200201602081019061045691906135d3565b6128955760405162461bcd60e51b815260206004820152602260248201527f464143544f525920524f555445523a20696e76616c6964207373436f6e74726160448201526118dd60f21b60648201526084016107a8565b6000878760018181106128aa576128aa613952565b90506020020135116128ef5760405162461bcd60e51b815260206004820152600e60248201526d57726f6e6720646563696d616c7360901b60448201526064016107a8565b600061290160408a0160208b016135d3565b905061298a8484600281811061291957612919613952565b905060200201602081019061292e91906135d3565b8585600081811061294157612941613952565b905060200201602081019061295691906135d3565b8a8a600481811061296957612969613952565b90506020020135846001600160a01b0316612e9f909392919063ffffffff16565b604080518082018252600091612a4d91908c90600290839083908082843760009201919091525050604080516020808e0282810182019093528d82529092508d918d9182919085019084908082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250612ff292505050565b90506001600160a01b038116612a9d5760405162461bcd60e51b8152602060048201526015602482015274119052531151081513c81111541313d6481413d3d3605a1b60448201526064016107a8565b612ab061043360408c0160208d016135d3565b15612af957604051600181526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a2612b39565b604051600081526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a25b9998505050505050505050565b6000805b600d5481101561083457826001600160a01b0316600d8281548110612b7157612b71613952565b6000918252602090912001546001600160a01b03161415612b955750600192915050565b80612b9f81613968565b915050612b4a565b600a8181548110610d4c57600080fd5b612bc0816107d3565b6107ba57600a805460018101825560009182527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038416908117909155604051909133917fdffbd9ded1c09446f09377de547142dcce7dc541c8b0b028142b1eba7026b9e79190a350565b6001600160a01b038116612ca95760405162461bcd60e51b815260206004820152602b60248201527f466163746f7279526f757465723a20496e76616c696420706f6f6c54656d706c60448201526a617465206164647265737360a81b60648201526084016107a8565b612cb2816118c3565b6107ba5760018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051909133917fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac9190a350565b60005b600154811015612d8c57816001600160a01b031660018281548110612d5a57612d5a613952565b6000918252602090912001546001600160a01b03161415612d7a57612d8c565b80612d8481613968565b915050612d33565b600154811015610abe57805b60018054612da691906139cc565b811015612e30576001612db982826139e3565b81548110612dc957612dc9613952565b600091825260209091200154600180546001600160a01b039092169183908110612df557612df5613952565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580612e2881613968565b915050612d98565b506001805480612e4257612e426139fb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0384169133917fc73fd5d40669565e257cbcd153784617ef26acfcc9fead31e68c0dce3ce82fb29190a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052612f0a9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526132e2565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f859190613bcb565b612f8f91906139e3565b6040516001600160a01b038516602482015260448101829052909150612f0a90859063095ea7b360e01b90606401612ed3565b6040516001600160a01b03831660248201526044810182905261278590849063a9059cbb60e01b90606401612ed3565b60006130178260058151811061300a5761300a613952565b60200260200101516118c3565b6130635760405162461bcd60e51b815260206004820152601d60248201527f42466163746f72793a2057726f6e6720506f6f6c2054656d706c61746500000060448201526064016107a8565b600060405180604001604052808460048151811061308357613083613952565b6020908102919091018101516001600160a01b0390811683526000541691015283519091506130cc90849060059081106130bf576130bf613952565b60200260200101516133b4565b91506001600160a01b0382166131305760405162461bcd60e51b8152602060048201526024808201527f42466163746f72793a20696e76616c69642062706f6f6c207a65726f206164646044820152637265737360e01b60648201526084016107a8565b6000829050806001600160a01b031663c070a6d88560008151811061315757613157613952565b602002602001015130886000808d896040518863ffffffff1660e01b81526004016131889796959493929190613df5565b6020604051808303816000875af11580156131a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cb9190613ad6565b61320e5760405162461bcd60e51b815260206004820152601460248201527311549497d253925512505312569157d09413d3d360621b60448201526064016107a8565b8360008151811061322157613221613952565b60200260200101516001600160a01b03166383b87e5a8860006002811061324a5761324a613952565b60200201518960016020020151868860038151811061326b5761326b613952565b60200260200101518b6040518663ffffffff1660e01b8152600401613294959493929190613e5b565b6020604051808303816000875af11580156132b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d79190613ad6565b505050949350505050565b6000613337826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134449092919063ffffffff16565b80519091501561278557808060200190518101906133559190613ad6565b6127855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107a8565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b6060613453848460008561345d565b90505b9392505050565b6060824710156134be5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107a8565b843b61350c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107a8565b600080866001600160a01b031685876040516135289190613ec3565b60006040518083038185875af1925050503d8060008114613565576040519150601f19603f3d011682016040523d82523d6000602084013e61356a565b606091505b509150915061357a828286613585565b979650505050505050565b60608315613594575081613456565b8251156135a45782518084602001fd5b8160405162461bcd60e51b81526004016107a89190613edf565b6001600160a01b03811681146107ba57600080fd5b6000602082840312156135e557600080fd5b8135613456816135be565b6020808252825182820181905260009190848201906040850190845b818110156136315783516001600160a01b03168352928401929184019160010161360c565b50909695505050505050565b60006020828403121561364f57600080fd5b5035919050565b60008083601f84011261366857600080fd5b50813567ffffffffffffffff81111561368057600080fd5b6020830191508360208260051b850101111561369b57600080fd5b9250929050565b6000806000806000606086880312156136ba57600080fd5b85356136c5816135be565b9450602086013567ffffffffffffffff808211156136e257600080fd5b6136ee89838a01613656565b9096509450604088013591508082111561370757600080fd5b5061371488828901613656565b969995985093965092949392505050565b6000806000806080858703121561373b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060008060008060c0878903121561377057600080fd5b863561377b816135be565b9550602087013561378b816135be565b9450604087013593506060870135925060808701356137a9816135be565b915060a08701356137b9816135be565b809150509295509295509295565b600080602083850312156137da57600080fd5b823567ffffffffffffffff808211156137f257600080fd5b818501915085601f83011261380657600080fd5b81358181111561381557600080fd5b8660206101408302850101111561382b57600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a03121561385857600080fd5b604088018981111561386957600080fd5b8897503567ffffffffffffffff8082111561388357600080fd5b61388f8b838c01613656565b909850965060608a01359150808211156138a857600080fd5b6138b48b838c01613656565b909650945060808a01359150808211156138cd57600080fd5b506138da8a828b01613656565b989b979a50959850939692959293505050565b60208082526016908201527527b1b2b0b72937baba32b91d102727aa1027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561394d5761394d61391d565b500290565b634e487b7160e01b600052603260045260246000fd5b600060001982141561397c5761397c61391d565b5060010190565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f64697370656e736560408201526872206164647265737360b81b606082015260800190565b6000828210156139de576139de61391d565b500390565b600082198211156139f6576139f661391d565b500190565b634e487b7160e01b600052603160045260246000fd5b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f666978656452617460408201526865206164647265737360b81b606082015260800190565b600082613a7757634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964205f7373436f6e7472616040820152696374206164647265737360b01b606082015260800190565b805180151581146117fe57600080fd5b600060208284031215613ae857600080fd5b61345682613ac6565b6020808252602b908201527f464143544f525920524f555445523a204e4f54204f524947494e414c2045524360408201526a32302054454d504c41544560a81b606082015260800190565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015613b8b578435613b77816135be565b841682529382019390820190600101613b64565b5085810360408701528681526001600160fb1b03871115613bab57600080fd5b8660051b9350838883830137600093010191825250979650505050505050565b600060208284031215613bdd57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613c0c57600080fd5b81356004811061345657600080fd5b60e08101818460005b6003811015613c4c5781516001600160a01b0316835260209283019290910190600101613c24565b505050606082018360005b6004811015613c76578151835260209283019290910190600101613c57565b5050509392505050565b60008060408385031215613c9357600080fd5b505080516020909101519092909150565b6000806000806000806000806000806000806101808d8f031215613cc757600080fd5b8c51613cd2816135be565b60208e0151909c50613ce3816135be565b60408e015160608f0151919c509a50613cfb816135be565b60808e015160a08f0151919a5098509650613d1860c08e01613ac6565b955060e08d015194506101008d015193506101208d015192506101408d01519150613d466101608e01613ac6565b90509295989b509295989b509295989b565b60008060008060808587031215613d6e57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081518084526020808501945080840160005b83811015613dbe57815187529582019590820190600101613da2565b509495945050505050565b8060005b6002811015612f0a5781516001600160a01b0316845260209384019390910190600101613dcd565b6001600160a01b0388811682528716602082015261012060408201819052600090613e2283820189613d8e565b91505085151560608301528415156080830152613e4260a0830185613dc9565b613e4f60e0830184613dc9565b98975050505050505050565b6001600160a01b038681168252858116602083015284811660408301528316606082015260a06080820181905260009061357a90830184613d8e565b60005b83811015613eb2578181015183820152602001613e9a565b83811115612f0a5750506000910152565b60008251613ed5818460208701613e97565b9190910192915050565b6020815260008251806020840152613efe816040850160208701613e97565b601f01601f1916919091016040019291505056fea26469706673582212201b6a3a4f25a36e842f9c585c4d52dd992864ee2912fe8429fd64dfa0fbd9063c64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/abis/FixedRateExchange.json b/abis/FixedRateExchange.json deleted file mode 100644 index a00581a..0000000 --- a/abis/FixedRateExchange.json +++ /dev/null @@ -1,930 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "FixedRateExchange", - "sourceName": "contracts/pools/fixedRate/FixedRateExchange.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_router", - "type": "address" - }, - { - "internalType": "address", - "name": "_opcCollector", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - } - ], - "name": "ExchangeActivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "name": "ExchangeAllowedSwapperChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "baseToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fixedRate", - "type": "uint256" - } - ], - "name": "ExchangeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - } - ], - "name": "ExchangeDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "withMint", - "type": "bool" - } - ], - "name": "ExchangeMintStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newRate", - "type": "uint256" - } - ], - "name": "ExchangeRateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "feeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - } - ], - "name": "MarketFeeCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "feeToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - } - ], - "name": "OceanFeeCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "by", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseTokenSwappedAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "datatokenSwappedAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "tokenOutAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oceanFeeAmount", - "type": "uint256" - } - ], - "name": "Swapped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "TokenCollected", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "datatokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxBaseTokenAmount", - "type": "uint256" - } - ], - "name": "buyDT", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "datatokenAmount", - "type": "uint256" - } - ], - "name": "calcBaseInGivenOutDT", - "outputs": [ - { - "internalType": "uint256", - "name": "baseTokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseTokenAmountBeforeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "oceanFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "datatokenAmount", - "type": "uint256" - } - ], - "name": "calcBaseOutGivenInDT", - "outputs": [ - { - "internalType": "uint256", - "name": "baseTokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseTokenAmountBeforeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "oceanFeeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "marketFeeAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "collectBT", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "collectDT", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "collectMarketFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "collectOceanFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "address[]", - "name": "addresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "uints", - "type": "uint256[]" - } - ], - "name": "createWithDecimals", - "outputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - } - ], - "name": "generateExchangeId", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getAllowedSwapper", - "outputs": [ - { - "internalType": "address", - "name": "allowedSwapper", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getBTSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "supply", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getDTSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "supply", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getExchange", - "outputs": [ - { - "internalType": "address", - "name": "exchangeOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "datatoken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "dtDecimals", - "type": "uint256" - }, - { - "internalType": "address", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "btDecimals", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedRate", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "active", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "dtSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "btSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dtBalance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "btBalance", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "withMint", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getExchanges", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getFeesInfo", - "outputs": [ - { - "internalType": "uint256", - "name": "marketFee", - "type": "uint256" - }, - { - "internalType": "address", - "name": "marketFeeCollector", - "type": "address" - }, - { - "internalType": "uint256", - "name": "opcFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "marketFeeAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "oceanFeeAvailable", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getNumberOfExchanges", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "baseTokenAddress", - "type": "address" - } - ], - "name": "getOPCFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "getRate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "isActive", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "opcCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "datatokenAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minBaseTokenAmount", - "type": "uint256" - } - ], - "name": "sellDT", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "newAllowedSwapper", - "type": "address" - } - ], - "name": "setAllowedSwapper", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "newRate", - "type": "uint256" - } - ], - "name": "setRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - } - ], - "name": "toggleExchangeState", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "withMint", - "type": "bool" - } - ], - "name": "toggleMintState", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_newMarketFee", - "type": "uint256" - } - ], - "name": "updateMarketFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "exchangeId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_newMarketCollector", - "type": "address" - } - ], - "name": "updateMarketFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620031b9380380620031b9833981016040819052620000349162000158565b60016000556001600160a01b038216620000a55760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a2057726f6e6720526f75746572206044820152666164647265737360c81b60648201526084015b60405180910390fd5b6001600160a01b038116620001095760405162461bcd60e51b8152602060048201526024808201527f46697865645261746545786368616e67653a2057726f6e67204f5043206164646044820152637265737360e01b60648201526084016200009c565b600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000190565b80516001600160a01b03811681146200015357600080fd5b919050565b600080604083850312156200016c57600080fd5b62000177836200013b565b915062000187602084016200013b565b90509250929050565b61301980620001a06000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806379dd283611610104578063b4241429116100a2578063c66274ea11610071578063c66274ea14610590578063c99733a7146105a3578063f532129e146105b6578063f887ea40146105c957600080fd5b8063b42414291461054f578063b686bcaf14610557578063b8421e2b1461056a578063c1f6572e1461057d57600080fd5b8063855058dd116100de578063855058dd1461041d57806385fcbc2f146105055780638882387214610518578063b32b56f91461052b57600080fd5b806379dd2836146103e45780637c82ebe9146103f7578063825b5cd61461040a57600080fd5b80635acfedc71161017157806360311e951161014b57806360311e9514610378578063680819eb1461038b5780636e4c62691461039e57806371dc14b2146103b157600080fd5b80635acfedc7146103235780635c36901c146103365780635d1ca6311461036957600080fd5b80631e2e3a6b116101ad5780631e2e3a6b1461026857806324cb477e1461027d578063450dccc3146102925780634c87087d146102a557600080fd5b8063012c3275146101d457806303814238146101fa5780630b3b430d14610225575b600080fd5b6101e76101e23660046129f5565b6105dc565b6040519081526020015b60405180910390f35b60025461020d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f1565b610238610233366004612ac7565b610d51565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015260a0016101f1565b610270610e5b565b6040516101f19190612ae0565b61029061028b366004612ac7565b610eb3565b005b6102906102a0366004612ac7565b610f92565b6102b86102b3366004612ac7565b61109e565b604080516001600160a01b039d8e1681529b8d1660208d01528b0199909952999096166060890152608088019490945260a0870192909252151560c086015260e0850152610100840152610120830152610140820192909252901515610160820152610180016101f1565b610290610331366004612ac7565b6111c5565b610359610344366004612ac7565b60009081526003602052604090205460ff1690565b60405190151581526020016101f1565b604051600181526020016101f1565b610290610386366004612b24565b611280565b610290610399366004612b50565b611322565b6102906103ac366004612b72565b61140f565b6103c46103bf366004612b50565b61170d565b6040805194855260208501939093529183015260608201526080016101f1565b6102906103f2366004612baf565b611854565b610290610405366004612b24565b6118e6565b610290610418366004612b72565b611979565b61020d61042b366004612ac7565b60009081526003602081815260409283902083516101e081018552815460ff808216151583526001600160a01b03610100928390048116958401959095526001840154851696830196909652600283015484166060830152938201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015484820152600882015461012082015260098201548316610140820152600a820154610160820152600b820154610180820152600c9091015493841615156101a0820152919092049091166101c090910181905290565b6101e7610513366004612ac7565b611d7b565b610290610526366004612b50565b611f02565b6101e7610539366004612ac7565b6000908152600360208190526040909120015490565b6004546101e7565b610290610565366004612ac7565b611f79565b6101e7610578366004612bdf565b61202a565b6101e761058b366004612bfa565b61209f565b6101e761059e366004612ac7565b6120eb565b6103c46105b1366004612b50565b6123fd565b6102906105c4366004612ac7565b6124ec565b60015461020d906001600160a01b031681565b6001546000906001600160a01b0316331461063e5760405162461bcd60e51b815260206004820152601e60248201527f46697865645261746545786368616e67653a206f6e6c7920726f75746572000060448201526064015b60405180910390fd5b60006001600160a01b03168360008151811061065c5761065c612c3d565b60200260200101516001600160a01b031614156106d75760405162461bcd60e51b815260206004820152603360248201527f46697865645261746545786368616e67653a20496e76616c69642062617365546044820152726f6b656e2c20207a65726f206164647265737360681b6064820152608401610635565b6001600160a01b0384166107495760405162461bcd60e51b815260206004820152603360248201527f46697865645261746545786368616e67653a20496e76616c69642064617461746044820152726f6b656e2c20207a65726f206164647265737360681b6064820152608401610635565b836001600160a01b03168360008151811061076657610766612c3d565b60200260200101516001600160a01b031614156107eb5760405162461bcd60e51b815260206004820152603760248201527f46697865645261746545786368616e67653a20496e76616c696420646174617460448201527f6f6b656e2c2020657175616c732062617365546f6b656e0000000000000000006064820152608401610635565b816002815181106107fe576107fe612c3d565b60200260200101516000141561086d5760405162461bcd60e51b815260206004820152602e60248201527f46697865645261746545786368616e67653a20496e76616c696420657863686160448201526d6e676520726174652076616c756560901b6064820152608401610635565b6108ac8360008151811061088357610883612c3d565b6020026020010151858560018151811061089f5761089f612c3d565b602002602001015161209f565b60008181526003602081905260409091200154909150156109235760405162461bcd60e51b815260206004820152602b60248201527f46697865645261746545786368616e67653a2045786368616e676520616c726560448201526a616479206578697374732160a81b6064820152608401610635565b6000600190508260048151811061093c5761093c612c3d565b602002602001015160001415610950575060005b604051806101e001604052806001151581526020018560018151811061097857610978612c3d565b60200260200101516001600160a01b03168152602001866001600160a01b03168152602001856000815181106109b0576109b0612c3d565b60200260200101516001600160a01b03168152602001846002815181106109d9576109d9612c3d565b60200260200101518152602001846001815181106109f9576109f9612c3d565b6020026020010151815260200184600081518110610a1957610a19612c3d565b60200260200101518152602001600081526020016000815260200184600381518110610a4757610a47612c3d565b6020026020010151815260200185600281518110610a6757610a67612c3d565b60200260200101516001600160a01b031681526020016000815260200160008152602001821515815260200185600381518110610aa657610aa6612c3d565b6020908102919091018101516001600160a01b0390811690925260008581526003808352604080832086518154958801518716610100908102610100600160a81b031992151583166001600160a81b0319988916171783559288015160018084018054928a166001600160a01b031993841617905560608a0151600285018054918b1691841691909117905560808a01519584019590955560a089015160048085019190915560c08a0151600585015560e08a01516006850155848a015160078501556101208a015160088501556101408a0151600985018054918b169190931617909155610160890151600a840155610180890151600b8401556101a0890151600c90930180546101c0909a01518916909402921515909116979095169690961795909517909455815493840182559081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9092018490558551908716918691610c1457610c14612c3d565b60200260200101516001600160a01b0316837feb7a353641f7d3cc54b497ef1553fdc292b64d9cc3be8587c23dfba01f310b1987600181518110610c5a57610c5a612c3d565b602002602001015187600281518110610c7557610c75612c3d565b6020026020010151604051610c9f9291906001600160a01b03929092168252602082015260400190565b60405180910390a483600181518110610cba57610cba612c3d565b60200260200101516001600160a01b0316827fc7344c45124818d1d3a4c24ccb9b86d8b88d3bd05209b2a42b494cb32a50352960405160405180910390a383600381518110610d0b57610d0b612c3d565b60200260200101516001600160a01b0316827fcc1b4af8292e6b938f6743c78a62317c9a2d60e0d46b77776a027e53ce617c0c60405160405180910390a3509392505050565b600081815260036020818152604080842081516101e081018352815460ff808216151583526001600160a01b036101009283900481168488015260018501548116958401959095526002840154851660608401819052848801546080850152600485015460a0850152600585015460c0850152600685015460e085015260078501548385015260088501546101208501819052600986015487166101408601819052600a870154610160870152600b870154610180870152600c9096015492831615156101a0860152929091049094166101c0830152878752949093529293918291829190610e3f9061202a565b9350806101600151925080610180015191505091939590929450565b60606004805480602002602001604051908101604052809291908181526020018280548015610ea957602002820191906000526020600020905b815481526020019060010190808311610e95575b5050505050905090565b600081815260036020526040902054819061010090046001600160a01b03163314610ef05760405162461bcd60e51b815260040161063590612c53565b60008281526003602052604090205460ff1615610f4b57600082815260036020526040808220805460ff1916905551339184917f03da9148e1de78fba22de63c573465562ebf6ef878a1d3ea83790a560229984c9190a35050565b600082815260036020526040808220805460ff1916600117905551339184917fc7344c45124818d1d3a4c24ccb9b86d8b88d3bd05209b2a42b494cb32a5035299190a35050565b600081815260036020526040902054819061010090046001600160a01b03163314610fcf5760405162461bcd60e51b815260040161063590612c53565b60026000541415610ff25760405162461bcd60e51b815260040161063590612c9c565b600260009081558281526003602052604081206006810180549290558054600190910154611033916001600160a01b039182169161010090910416836125e8565b6000838152600360209081526040918290206001810154905492518481526001600160a01b039182169361010090049091169186917fecc75f4464886bee0a1c5eae61c0cb4b99c64c5e9cdebe3696217d266f8b163691015b60405180910390a45050600160005550565b600081815260036020818152604080842081516101e081018352815460ff80821615158084526001600160a01b036101009384900481169785018890526001860154811696850187905260028601548116606086018190529886015460808601819052600487015460a08701819052600588015460c08801819052600689015460e0890152600789015487890152600889015461012089015260098901548416610140890152600a890154610160890152600b890154610180890152600c9098015494851615156101a088015294909304166101c08501529597949691959194909281908190819081906111918e6120eb565b955061119c8e611d7b565b94508060e0015193508061010001519250806101a0015191505091939597999b5091939597999b565b600260005414156111e85760405162461bcd60e51b815260040161063590612c9c565b60026000818155828152600360205260408120600b8101805492905582549201549091611222916001600160a01b039081169116836125e8565b6000828152600360209081526040918290206002015491518381526001600160a01b039092169184917f457b44fd47c33fc65bfbd58d0202ad97fbed1bbc9881f56441d05fe9ebd58acf91015b60405180910390a350506001600055565b600082815260036020526040902054829061010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161063590612c53565b600083815260036020526040808220600c018054610100600160a81b0319166101006001600160a01b038716908102919091179091559051909185917fcc1b4af8292e6b938f6743c78a62317c9a2d60e0d46b77776a027e53ce617c0c9190a3505050565b600082815260036020526040902054829061010090046001600160a01b0316331461135f5760405162461bcd60e51b815260040161063590612c53565b816113b85760405162461bcd60e51b815260206004820152602360248201527f46697865645261746545786368616e67653a20526174696f206d7573742062656044820152620203e360ec1b6064820152608401610635565b6000838152600360208190526040918290200183905551339084907fe50f9919fdc524004a4ee0cb934f4734f144bec0713a52e5483b753f5de0f08c906114029086815260200190565b60405180910390a3505050565b600083815260036020526040902054839060ff1661143f5760405162461bcd60e51b815260040161063590612cd3565b600260005414156114625760405162461bcd60e51b815260040161063590612c9c565b6002600055826114845760405162461bcd60e51b815260040161063590612d1e565b6000848152600360205260409020600c015461010090046001600160a01b0316156114e7576000848152600360205260409020600c015461010090046001600160a01b031633146114e75760405162461bcd60e51b815260040161063590612d66565b6000806000806114f7888861170d565b93509350935093508584101561155e5760405162461bcd60e51b815260206004820152602660248201527f46697865645261746545786368616e67653a20546f6f20666577206261736520604482015265746f6b656e7360d01b6064820152608401610635565b6000888152600360205260409020600b015461157a9083612650565b6000898152600360205260409020600b810191909155600a015461159e9082612650565b6000898152600360205260409020600a810191909155600101546115cd906001600160a01b031633308a61265c565b6000888152600360205260409020600601546115e99088612650565b6000898152600360205260409020600681019190915560070154841115611643576000888152600360205260409020805460029091015461163e916001600160a01b039182169161010090910416338761265c565b61168d565b60008881526003602052604090206007015461165f908461269a565b600089815260036020526040902060078101919091556002015461168d906001600160a01b031633866125e8565b6000888152600360209081526040918290206002015482518781529182018a90526001600160a01b0316918101919091526060810182905260808101839052339089907f71999bcde73cf4958b3a13dcbc60ff31366318eb6e67b45c93725aa07f89cbd29060a0015b60405180910390a350506001600055505050505050565b600082815260036020526040812054819081908190869060ff166117435760405162461bcd60e51b815260040161063590612cd3565b6000878152600360205260409020600401546117bd90670de0b6b3a7640000906117b79061177290600a612eb6565b60008b8152600360205260409020600501546117b79061179390600a612eb6565b60008d815260036020819052604090912001546117b1908d906126a6565b906126a6565b906126b2565b600088815260036020526040812060020154919550906117e5906001600160a01b031661202a565b9050801561180657611803670de0b6b3a76400006117b787846126a6565b93505b60008881526003602052604090206008015461183190670de0b6b3a7640000906117b79088906126a6565b925061184784611841878661269a565b9061269a565b9550505092959194509250565b600082815260036020526040902054829061010090046001600160a01b031633146118915760405162461bcd60e51b815260040161063590612c53565b600083815260036020908152604091829020600c01805460ff19168515159081179091559151918252339185917fe28e899e0f5d6fba0c8d73d1888083bcc62d4d9806d2e26fcf1f607c3ed52f539101611402565b6000828152600360205260409020600901546001600160a01b031633146119485760405162461bcd60e51b81526020600482015260166024820152753737ba1036b0b935b2ba2332b2a1b7b63632b1ba37b960511b6044820152606401610635565b60009182526003602052604090912060090180546001600160a01b0319166001600160a01b03909216919091179055565b600083815260036020526040902054839060ff166119a95760405162461bcd60e51b815260040161063590612cd3565b600260005414156119cc5760405162461bcd60e51b815260040161063590612c9c565b6002600055826119ee5760405162461bcd60e51b815260040161063590612d1e565b6000848152600360205260409020600c015461010090046001600160a01b031615611a51576000848152600360205260409020600c015461010090046001600160a01b03163314611a515760405162461bcd60e51b815260040161063590612d66565b600080600080611a6188886123fd565b935093509350935085841115611ac95760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610635565b6000888152600360205260409020600b0154611ae59083612650565b6000898152600360205260409020600b810191909155600a0154611b099082612650565b6000898152600360205260409020600a81019190915560020154611b38906001600160a01b031633308761265c565b600088815260036020526040902060070154611b549084612650565b6000898152600360205260409020600781019190915560060154871115611cc4576000888152600360205260409020600c015460ff168015611c0d5750600088815260036020526040908190206001015490516355138f0d60e11b81523060048201526001600160a01b039091169063aa271e1a90602401602060405180830381865afa158015611be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0d9190612ec2565b15611c8b57600088815260036020526040908190206001015490516340c10f1960e01b8152336004820152602481018990526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015611c6e57600080fd5b505af1158015611c82573d6000803e3d6000fd5b50505050611d0e565b60008881526003602052604090208054600190910154611cbf916001600160a01b039182169161010090910416338a61265c565b611d0e565b600088815260036020526040902060060154611ce0908861269a565b6000898152600360205260409020600681019190915560010154611d0e906001600160a01b031633896125e8565b6000888152600360209081526040918290206001015482518781529182018a90526001600160a01b0316918101919091526060810182905260808101839052339089907f71999bcde73cf4958b3a13dcbc60ff31366318eb6e67b45c93725aa07f89cbd29060a0016116f6565b60008181526003602052604081205460ff16611d9957506000919050565b6000828152600360205260408082206002810154905491516370a0823160e01b81526101009092046001600160a01b03908116600484015216906370a0823190602401602060405180830381865afa158015611df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1d9190612edf565b600084815260036020526040808220600281015490549151636eb1769f60e11b81526001600160a01b0361010090930483166004820152306024820152939450919291169063dd62ed3e90604401602060405180830381865afa158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eac9190612edf565b905080821015611eda57600084815260036020526040902060070154611ed3908390612650565b9250611efa565b600084815260036020526040902060070154611ef7908290612650565b92505b50505b919050565b6000828152600360205260409020600901546001600160a01b03163314611f645760405162461bcd60e51b81526020600482015260166024820152753737ba1036b0b935b2ba2332b2a1b7b63632b1ba37b960511b6044820152606401610635565b60009182526003602052604090912060080155565b60026000541415611f9c5760405162461bcd60e51b815260040161063590612c9c565b60026000818155828152600360205260408120600a8101805492905560098101549201549091611fd9916001600160a01b039081169116836125e8565b6000828152600360209081526040918290206002015491518381526001600160a01b039092169184917f192a3cd95e40313e0e12c28b398e31633936e38d134419161f883c8d64079055910161126f565b60015460405163b8421e2b60e01b81526001600160a01b038381166004830152600092169063b8421e2b90602401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190612edf565b92915050565b604080516001600160a01b0380861660208301528085169282019290925290821660608201526000906080016040516020818303038152906040528051906020012090505b9392505050565b60008181526003602052604081205460ff1661210957506000919050565b6000828152600360205260409020600c015460ff1680156121a15750600082815260036020526040908190206001015490516355138f0d60e11b81523060048201526001600160a01b039091169063aa271e1a90602401602060405180830381865afa15801561217d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a19190612ec2565b156122a6576000828152600360209081526040918290206001015482516318160ddd60e01b815292516001600160a01b03909116926318160ddd9260048083019391928290030181865afa1580156121fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122219190612edf565b600083815260036020908152604091829020600101548251631aa93a7560e11b815292516001600160a01b039091169263355274ea9260048083019391928290030181865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c9190612edf565b6120999190612ef8565b6000828152600360205260408082206001810154905491516370a0823160e01b81526101009092046001600160a01b03908116600484015216906370a0823190602401602060405180830381865afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190612edf565b600084815260036020526040808220600181015490549151636eb1769f60e11b81526001600160a01b0361010090930483166004820152306024820152939450919291169063dd62ed3e90604401602060405180830381865afa158015612395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b99190612edf565b9050808210156123e057600084815260036020526040902060060154611ed3908390612650565b600084815260036020526040902060060154611ef7908290612650565b600082815260036020526040812054819081908190869060ff166124335760405162461bcd60e51b815260040161063590612cd3565b60008781526003602052604090206004015461246290670de0b6b3a7640000906117b79061177290600a612eb6565b6000888152600360205260408120600201549195509061248a906001600160a01b031661202a565b905080156124ab576124a8670de0b6b3a76400006117b787846126a6565b93505b6000888152600360205260409020600801546124d690670de0b6b3a7640000906117b79088906126a6565b9250611847846124e68786612650565b90612650565b600081815260036020526040902054819061010090046001600160a01b031633146125295760405162461bcd60e51b815260040161063590612c53565b6002600054141561254c5760405162461bcd60e51b815260040161063590612c9c565b600260008181558381526003602052604081206007810180549290558054920154909161258b916001600160a01b0390811691610100900416836125e8565b6000838152600360209081526040918290206002810154905492518481526001600160a01b039182169361010090049091169186917fecc75f4464886bee0a1c5eae61c0cb4b99c64c5e9cdebe3696217d266f8b1636910161108c565b6040516001600160a01b03831660248201526044810182905261264b90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526126be565b505050565b60006120e48284612f0f565b6040516001600160a01b03808516602483015283166044820152606481018290526126949085906323b872dd60e01b90608401612614565b50505050565b60006120e48284612ef8565b60006120e48284612f27565b60006120e48284612f46565b6000612713826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127909092919063ffffffff16565b80519091501561264b57808060200190518101906127319190612ec2565b61264b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610635565b606061279f84846000856127a7565b949350505050565b6060824710156128085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610635565b843b6128565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610635565b600080866001600160a01b031685876040516128729190612f94565b60006040518083038185875af1925050503d80600081146128af576040519150601f19603f3d011682016040523d82523d6000602084013e6128b4565b606091505b50915091506128c48282866128cf565b979650505050505050565b606083156128de5750816120e4565b8251156128ee5782518084602001fd5b8160405162461bcd60e51b81526004016106359190612fb0565b80356001600160a01b0381168114611efd57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561295e5761295e61291f565b604052919050565b600067ffffffffffffffff8211156129805761298061291f565b5060051b60200190565b600082601f83011261299b57600080fd5b813560206129b06129ab83612966565b612935565b82815260059290921b840181019181810190868411156129cf57600080fd5b8286015b848110156129ea57803583529183019183016129d3565b509695505050505050565b600080600060608486031215612a0a57600080fd5b612a1384612908565b925060208085013567ffffffffffffffff80821115612a3157600080fd5b818701915087601f830112612a4557600080fd5b8135612a536129ab82612966565b81815260059190911b8301840190848101908a831115612a7257600080fd5b938501935b82851015612a9757612a8885612908565b82529385019390850190612a77565b965050506040870135925080831115612aaf57600080fd5b5050612abd8682870161298a565b9150509250925092565b600060208284031215612ad957600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015612b1857835183529284019291840191600101612afc565b50909695505050505050565b60008060408385031215612b3757600080fd5b82359150612b4760208401612908565b90509250929050565b60008060408385031215612b6357600080fd5b50508035926020909101359150565b600080600060608486031215612b8757600080fd5b505081359360208301359350604090920135919050565b8015158114612bac57600080fd5b50565b60008060408385031215612bc257600080fd5b823591506020830135612bd481612b9e565b809150509250929050565b600060208284031215612bf157600080fd5b6120e482612908565b600080600060608486031215612c0f57600080fd5b612c1884612908565b9250612c2660208501612908565b9150612c3460408501612908565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b60208082526029908201527f46697865645261746545786368616e67653a20696e76616c69642065786368616040820152683733b29037bbb732b960b91b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252602b908201527f46697865645261746545786368616e67653a2045786368616e676520646f657360408201526a206e6f742065786973742160a81b606082015260800190565b60208082526028908201527f46697865645261746545786368616e67653a207a65726f2064617461746f6b656040820152671b88185b5bdd5b9d60c21b606082015260800190565b60208082526036908201527f46697865645261746545786368616e67653a205468697320616464726573732060408201527506973206e6f7420616c6c6f77656420746f20737761760541b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e0d578160001904821115612df357612df3612dbc565b80851615612e0057918102915b93841c9390800290612dd7565b509250929050565b600082612e2457506001612099565b81612e3157506000612099565b8160018114612e475760028114612e5157612e6d565b6001915050612099565b60ff841115612e6257612e62612dbc565b50506001821b612099565b5060208310610133831016604e8410600b8410161715612e90575081810a612099565b612e9a8383612dd2565b8060001904821115612eae57612eae612dbc565b029392505050565b60006120e48383612e15565b600060208284031215612ed457600080fd5b81516120e481612b9e565b600060208284031215612ef157600080fd5b5051919050565b600082821015612f0a57612f0a612dbc565b500390565b60008219821115612f2257612f22612dbc565b500190565b6000816000190483118215151615612f4157612f41612dbc565b500290565b600082612f6357634e487b7160e01b600052601260045260246000fd5b500490565b60005b83811015612f83578181015183820152602001612f6b565b838111156126945750506000910152565b60008251612fa6818460208701612f68565b9190910192915050565b6020815260008251806020840152612fcf816040850160208701612f68565b601f01601f1916919091016040019291505056fea26469706673582212207a39153979ea587416600b8146b451020b2f3248d1f1f05112a77e65cae3d03f64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806379dd283611610104578063b4241429116100a2578063c66274ea11610071578063c66274ea14610590578063c99733a7146105a3578063f532129e146105b6578063f887ea40146105c957600080fd5b8063b42414291461054f578063b686bcaf14610557578063b8421e2b1461056a578063c1f6572e1461057d57600080fd5b8063855058dd116100de578063855058dd1461041d57806385fcbc2f146105055780638882387214610518578063b32b56f91461052b57600080fd5b806379dd2836146103e45780637c82ebe9146103f7578063825b5cd61461040a57600080fd5b80635acfedc71161017157806360311e951161014b57806360311e9514610378578063680819eb1461038b5780636e4c62691461039e57806371dc14b2146103b157600080fd5b80635acfedc7146103235780635c36901c146103365780635d1ca6311461036957600080fd5b80631e2e3a6b116101ad5780631e2e3a6b1461026857806324cb477e1461027d578063450dccc3146102925780634c87087d146102a557600080fd5b8063012c3275146101d457806303814238146101fa5780630b3b430d14610225575b600080fd5b6101e76101e23660046129f5565b6105dc565b6040519081526020015b60405180910390f35b60025461020d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f1565b610238610233366004612ac7565b610d51565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015260a0016101f1565b610270610e5b565b6040516101f19190612ae0565b61029061028b366004612ac7565b610eb3565b005b6102906102a0366004612ac7565b610f92565b6102b86102b3366004612ac7565b61109e565b604080516001600160a01b039d8e1681529b8d1660208d01528b0199909952999096166060890152608088019490945260a0870192909252151560c086015260e0850152610100840152610120830152610140820192909252901515610160820152610180016101f1565b610290610331366004612ac7565b6111c5565b610359610344366004612ac7565b60009081526003602052604090205460ff1690565b60405190151581526020016101f1565b604051600181526020016101f1565b610290610386366004612b24565b611280565b610290610399366004612b50565b611322565b6102906103ac366004612b72565b61140f565b6103c46103bf366004612b50565b61170d565b6040805194855260208501939093529183015260608201526080016101f1565b6102906103f2366004612baf565b611854565b610290610405366004612b24565b6118e6565b610290610418366004612b72565b611979565b61020d61042b366004612ac7565b60009081526003602081815260409283902083516101e081018552815460ff808216151583526001600160a01b03610100928390048116958401959095526001840154851696830196909652600283015484166060830152938201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015484820152600882015461012082015260098201548316610140820152600a820154610160820152600b820154610180820152600c9091015493841615156101a0820152919092049091166101c090910181905290565b6101e7610513366004612ac7565b611d7b565b610290610526366004612b50565b611f02565b6101e7610539366004612ac7565b6000908152600360208190526040909120015490565b6004546101e7565b610290610565366004612ac7565b611f79565b6101e7610578366004612bdf565b61202a565b6101e761058b366004612bfa565b61209f565b6101e761059e366004612ac7565b6120eb565b6103c46105b1366004612b50565b6123fd565b6102906105c4366004612ac7565b6124ec565b60015461020d906001600160a01b031681565b6001546000906001600160a01b0316331461063e5760405162461bcd60e51b815260206004820152601e60248201527f46697865645261746545786368616e67653a206f6e6c7920726f75746572000060448201526064015b60405180910390fd5b60006001600160a01b03168360008151811061065c5761065c612c3d565b60200260200101516001600160a01b031614156106d75760405162461bcd60e51b815260206004820152603360248201527f46697865645261746545786368616e67653a20496e76616c69642062617365546044820152726f6b656e2c20207a65726f206164647265737360681b6064820152608401610635565b6001600160a01b0384166107495760405162461bcd60e51b815260206004820152603360248201527f46697865645261746545786368616e67653a20496e76616c69642064617461746044820152726f6b656e2c20207a65726f206164647265737360681b6064820152608401610635565b836001600160a01b03168360008151811061076657610766612c3d565b60200260200101516001600160a01b031614156107eb5760405162461bcd60e51b815260206004820152603760248201527f46697865645261746545786368616e67653a20496e76616c696420646174617460448201527f6f6b656e2c2020657175616c732062617365546f6b656e0000000000000000006064820152608401610635565b816002815181106107fe576107fe612c3d565b60200260200101516000141561086d5760405162461bcd60e51b815260206004820152602e60248201527f46697865645261746545786368616e67653a20496e76616c696420657863686160448201526d6e676520726174652076616c756560901b6064820152608401610635565b6108ac8360008151811061088357610883612c3d565b6020026020010151858560018151811061089f5761089f612c3d565b602002602001015161209f565b60008181526003602081905260409091200154909150156109235760405162461bcd60e51b815260206004820152602b60248201527f46697865645261746545786368616e67653a2045786368616e676520616c726560448201526a616479206578697374732160a81b6064820152608401610635565b6000600190508260048151811061093c5761093c612c3d565b602002602001015160001415610950575060005b604051806101e001604052806001151581526020018560018151811061097857610978612c3d565b60200260200101516001600160a01b03168152602001866001600160a01b03168152602001856000815181106109b0576109b0612c3d565b60200260200101516001600160a01b03168152602001846002815181106109d9576109d9612c3d565b60200260200101518152602001846001815181106109f9576109f9612c3d565b6020026020010151815260200184600081518110610a1957610a19612c3d565b60200260200101518152602001600081526020016000815260200184600381518110610a4757610a47612c3d565b6020026020010151815260200185600281518110610a6757610a67612c3d565b60200260200101516001600160a01b031681526020016000815260200160008152602001821515815260200185600381518110610aa657610aa6612c3d565b6020908102919091018101516001600160a01b0390811690925260008581526003808352604080832086518154958801518716610100908102610100600160a81b031992151583166001600160a81b0319988916171783559288015160018084018054928a166001600160a01b031993841617905560608a0151600285018054918b1691841691909117905560808a01519584019590955560a089015160048085019190915560c08a0151600585015560e08a01516006850155848a015160078501556101208a015160088501556101408a0151600985018054918b169190931617909155610160890151600a840155610180890151600b8401556101a0890151600c90930180546101c0909a01518916909402921515909116979095169690961795909517909455815493840182559081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9092018490558551908716918691610c1457610c14612c3d565b60200260200101516001600160a01b0316837feb7a353641f7d3cc54b497ef1553fdc292b64d9cc3be8587c23dfba01f310b1987600181518110610c5a57610c5a612c3d565b602002602001015187600281518110610c7557610c75612c3d565b6020026020010151604051610c9f9291906001600160a01b03929092168252602082015260400190565b60405180910390a483600181518110610cba57610cba612c3d565b60200260200101516001600160a01b0316827fc7344c45124818d1d3a4c24ccb9b86d8b88d3bd05209b2a42b494cb32a50352960405160405180910390a383600381518110610d0b57610d0b612c3d565b60200260200101516001600160a01b0316827fcc1b4af8292e6b938f6743c78a62317c9a2d60e0d46b77776a027e53ce617c0c60405160405180910390a3509392505050565b600081815260036020818152604080842081516101e081018352815460ff808216151583526001600160a01b036101009283900481168488015260018501548116958401959095526002840154851660608401819052848801546080850152600485015460a0850152600585015460c0850152600685015460e085015260078501548385015260088501546101208501819052600986015487166101408601819052600a870154610160870152600b870154610180870152600c9096015492831615156101a0860152929091049094166101c0830152878752949093529293918291829190610e3f9061202a565b9350806101600151925080610180015191505091939590929450565b60606004805480602002602001604051908101604052809291908181526020018280548015610ea957602002820191906000526020600020905b815481526020019060010190808311610e95575b5050505050905090565b600081815260036020526040902054819061010090046001600160a01b03163314610ef05760405162461bcd60e51b815260040161063590612c53565b60008281526003602052604090205460ff1615610f4b57600082815260036020526040808220805460ff1916905551339184917f03da9148e1de78fba22de63c573465562ebf6ef878a1d3ea83790a560229984c9190a35050565b600082815260036020526040808220805460ff1916600117905551339184917fc7344c45124818d1d3a4c24ccb9b86d8b88d3bd05209b2a42b494cb32a5035299190a35050565b600081815260036020526040902054819061010090046001600160a01b03163314610fcf5760405162461bcd60e51b815260040161063590612c53565b60026000541415610ff25760405162461bcd60e51b815260040161063590612c9c565b600260009081558281526003602052604081206006810180549290558054600190910154611033916001600160a01b039182169161010090910416836125e8565b6000838152600360209081526040918290206001810154905492518481526001600160a01b039182169361010090049091169186917fecc75f4464886bee0a1c5eae61c0cb4b99c64c5e9cdebe3696217d266f8b163691015b60405180910390a45050600160005550565b600081815260036020818152604080842081516101e081018352815460ff80821615158084526001600160a01b036101009384900481169785018890526001860154811696850187905260028601548116606086018190529886015460808601819052600487015460a08701819052600588015460c08801819052600689015460e0890152600789015487890152600889015461012089015260098901548416610140890152600a890154610160890152600b890154610180890152600c9098015494851615156101a088015294909304166101c08501529597949691959194909281908190819081906111918e6120eb565b955061119c8e611d7b565b94508060e0015193508061010001519250806101a0015191505091939597999b5091939597999b565b600260005414156111e85760405162461bcd60e51b815260040161063590612c9c565b60026000818155828152600360205260408120600b8101805492905582549201549091611222916001600160a01b039081169116836125e8565b6000828152600360209081526040918290206002015491518381526001600160a01b039092169184917f457b44fd47c33fc65bfbd58d0202ad97fbed1bbc9881f56441d05fe9ebd58acf91015b60405180910390a350506001600055565b600082815260036020526040902054829061010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161063590612c53565b600083815260036020526040808220600c018054610100600160a81b0319166101006001600160a01b038716908102919091179091559051909185917fcc1b4af8292e6b938f6743c78a62317c9a2d60e0d46b77776a027e53ce617c0c9190a3505050565b600082815260036020526040902054829061010090046001600160a01b0316331461135f5760405162461bcd60e51b815260040161063590612c53565b816113b85760405162461bcd60e51b815260206004820152602360248201527f46697865645261746545786368616e67653a20526174696f206d7573742062656044820152620203e360ec1b6064820152608401610635565b6000838152600360208190526040918290200183905551339084907fe50f9919fdc524004a4ee0cb934f4734f144bec0713a52e5483b753f5de0f08c906114029086815260200190565b60405180910390a3505050565b600083815260036020526040902054839060ff1661143f5760405162461bcd60e51b815260040161063590612cd3565b600260005414156114625760405162461bcd60e51b815260040161063590612c9c565b6002600055826114845760405162461bcd60e51b815260040161063590612d1e565b6000848152600360205260409020600c015461010090046001600160a01b0316156114e7576000848152600360205260409020600c015461010090046001600160a01b031633146114e75760405162461bcd60e51b815260040161063590612d66565b6000806000806114f7888861170d565b93509350935093508584101561155e5760405162461bcd60e51b815260206004820152602660248201527f46697865645261746545786368616e67653a20546f6f20666577206261736520604482015265746f6b656e7360d01b6064820152608401610635565b6000888152600360205260409020600b015461157a9083612650565b6000898152600360205260409020600b810191909155600a015461159e9082612650565b6000898152600360205260409020600a810191909155600101546115cd906001600160a01b031633308a61265c565b6000888152600360205260409020600601546115e99088612650565b6000898152600360205260409020600681019190915560070154841115611643576000888152600360205260409020805460029091015461163e916001600160a01b039182169161010090910416338761265c565b61168d565b60008881526003602052604090206007015461165f908461269a565b600089815260036020526040902060078101919091556002015461168d906001600160a01b031633866125e8565b6000888152600360209081526040918290206002015482518781529182018a90526001600160a01b0316918101919091526060810182905260808101839052339089907f71999bcde73cf4958b3a13dcbc60ff31366318eb6e67b45c93725aa07f89cbd29060a0015b60405180910390a350506001600055505050505050565b600082815260036020526040812054819081908190869060ff166117435760405162461bcd60e51b815260040161063590612cd3565b6000878152600360205260409020600401546117bd90670de0b6b3a7640000906117b79061177290600a612eb6565b60008b8152600360205260409020600501546117b79061179390600a612eb6565b60008d815260036020819052604090912001546117b1908d906126a6565b906126a6565b906126b2565b600088815260036020526040812060020154919550906117e5906001600160a01b031661202a565b9050801561180657611803670de0b6b3a76400006117b787846126a6565b93505b60008881526003602052604090206008015461183190670de0b6b3a7640000906117b79088906126a6565b925061184784611841878661269a565b9061269a565b9550505092959194509250565b600082815260036020526040902054829061010090046001600160a01b031633146118915760405162461bcd60e51b815260040161063590612c53565b600083815260036020908152604091829020600c01805460ff19168515159081179091559151918252339185917fe28e899e0f5d6fba0c8d73d1888083bcc62d4d9806d2e26fcf1f607c3ed52f539101611402565b6000828152600360205260409020600901546001600160a01b031633146119485760405162461bcd60e51b81526020600482015260166024820152753737ba1036b0b935b2ba2332b2a1b7b63632b1ba37b960511b6044820152606401610635565b60009182526003602052604090912060090180546001600160a01b0319166001600160a01b03909216919091179055565b600083815260036020526040902054839060ff166119a95760405162461bcd60e51b815260040161063590612cd3565b600260005414156119cc5760405162461bcd60e51b815260040161063590612c9c565b6002600055826119ee5760405162461bcd60e51b815260040161063590612d1e565b6000848152600360205260409020600c015461010090046001600160a01b031615611a51576000848152600360205260409020600c015461010090046001600160a01b03163314611a515760405162461bcd60e51b815260040161063590612d66565b600080600080611a6188886123fd565b935093509350935085841115611ac95760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610635565b6000888152600360205260409020600b0154611ae59083612650565b6000898152600360205260409020600b810191909155600a0154611b099082612650565b6000898152600360205260409020600a81019190915560020154611b38906001600160a01b031633308761265c565b600088815260036020526040902060070154611b549084612650565b6000898152600360205260409020600781019190915560060154871115611cc4576000888152600360205260409020600c015460ff168015611c0d5750600088815260036020526040908190206001015490516355138f0d60e11b81523060048201526001600160a01b039091169063aa271e1a90602401602060405180830381865afa158015611be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0d9190612ec2565b15611c8b57600088815260036020526040908190206001015490516340c10f1960e01b8152336004820152602481018990526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015611c6e57600080fd5b505af1158015611c82573d6000803e3d6000fd5b50505050611d0e565b60008881526003602052604090208054600190910154611cbf916001600160a01b039182169161010090910416338a61265c565b611d0e565b600088815260036020526040902060060154611ce0908861269a565b6000898152600360205260409020600681019190915560010154611d0e906001600160a01b031633896125e8565b6000888152600360209081526040918290206001015482518781529182018a90526001600160a01b0316918101919091526060810182905260808101839052339089907f71999bcde73cf4958b3a13dcbc60ff31366318eb6e67b45c93725aa07f89cbd29060a0016116f6565b60008181526003602052604081205460ff16611d9957506000919050565b6000828152600360205260408082206002810154905491516370a0823160e01b81526101009092046001600160a01b03908116600484015216906370a0823190602401602060405180830381865afa158015611df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1d9190612edf565b600084815260036020526040808220600281015490549151636eb1769f60e11b81526001600160a01b0361010090930483166004820152306024820152939450919291169063dd62ed3e90604401602060405180830381865afa158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eac9190612edf565b905080821015611eda57600084815260036020526040902060070154611ed3908390612650565b9250611efa565b600084815260036020526040902060070154611ef7908290612650565b92505b50505b919050565b6000828152600360205260409020600901546001600160a01b03163314611f645760405162461bcd60e51b81526020600482015260166024820152753737ba1036b0b935b2ba2332b2a1b7b63632b1ba37b960511b6044820152606401610635565b60009182526003602052604090912060080155565b60026000541415611f9c5760405162461bcd60e51b815260040161063590612c9c565b60026000818155828152600360205260408120600a8101805492905560098101549201549091611fd9916001600160a01b039081169116836125e8565b6000828152600360209081526040918290206002015491518381526001600160a01b039092169184917f192a3cd95e40313e0e12c28b398e31633936e38d134419161f883c8d64079055910161126f565b60015460405163b8421e2b60e01b81526001600160a01b038381166004830152600092169063b8421e2b90602401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190612edf565b92915050565b604080516001600160a01b0380861660208301528085169282019290925290821660608201526000906080016040516020818303038152906040528051906020012090505b9392505050565b60008181526003602052604081205460ff1661210957506000919050565b6000828152600360205260409020600c015460ff1680156121a15750600082815260036020526040908190206001015490516355138f0d60e11b81523060048201526001600160a01b039091169063aa271e1a90602401602060405180830381865afa15801561217d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a19190612ec2565b156122a6576000828152600360209081526040918290206001015482516318160ddd60e01b815292516001600160a01b03909116926318160ddd9260048083019391928290030181865afa1580156121fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122219190612edf565b600083815260036020908152604091829020600101548251631aa93a7560e11b815292516001600160a01b039091169263355274ea9260048083019391928290030181865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c9190612edf565b6120999190612ef8565b6000828152600360205260408082206001810154905491516370a0823160e01b81526101009092046001600160a01b03908116600484015216906370a0823190602401602060405180830381865afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190612edf565b600084815260036020526040808220600181015490549151636eb1769f60e11b81526001600160a01b0361010090930483166004820152306024820152939450919291169063dd62ed3e90604401602060405180830381865afa158015612395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b99190612edf565b9050808210156123e057600084815260036020526040902060060154611ed3908390612650565b600084815260036020526040902060060154611ef7908290612650565b600082815260036020526040812054819081908190869060ff166124335760405162461bcd60e51b815260040161063590612cd3565b60008781526003602052604090206004015461246290670de0b6b3a7640000906117b79061177290600a612eb6565b6000888152600360205260408120600201549195509061248a906001600160a01b031661202a565b905080156124ab576124a8670de0b6b3a76400006117b787846126a6565b93505b6000888152600360205260409020600801546124d690670de0b6b3a7640000906117b79088906126a6565b9250611847846124e68786612650565b90612650565b600081815260036020526040902054819061010090046001600160a01b031633146125295760405162461bcd60e51b815260040161063590612c53565b6002600054141561254c5760405162461bcd60e51b815260040161063590612c9c565b600260008181558381526003602052604081206007810180549290558054920154909161258b916001600160a01b0390811691610100900416836125e8565b6000838152600360209081526040918290206002810154905492518481526001600160a01b039182169361010090049091169186917fecc75f4464886bee0a1c5eae61c0cb4b99c64c5e9cdebe3696217d266f8b1636910161108c565b6040516001600160a01b03831660248201526044810182905261264b90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526126be565b505050565b60006120e48284612f0f565b6040516001600160a01b03808516602483015283166044820152606481018290526126949085906323b872dd60e01b90608401612614565b50505050565b60006120e48284612ef8565b60006120e48284612f27565b60006120e48284612f46565b6000612713826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127909092919063ffffffff16565b80519091501561264b57808060200190518101906127319190612ec2565b61264b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610635565b606061279f84846000856127a7565b949350505050565b6060824710156128085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610635565b843b6128565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610635565b600080866001600160a01b031685876040516128729190612f94565b60006040518083038185875af1925050503d80600081146128af576040519150601f19603f3d011682016040523d82523d6000602084013e6128b4565b606091505b50915091506128c48282866128cf565b979650505050505050565b606083156128de5750816120e4565b8251156128ee5782518084602001fd5b8160405162461bcd60e51b81526004016106359190612fb0565b80356001600160a01b0381168114611efd57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561295e5761295e61291f565b604052919050565b600067ffffffffffffffff8211156129805761298061291f565b5060051b60200190565b600082601f83011261299b57600080fd5b813560206129b06129ab83612966565b612935565b82815260059290921b840181019181810190868411156129cf57600080fd5b8286015b848110156129ea57803583529183019183016129d3565b509695505050505050565b600080600060608486031215612a0a57600080fd5b612a1384612908565b925060208085013567ffffffffffffffff80821115612a3157600080fd5b818701915087601f830112612a4557600080fd5b8135612a536129ab82612966565b81815260059190911b8301840190848101908a831115612a7257600080fd5b938501935b82851015612a9757612a8885612908565b82529385019390850190612a77565b965050506040870135925080831115612aaf57600080fd5b5050612abd8682870161298a565b9150509250925092565b600060208284031215612ad957600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015612b1857835183529284019291840191600101612afc565b50909695505050505050565b60008060408385031215612b3757600080fd5b82359150612b4760208401612908565b90509250929050565b60008060408385031215612b6357600080fd5b50508035926020909101359150565b600080600060608486031215612b8757600080fd5b505081359360208301359350604090920135919050565b8015158114612bac57600080fd5b50565b60008060408385031215612bc257600080fd5b823591506020830135612bd481612b9e565b809150509250929050565b600060208284031215612bf157600080fd5b6120e482612908565b600080600060608486031215612c0f57600080fd5b612c1884612908565b9250612c2660208501612908565b9150612c3460408501612908565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b60208082526029908201527f46697865645261746545786368616e67653a20696e76616c69642065786368616040820152683733b29037bbb732b960b91b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252602b908201527f46697865645261746545786368616e67653a2045786368616e676520646f657360408201526a206e6f742065786973742160a81b606082015260800190565b60208082526028908201527f46697865645261746545786368616e67653a207a65726f2064617461746f6b656040820152671b88185b5bdd5b9d60c21b606082015260800190565b60208082526036908201527f46697865645261746545786368616e67653a205468697320616464726573732060408201527506973206e6f7420616c6c6f77656420746f20737761760541b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e0d578160001904821115612df357612df3612dbc565b80851615612e0057918102915b93841c9390800290612dd7565b509250929050565b600082612e2457506001612099565b81612e3157506000612099565b8160018114612e475760028114612e5157612e6d565b6001915050612099565b60ff841115612e6257612e62612dbc565b50506001821b612099565b5060208310610133831016604e8410600b8410161715612e90575081810a612099565b612e9a8383612dd2565b8060001904821115612eae57612eae612dbc565b029392505050565b60006120e48383612e15565b600060208284031215612ed457600080fd5b81516120e481612b9e565b600060208284031215612ef157600080fd5b5051919050565b600082821015612f0a57612f0a612dbc565b500390565b60008219821115612f2257612f22612dbc565b500190565b6000816000190483118215151615612f4157612f41612dbc565b500290565b600082612f6357634e487b7160e01b600052601260045260246000fd5b500490565b60005b83811015612f83578181015183820152602001612f6b565b838111156126945750506000910152565b60008251612fa6818460208701612f68565b9190910192915050565b6020815260008251806020840152612fcf816040850160208701612f68565b601f01601f1916919091016040019291505056fea26469706673582212207a39153979ea587416600b8146b451020b2f3248d1f1f05112a77e65cae3d03f64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 0000000..4349e80 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# default to true in case it is not set +DEPLOY_SUBGRAPH="${DEPLOY_SUBGRAPH:-true}" +echo "deploy subgraph is ${DEPLOY_SUBGRAPH}" + +if [ "${DEPLOY_SUBGRAPH}" = "true" ] +then + echo "Waiting for contracts to be deployed" + while [ ! -f "/ocean-contracts/artifacts/ready" ]; do + sleep 2 + done + export ADDRESS_FILE="/ocean-contracts/artifacts/address.json" + /usr/src/app/ + npm run quickstart:barge +fi +tail -f /dev/null diff --git a/package-lock.json b/package-lock.json index 15e225c..4a911b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,15 +5,16 @@ "requires": true, "packages": { "": { + "name": "ocean-subgraph", "version": "1.2.0", "license": "Apache-2.0", "dependencies": { - "@oceanprotocol/lib": "^0.19.2", + "@oceanprotocol/lib": "^1.0.0-next.15", "cross-fetch": "^3.1.4" }, "devDependencies": { - "@graphprotocol/graph-cli": "^0.22.4", - "@graphprotocol/graph-ts": "^0.22.1", + "@graphprotocol/graph-cli": "^0.26.0", + "@graphprotocol/graph-ts": "^0.24.1", "@types/chai": "^4.2.22", "@types/chai-spies": "^1.0.3", "@types/mocha": "^9.0.0", @@ -37,188 +38,56 @@ "typescript": "^4.4.3" } }, - "node_modules/@apollo/client": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.4.16.tgz", - "integrity": "sha512-iF4zEYwvebkri0BZQyv8zfavPfVEafsK0wkOofa6eC2yZu50J18uTutKtC174rjHZ2eyxZ8tV7NvAPKRT+OtZw==", - "optional": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.0.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.3", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.9.0", - "tslib": "^2.3.0", - "zen-observable-ts": "~1.1.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0", - "react": "^16.8.0 || ^17.0.0", - "subscriptions-transport-ws": "^0.9.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true - } - } - }, - "node_modules/@apollo/client/node_modules/ts-invariant": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.9.3.tgz", - "integrity": "sha512-HinBlTbFslQI0OHP07JLsSXPibSegec6r9ai5xxq/qHYCsIQbzpymLpDhAUsnXcSrDEcd0L62L8vsOEdzM0qlA==", - "optional": true, - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apollo/client/node_modules/zen-observable-ts": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz", - "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", - "optional": true, - "dependencies": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/protobufjs/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "optional": true - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==", - "optional": true, - "engines": { - "node": ">=8", - "npm": ">=6" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "optional": true, - "dependencies": { - "xss": "^1.0.8" - } - }, - "node_modules/@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "optional": true, - "dependencies": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - }, - "engines": { - "node": ">=8.5" - }, - "peerDependencies": { - "graphql": "0.13.1 - 15" - } - }, - "node_modules/@ardatan/aggregate-error": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", - "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", - "optional": true, + "node_modules/@ampproject/remapping": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "peer": true, "dependencies": { - "tslib": "~2.0.1" + "@jridgewell/trace-mapping": "^0.3.0" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@ardatan/aggregate-error/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "devOptional": true, + "dev": true, "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -229,11 +98,12 @@ } }, "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -243,16 +113,17 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "dependencies": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -260,26 +131,22 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "optional": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -297,30 +164,10 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "optional": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -343,183 +190,149 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "peer": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "peer": true, "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "optional": true, - "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "peer": true, "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -592,9 +405,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -602,385 +415,16 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "optional": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", - "optional": true, - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", - "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "optional": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", - "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-flow": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", - "optional": true, - "dependencies": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "optional": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", - "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", - "optional": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" }, "engines": { @@ -998,56 +442,10 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", - "optional": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1056,41 +454,42 @@ } }, "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1099,11 +498,11 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1118,27 +517,17 @@ } }, "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@consento/sync-randombytes": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@consento/sync-randombytes/-/sync-randombytes-1.0.5.tgz", - "integrity": "sha512-mPJ2XvrTLQGEdhleDuSIkWtVWnvmhREOC1FjorV1nlK49t/52Z9X1d618gTj6nlQghRLiYvcd8oL4vZ2YZuDIQ==", - "optional": true, - "dependencies": { - "buffer": "^5.4.3", - "seedrandom": "^3.0.5" - } - }, "node_modules/@cspotcode/source-map-consumer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", @@ -1204,36 +593,10 @@ "js-sha3": "^0.8.0" } }, - "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/abi": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.1.tgz", - "integrity": "sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, "node_modules/@ensdomains/ensjs/node_modules/ethers": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.4.7.tgz", - "integrity": "sha512-iZc5p2nqfWK1sj8RabwsPM28cr37Bpq7ehTQ5rWExBr2Y09Sn1lDKZOED26n+TsZMye7Y6mIgQ/1cwpSD8XZew==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.5.4.tgz", + "integrity": "sha512-N9IAXsF8iKhgHIC6pquzRgPBJEzc9auw3JoRkaKe+y4Wl/LFBtDDunNe7YmdomontECAcC5APaAgWZBiu1kirw==", "funding": [ { "type": "individual", @@ -1245,36 +608,36 @@ } ], "dependencies": { - "@ethersproject/abi": "5.4.1", - "@ethersproject/abstract-provider": "5.4.1", - "@ethersproject/abstract-signer": "5.4.1", - "@ethersproject/address": "5.4.0", - "@ethersproject/base64": "5.4.0", - "@ethersproject/basex": "5.4.0", - "@ethersproject/bignumber": "5.4.2", - "@ethersproject/bytes": "5.4.0", - "@ethersproject/constants": "5.4.0", - "@ethersproject/contracts": "5.4.1", - "@ethersproject/hash": "5.4.0", - "@ethersproject/hdnode": "5.4.0", - "@ethersproject/json-wallets": "5.4.0", - "@ethersproject/keccak256": "5.4.0", - "@ethersproject/logger": "5.4.1", - "@ethersproject/networks": "5.4.2", - "@ethersproject/pbkdf2": "5.4.0", - "@ethersproject/properties": "5.4.1", - "@ethersproject/providers": "5.4.5", - "@ethersproject/random": "5.4.0", - "@ethersproject/rlp": "5.4.0", - "@ethersproject/sha2": "5.4.0", - "@ethersproject/signing-key": "5.4.0", - "@ethersproject/solidity": "5.4.0", - "@ethersproject/strings": "5.4.0", - "@ethersproject/transactions": "5.4.0", - "@ethersproject/units": "5.4.0", - "@ethersproject/wallet": "5.4.0", - "@ethersproject/web": "5.4.0", - "@ethersproject/wordlists": "5.4.0" + "@ethersproject/abi": "5.5.0", + "@ethersproject/abstract-provider": "5.5.1", + "@ethersproject/abstract-signer": "5.5.0", + "@ethersproject/address": "5.5.0", + "@ethersproject/base64": "5.5.0", + "@ethersproject/basex": "5.5.0", + "@ethersproject/bignumber": "5.5.0", + "@ethersproject/bytes": "5.5.0", + "@ethersproject/constants": "5.5.0", + "@ethersproject/contracts": "5.5.0", + "@ethersproject/hash": "5.5.0", + "@ethersproject/hdnode": "5.5.0", + "@ethersproject/json-wallets": "5.5.0", + "@ethersproject/keccak256": "5.5.0", + "@ethersproject/logger": "5.5.0", + "@ethersproject/networks": "5.5.2", + "@ethersproject/pbkdf2": "5.5.0", + "@ethersproject/properties": "5.5.0", + "@ethersproject/providers": "5.5.3", + "@ethersproject/random": "5.5.1", + "@ethersproject/rlp": "5.5.0", + "@ethersproject/sha2": "5.5.0", + "@ethersproject/signing-key": "5.5.0", + "@ethersproject/solidity": "5.5.0", + "@ethersproject/strings": "5.5.0", + "@ethersproject/transactions": "5.5.0", + "@ethersproject/units": "5.5.0", + "@ethersproject/wallet": "5.5.0", + "@ethersproject/web": "5.5.1", + "@ethersproject/wordlists": "5.5.0" } }, "node_modules/@ensdomains/resolver": { @@ -1303,116 +666,156 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@ethereum-navigator/atlas": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@ethereum-navigator/atlas/-/atlas-0.7.3.tgz", - "integrity": "sha512-kCyV/8wOqSU/gn+H7uSaR/Xc+ZogXrW2QmF5MfZL2+NUS4+y0emlfBphTGwP5bOB0Cg2goJTcI7Y6+0LNcJYzg==" + "node_modules/@ethereumjs/block": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.1.tgz", + "integrity": "sha512-o5d/zpGl4SdVfdTfrsq9ZgYMXddc0ucKMiFW5OphBCX+ep4xzYnSjboFcZXT2V/tcSBr84VrKWWp21CGVb3DGw==", + "peer": true, + "dependencies": { + "@ethereumjs/common": "^2.6.1", + "@ethereumjs/tx": "^3.5.0", + "ethereumjs-util": "^7.1.4", + "merkle-patricia-tree": "^4.2.3" + } }, - "node_modules/@ethereum-navigator/navigator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@ethereum-navigator/navigator/-/navigator-0.5.3.tgz", - "integrity": "sha512-AOhS1EXPrVeWbLvW3fVbw5AZ2mPYXDKOqMojgVz602U/tEjRXAsw/Gwa+oSOssAyU37SNKBaIorEhBiEY+RYdA==", + "node_modules/@ethereumjs/blockchain": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz", + "integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==", + "peer": true, + "dependencies": { + "@ethereumjs/block": "^3.6.0", + "@ethereumjs/common": "^2.6.0", + "@ethereumjs/ethash": "^1.1.0", + "debug": "^2.2.0", + "ethereumjs-util": "^7.1.3", + "level-mem": "^5.0.1", + "lru-cache": "^5.1.1", + "semaphore-async-await": "^1.5.1" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "dependencies": { - "@ethereum-navigator/atlas": "^0.7.2", - "web3": "^1.2.7" + "ms": "2.0.0" } }, + "node_modules/@ethereumjs/blockchain/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "peer": true + }, "node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.2.tgz", + "integrity": "sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ==", "dependencies": { "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "ethereumjs-util": "^7.1.4" } }, - "node_modules/@ethereumjs/common/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "node_modules/@ethereumjs/ethash": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", + "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "peer": true, "dependencies": { - "@types/node": "*" + "@ethereumjs/block": "^3.5.0", + "@types/levelup": "^4.3.0", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.1.1", + "miller-rabin": "^4.0.0" } }, - "node_modules/@ethereumjs/common/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz", - "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==", + "node_modules/@ethereumjs/ethash/node_modules/buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "peer": true, "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "safe-buffer": "^5.1.1" } }, "node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.0.tgz", + "integrity": "sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw==", "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "@ethereumjs/common": "^2.6.1", + "ethereumjs-util": "^7.1.4" } }, - "node_modules/@ethereumjs/tx/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" + "node_modules/@ethereumjs/vm": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.7.1.tgz", + "integrity": "sha512-NiFm5FMaeDGZ9ojBL+Y9Y/xhW6S4Fgez+zPBM402T5kLsfeAR9mrRVckYhvkGVJ6FMwsY820CLjYP5OVwMjLTg==", + "peer": true, + "dependencies": { + "@ethereumjs/block": "^3.6.1", + "@ethereumjs/blockchain": "^5.5.1", + "@ethereumjs/common": "^2.6.2", + "@ethereumjs/tx": "^3.5.0", + "async-eventemitter": "^0.2.4", + "core-js-pure": "^3.0.1", + "debug": "^4.3.3", + "ethereumjs-util": "^7.1.4", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "merkle-patricia-tree": "^4.2.3", + "rustbn.js": "~0.2.0" } }, - "node_modules/@ethereumjs/tx/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz", - "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==", + "node_modules/@ethereumjs/vm/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "peer": true, "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" + "ms": "2.1.2" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz", + "integrity": "sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", - "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz", + "integrity": "sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==", "funding": [ { "type": "individual", @@ -1424,19 +827,19 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", - "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz", + "integrity": "sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==", "funding": [ { "type": "individual", @@ -1448,17 +851,17 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0" + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "node_modules/@ethersproject/address": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", - "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz", + "integrity": "sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==", "funding": [ { "type": "individual", @@ -1470,17 +873,17 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/rlp": "^5.4.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/rlp": "^5.5.0" } }, "node_modules/@ethersproject/base64": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", - "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz", + "integrity": "sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==", "funding": [ { "type": "individual", @@ -1492,13 +895,13 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0" + "@ethersproject/bytes": "^5.5.0" } }, "node_modules/@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz", + "integrity": "sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==", "funding": [ { "type": "individual", @@ -1510,14 +913,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz", - "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz", + "integrity": "sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==", "funding": [ { "type": "individual", @@ -1529,15 +932,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "bn.js": "^4.11.9" } }, "node_modules/@ethersproject/bytes": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", - "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz", + "integrity": "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==", "funding": [ { "type": "individual", @@ -1549,13 +952,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.4.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", - "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz", + "integrity": "sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==", "funding": [ { "type": "individual", @@ -1567,13 +970,13 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.4.0" + "@ethersproject/bignumber": "^5.5.0" } }, "node_modules/@ethersproject/contracts": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.4.1.tgz", - "integrity": "sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz", + "integrity": "sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==", "funding": [ { "type": "individual", @@ -1585,22 +988,22 @@ } ], "dependencies": { - "@ethersproject/abi": "^5.4.0", - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0" + "@ethersproject/abi": "^5.5.0", + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0" } }, - "node_modules/@ethersproject/contracts/node_modules/@ethersproject/abi": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.1.tgz", - "integrity": "sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg==", + "node_modules/@ethersproject/hash": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz", + "integrity": "sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==", "funding": [ { "type": "individual", @@ -1612,21 +1015,20 @@ } ], "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, - "node_modules/@ethersproject/hash": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", - "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "node_modules/@ethersproject/hdnode": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz", + "integrity": "sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==", "funding": [ { "type": "individual", @@ -1638,20 +1040,24 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, - "node_modules/@ethersproject/hdnode": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.4.0.tgz", - "integrity": "sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q==", + "node_modules/@ethersproject/json-wallets": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz", + "integrity": "sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==", "funding": [ { "type": "individual", @@ -1663,59 +1069,25 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/pbkdf2": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/wordlists": "^5.4.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" } }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz", - "integrity": "sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hdnode": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/pbkdf2": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, "node_modules/@ethersproject/keccak256": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", - "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz", + "integrity": "sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==", "funding": [ { "type": "individual", @@ -1727,19 +1099,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "js-sha3": "0.5.7" + "@ethersproject/bytes": "^5.5.0", + "js-sha3": "0.8.0" } }, - "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, "node_modules/@ethersproject/logger": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", - "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz", + "integrity": "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==", "funding": [ { "type": "individual", @@ -1752,9 +1119,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", - "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.2.tgz", + "integrity": "sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ==", "funding": [ { "type": "individual", @@ -1766,13 +1133,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.4.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/pbkdf2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz", - "integrity": "sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz", + "integrity": "sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==", "funding": [ { "type": "individual", @@ -1784,14 +1151,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/sha2": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/sha2": "^5.5.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", - "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz", + "integrity": "sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==", "funding": [ { "type": "individual", @@ -1803,13 +1170,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.4.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/providers": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.5.tgz", - "integrity": "sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.3.tgz", + "integrity": "sha512-ZHXxXXXWHuwCQKrgdpIkbzMNJMvs+9YWemanwp1fA7XZEv7QlilseysPvQe0D7Q7DlkJX/w/bGA1MdgK2TbGvA==", "funding": [ { "type": "individual", @@ -1821,23 +1188,23 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0", "bech32": "1.1.4", "ws": "7.4.6" } @@ -1863,9 +1230,9 @@ } }, "node_modules/@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.1.tgz", + "integrity": "sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA==", "funding": [ { "type": "individual", @@ -1877,14 +1244,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", - "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz", + "integrity": "sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==", "funding": [ { "type": "individual", @@ -1896,14 +1263,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz", + "integrity": "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==", "funding": [ { "type": "individual", @@ -1915,15 +1282,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", - "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz", + "integrity": "sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==", "funding": [ { "type": "individual", @@ -1935,18 +1302,18 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", "bn.js": "^4.11.9", "elliptic": "6.5.4", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/solidity": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.4.0.tgz", - "integrity": "sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz", + "integrity": "sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==", "funding": [ { "type": "individual", @@ -1958,17 +1325,18 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/strings": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", - "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz", + "integrity": "sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==", "funding": [ { "type": "individual", @@ -1980,15 +1348,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/transactions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", - "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz", + "integrity": "sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==", "funding": [ { "type": "individual", @@ -2000,21 +1368,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0" } }, "node_modules/@ethersproject/units": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.4.0.tgz", - "integrity": "sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz", + "integrity": "sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==", "funding": [ { "type": "individual", @@ -2026,15 +1394,15 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/wallet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.4.0.tgz", - "integrity": "sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz", + "integrity": "sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==", "funding": [ { "type": "individual", @@ -2046,27 +1414,27 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/hdnode": "^5.4.0", - "@ethersproject/json-wallets": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/wordlists": "^5.4.0" + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/json-wallets": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, "node_modules/@ethersproject/web": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", - "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz", + "integrity": "sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg==", "funding": [ { "type": "individual", @@ -2078,17 +1446,17 @@ } ], "dependencies": { - "@ethersproject/base64": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" + "@ethersproject/base64": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/wordlists": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.4.0.tgz", - "integrity": "sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz", + "integrity": "sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==", "funding": [ { "type": "individual", @@ -2100,17 +1468,17 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@graphprotocol/graph-cli": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.22.4.tgz", - "integrity": "sha512-+2OcByjz0k9F2guz6hQ6lRiWBrRj/Pc5ShIZjK69P1w3eICQtFn/F1j5zTbeWkr/tL//e2byf0MIxxMBo2xToQ==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.26.0.tgz", + "integrity": "sha512-sQKKfkGy6jsfpZD6KA9KdvHRpeStd1ZH334CMVxhyJtPY006a/Wc2rr7TBqgAtwpggs7UiT0UA3s5vG0jFQB5g==", "dev": true, "dependencies": { "assemblyscript": "0.19.10", @@ -2122,7 +1490,7 @@ "dockerode": "^2.5.8", "fs-extra": "^9.0.0", "glob": "^7.1.2", - "gluegun": "^4.3.1", + "gluegun": "git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep", "graphql": "^15.5.0", "immutable": "^3.8.2", "ipfs-http-client": "^34.0.0", @@ -2154,9357 +1522,7982 @@ } }, "node_modules/@graphprotocol/graph-ts": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.22.1.tgz", - "integrity": "sha512-T5xrHN0tHJwd7ZnSTLhk5hAL3rCIp6rJ40kBCrETnv1mfK9hVyoojJK6VtBQXTbLsYtKe4SYjjD0cdOsAR9QiA==", + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.24.1.tgz", + "integrity": "sha512-2vU4m5ZPQIqMlMce/z5vmOtGHRlRmcRhMfemS3NIwxCSxSBGVnX2zb7QBTzzdQKGwsAZdbz6V0okkOtvohELfQ==", "dev": true, "dependencies": { "assemblyscript": "0.19.10" } }, - "node_modules/@graphql-tools/batch-delegate": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-6.2.6.tgz", - "integrity": "sha512-QUoE9pQtkdNPFdJHSnBhZtUfr3M7pIRoXoMR+TG7DK2Y62ISKbT/bKtZEUU1/2v5uqd5WVIvw9dF8gHDSJAsSA==", - "optional": true, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, "dependencies": { - "@graphql-tools/delegate": "^6.2.4", - "dataloader": "2.0.0", - "tslib": "~2.0.1" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@graphql-tools/batch-delegate/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true }, - "node_modules/@graphql-tools/batch-execute": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", - "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", - "optional": true, - "dependencies": { - "@graphql-tools/utils": "^7.7.0", - "dataloader": "2.0.0", - "tslib": "~2.2.0", - "value-or-promise": "1.0.6" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz", + "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==", + "peer": true, "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "peer": true, "dependencies": { - "tslib": "^2.0.3" + "@types/node": "*" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "peer": true, "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/batch-execute/node_modules/value-or-promise": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", - "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==", - "optional": true, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@graphql-tools/code-file-loader": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz", - "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==", - "optional": true, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "^6.5.1", - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.1.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">= 8" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@oceanprotocol/contracts": { + "version": "1.0.0-alpha.18", + "resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-1.0.0-alpha.18.tgz", + "integrity": "sha512-0MFX5n71dke095drRKXoCvF25FrAuraAcNyuUqps0WsVyM7N+jIdiJsF4u26/TrfYzNV/Y/0zRmi6bR4mTA7KA==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "@openzeppelin/contracts": "^4.3.3", + "@openzeppelin/test-helpers": "^0.5.15", + "dotenv": "^10.0.0", + "eth-permit": "^0.2.1", + "ethereumjs-util": "^7.1.3", + "hardhat-contract-sizer": "^2.1.1", + "solidity-bytes-utils": "^0.8.0" + } + }, + "node_modules/@oceanprotocol/lib": { + "version": "1.0.0-next.15", + "resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-1.0.0-next.15.tgz", + "integrity": "sha512-ajNsWcsOcyPAZCO7lzq++Gw+QOULjwou53PpwebJefGHrOSDXbc+6jCr17vAiXw7J30zNGCWNrJ2SOpnziRYwg==", + "dependencies": { + "@oceanprotocol/contracts": "1.0.0-alpha.18", + "bignumber.js": "^9.0.2", + "cross-fetch": "^3.1.5", + "crypto-js": "^4.1.1", + "decimal.js": "^10.3.1", + "web3": "^1.7.0", + "web3-core": "^1.7.0", + "web3-eth-contract": "^1.7.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "web3": "^1.7.0" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/code-file-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "@octokit/types": "^6.0.3" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "dev": true, "dependencies": { - "tslib": "^2.0.3" + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@graphql-tools/code-file-loader/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "optional": true + "node_modules/@octokit/openapi-types": { + "version": "10.6.4", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.6.4.tgz", + "integrity": "sha512-JVmwWzYTIs6jACYOwD6zu5rdrqGIYsiAsLzTCxdrWIPNKNVjEF6vPTL20shmgJ4qZsq7WPBcLXLsaQD+NLChfg==", + "dev": true }, - "node_modules/@graphql-tools/delegate": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.2.4.tgz", - "integrity": "sha512-mXe6DfoWmq49kPcDrpKHgC2DSWcD5q0YCaHHoXYPAOlnLH8VMTY8BxcE8y/Do2eyg+GLcwAcrpffVszWMwqw0w==", - "optional": true, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.16.7", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.7.tgz", + "integrity": "sha512-TMlyVhMPx6La1Ud4PSY4YxqAvb9YPEMs/7R1nBSbsw4wNqG73aBqls0r0dRRCWe5Pm0ZUGS9a94N46iAxlOR8A==", + "dev": true, "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/schema": "^6.2.4", - "@graphql-tools/utils": "^6.2.4", - "dataloader": "2.0.0", - "is-promise": "4.0.0", - "tslib": "~2.0.1" + "@octokit/types": "^6.31.3" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@octokit/core": ">=2" } }, - "node_modules/@graphql-tools/delegate/node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "optional": true - }, - "node_modules/@graphql-tools/delegate/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/git-loader": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz", - "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==", - "optional": true, - "dependencies": { - "@graphql-tools/graphql-tag-pluck": "^6.2.6", - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.1.0" - }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@octokit/core": ">=3" } }, - "node_modules/@graphql-tools/git-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.11.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.11.4.tgz", + "integrity": "sha512-iS+GYTijrPUiEiLoDsGJhrbXIvOPfm2+schvr+FxNMs7PeE9Nl4bAMhE8ftfNX3Z1xLxSKwEZh0O7GbWurX5HQ==", + "dev": true, "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "@octokit/types": "^6.31.2", + "deprecation": "^2.3.1" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" - } - }, - "node_modules/@graphql-tools/git-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/git-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/@graphql-tools/git-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/@graphql-tools/git-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "@octokit/core": ">=3" } }, - "node_modules/@graphql-tools/git-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@octokit/request": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "dev": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@graphql-tools/git-loader/node_modules/tslib": { + "node_modules/@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "optional": true - }, - "node_modules/@graphql-tools/github-loader": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz", - "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==", - "optional": true, + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "^6.2.6", - "@graphql-tools/utils": "^7.0.0", - "cross-fetch": "3.0.6", - "tslib": "~2.0.1" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, - "node_modules/@graphql-tools/github-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@octokit/rest": { + "version": "18.10.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.10.0.tgz", + "integrity": "sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw==", + "dev": true, "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.9.0" } }, - "node_modules/@graphql-tools/github-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/github-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, + "node_modules/@octokit/types": { + "version": "6.31.3", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.31.3.tgz", + "integrity": "sha512-IUG3uMpsLHrtEL6sCVXbxCgnbKcgpkS4K7gVEytLDvYYalkK3XcuMCHK1YPD8xJglSJAOAbL4MgXp47rS9G49w==", + "dev": true, "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "@octokit/openapi-types": "^10.6.4" } }, - "node_modules/@graphql-tools/github-loader/node_modules/cross-fetch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", - "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", - "optional": true, + "node_modules/@openzeppelin/contract-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", + "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", "dependencies": { - "node-fetch": "2.6.1" + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" } }, - "node_modules/@graphql-tools/github-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@openzeppelin/contract-loader/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { - "tslib": "^2.0.3" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/github-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@openzeppelin/contract-loader/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/@graphql-tools/github-loader/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "optional": true, + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@graphql-tools/github-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@openzeppelin/contract-loader/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/github-loader/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/graphql-file-loader": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz", - "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==", - "optional": true, + "node_modules/@openzeppelin/contract-loader/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { - "@graphql-tools/import": "^6.2.6", - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.1.0" + "p-try": "^2.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@openzeppelin/contract-loader/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "p-limit": "^2.2.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { + "node_modules/@openzeppelin/contract-loader/node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "node_modules/@openzeppelin/contracts": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.5.0.tgz", + "integrity": "sha512-fdkzKPYMjrRiPK6K4y64e6GzULR7R7RwxSigHS8DDp7aWDeoReqsQI+cxHV1UuhAqX69L1lAaWDxenfP+xiqzA==" + }, + "node_modules/@openzeppelin/test-helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.15.tgz", + "integrity": "sha512-10fS0kyOjc/UObo9iEWPNbC6MCeiQ7z97LDOJBj68g+AAs5pIGEI2h3V6G9TYTIq8VxOdwMQbfjKrx7Y3YZJtA==", + "dependencies": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, - "dependencies": { - "tslib": "^2.0.3" + "node_modules/@openzeppelin/test-helpers/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "node_modules/@openzeppelin/test-helpers/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "peer": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-file-loader/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "optional": true + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true }, - "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz", - "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==", - "optional": true, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "peer": true, "dependencies": { - "@babel/parser": "7.12.16", - "@babel/traverse": "7.12.13", - "@babel/types": "7.12.13", - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.1.0" + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "optional": true, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "peer": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", - "optional": true, - "bin": { - "parser": "bin/babel-parser.js" + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "peer": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" }, "engines": { - "node": ">=6.0.0" + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "optional": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "peer": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "optional": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "peer": true, + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "peer": true, "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "optional": true, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@solidity-parser/parser": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.1.tgz", + "integrity": "sha512-eLjj2L6AuQjBB6s/ibwCAc0DwrR5Ge+ys+wgWo+bviU7fV2nTMQhU63CGaDKXg9iTmMxwhkyoggdIR7ZGRfMgw==", + "peer": true, "dependencies": { - "tslib": "^2.0.3" + "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@truffle/abi-utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.8.tgz", + "integrity": "sha512-n/9ojMthWuP1hg9JveuxctxWoRoKTh+/17RTSwlTlXTyP/kfoNxr1JcLecybXUDOIsLJ4uskqxVUZQDvj1B0PQ==", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "change-case": "3.0.2", + "faker": "^5.3.1", + "fast-check": "^2.12.1" } }, - "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "optional": true + "node_modules/@truffle/blockchain-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.0.tgz", + "integrity": "sha512-9mzYXPQkjOc23rHQM1i630i3ackITWP1cxf3PvBObaAnGqwPCQuqtmZtNDPdvN+YpOLpBGpZIdYolI91xLdJNQ==" }, - "node_modules/@graphql-tools/import": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.0.tgz", - "integrity": "sha512-q0zP95TVCVEQ1rfBxSDkPVgZAg5/7LptmPih9R4V0XZGY7aL1Hd4A1oe+Sr4B3sFy7OyWJpxhZek84nQBWNKmw==", - "optional": true, + "node_modules/@truffle/codec": { + "version": "0.11.26", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.26.tgz", + "integrity": "sha512-wNVw66vSL5RSzgNMkiQVIExz7ZF1ZDNdOSPTnFlTiZCvkpJn8QJ9OpDiow9w8HmXIftt+YjueBsKu4ByyBuAPA==", "dependencies": { - "resolve-from": "5.0.0", - "tslib": "~2.3.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@truffle/abi-utils": "^0.2.8", + "@truffle/compile-common": "^0.7.27", + "big.js": "^5.2.2", + "bn.js": "^5.1.3", + "cbor": "^5.1.0", + "debug": "^4.3.1", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.partition": "^4.6.0", + "lodash.sum": "^4.0.2", + "semver": "^7.3.4", + "utf8": "^3.0.0", + "web3-utils": "1.5.3" } }, - "node_modules/@graphql-tools/import/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "optional": true, - "engines": { - "node": ">=8" - } + "node_modules/@truffle/codec/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, - "node_modules/@graphql-tools/json-file-loader": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz", - "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==", - "optional": true, + "node_modules/@truffle/codec/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "dependencies": { - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@truffle/codec/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@truffle/codec/node_modules/web3-utils": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", + "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true + "node_modules/@truffle/codec/node_modules/web3-utils/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/@graphql-tools/json-file-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, + "node_modules/@truffle/compile-common": { + "version": "0.7.27", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.27.tgz", + "integrity": "sha512-gs266BQTRnVoskoWj7wNrNGACMOhU6Yt+8YhaSp6k5e4/a2NBEluxXWxKIi32yWz4q7Ip306do1wcQR2fFOf8w==", "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "@truffle/error": "^0.1.0", + "colors": "1.4.0" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@truffle/contract": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.4.8.tgz", + "integrity": "sha512-zZVgIJ4zbdKX1dWubX5m9w7StMpcdEXuQorSpPQ23SUD1RwzSgnRi9Iw2rmSLNbHcO+w6L6+JFeVzFrfmI/VKA==", "dependencies": { - "tslib": "^2.0.3" + "@ensdomains/ensjs": "^2.0.1", + "@truffle/blockchain-utils": "^0.1.0", + "@truffle/contract-schema": "^3.4.4", + "@truffle/debug-utils": "^6.0.8", + "@truffle/error": "^0.1.0", + "@truffle/interface-adapter": "^0.5.11", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-promievent": "1.5.3", + "web3-eth-abi": "1.5.3", + "web3-utils": "1.5.3" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@truffle/contract-schema": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.4.tgz", + "integrity": "sha512-xWgrm6WRM2jmT04w7dP7aVbS2qyP9XPmH/mybQtFXMjJ/8BZlp0yltC8QOs8sGl6q8Ws7acp19YtRkLdK6SsmQ==", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "ajv": "^6.10.0", + "debug": "^4.3.1" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "node_modules/@truffle/contract/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/json-file-loader/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/links": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/links/-/links-6.2.5.tgz", - "integrity": "sha512-XeGDioW7F+HK6HHD/zCeF0HRC9s12NfOXAKv1HC0J7D50F4qqMvhdS/OkjzLoBqsgh/Gm8icRc36B5s0rOA9ig==", - "optional": true, + "node_modules/@truffle/contract/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dependencies": { - "@graphql-tools/utils": "^7.0.0", - "apollo-link": "1.2.14", - "apollo-upload-client": "14.1.2", - "cross-fetch": "3.0.6", - "form-data": "3.0.0", - "is-promise": "4.0.0", - "tslib": "~2.0.1" + "defer-to-connect": "^1.0.1" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/links/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@truffle/contract/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@types/node": "*" } }, - "node_modules/@graphql-tools/links/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true + "node_modules/@truffle/contract/node_modules/@types/node": { + "version": "12.20.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.45.tgz", + "integrity": "sha512-1Jg2Qv5tuxBqgQV04+wO5u+wmSHbHgpORCJdeCLM+E+YdPElpdHhgywU+M1V1InL8rfOtpqtOjswk+uXTKwx7w==" }, - "node_modules/@graphql-tools/links/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "node_modules/@truffle/contract/node_modules/bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "engines": { + "node": "*" } }, - "node_modules/@graphql-tools/links/node_modules/cross-fetch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", - "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", - "optional": true, + "node_modules/@truffle/contract/node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dependencies": { - "node-fetch": "2.6.1" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/links/node_modules/form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "mimic-response": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/@graphql-tools/links/node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "optional": true + "node_modules/@truffle/contract/node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "node_modules/@graphql-tools/links/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "dependencies": { - "tslib": "^2.0.3" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@graphql-tools/links/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/@graphql-tools/links/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "optional": true, + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/@graphql-tools/links/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "node": ">=8.6" } }, - "node_modules/@graphql-tools/links/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/load": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz", - "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==", - "optional": true, + "node_modules/@truffle/contract/node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dependencies": { - "@graphql-tools/merge": "^6.2.12", - "@graphql-tools/utils": "^7.5.0", - "globby": "11.0.3", - "import-from": "3.0.0", - "is-glob": "4.0.1", - "p-limit": "3.1.0", - "tslib": "~2.2.0", - "unixify": "1.0.0", - "valid-url": "1.0.9" + "pump": "^3.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/@graphql-tools/load-files": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/load-files/-/load-files-6.5.0.tgz", - "integrity": "sha512-/Q4Mrnv8QdJ+5dUKTAAW/pqsNengBJvA8FluwUXNTpx2D4X6/bDIAHef0xpNzSSEO4zFnRy5hi9sCEYvFvFIdA==", - "optional": true, - "dependencies": { - "globby": "11.0.4", - "tslib": "~2.3.0", - "unixify": "1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "node_modules/@truffle/contract/node_modules/got/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@graphql-tools/load/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, - "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" - } + "node_modules/@truffle/contract/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "node_modules/@graphql-tools/load/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, + "node_modules/@truffle/contract/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "json-buffer": "3.0.0" } }, - "node_modules/@graphql-tools/load/node_modules/globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "optional": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, + "node_modules/@truffle/contract/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@graphql-tools/load/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "optional": true, + "node_modules/@truffle/contract/node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "engines": { - "node": ">= 4" + "node": ">=6" } }, - "node_modules/@graphql-tools/load/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dependencies": { - "tslib": "^2.0.3" + "lowercase-keys": "^1.0.0" } }, - "node_modules/@graphql-tools/load/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "node_modules/@truffle/contract/node_modules/responselike/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@graphql-tools/load/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "node_modules/@truffle/contract/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/@graphql-tools/load/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/merge": { - "version": "6.2.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.17.tgz", - "integrity": "sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz", + "integrity": "sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w==", + "hasInstallScript": true, "dependencies": { - "@graphql-tools/schema": "^8.0.2", - "@graphql-tools/utils": "8.0.2", - "tslib": "~2.3.0" + "web3-bzz": "1.5.3", + "web3-core": "1.5.3", + "web3-eth": "1.5.3", + "web3-eth-personal": "1.5.3", + "web3-net": "1.5.3", + "web3-shh": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/merge": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.1.2.tgz", - "integrity": "sha512-kFLd4kKNJXYXnKIhM8q9zgGAtbLmsy3WmGdDxYq3YHBJUogucAxnivQYyRIseUq37KGmSAIWu3pBQ23TKGsGOw==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-bzz": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.3.tgz", + "integrity": "sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg==", + "hasInstallScript": true, "dependencies": { - "@graphql-tools/utils": "^8.2.2", - "tslib": "~2.3.0" + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.4.tgz", - "integrity": "sha512-uB+JL7CqTKJ2Q5zXA+a2la1cA8YYPcc0RHO/3mK54hxlZa2Z5/9k9XrNfMof4LZQefTaBM7M6QWtaxGklJln4A==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-core": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.3.tgz", + "integrity": "sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ==", "dependencies": { - "tslib": "~2.3.0" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.5.3", + "web3-core-method": "1.5.3", + "web3-core-requestmanager": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/schema": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.2.0.tgz", - "integrity": "sha512-ufmI5mJQa8NJczzfkh0pUttKvspqDcT5LLakA3jUmOrrE4d4NVj6onZlazdTzF5sAepSNqanFnwhrxZpCAJMKg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-core-method": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz", + "integrity": "sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg==", "dependencies": { - "@graphql-tools/merge": "^8.1.0", - "@graphql-tools/utils": "^8.2.0", - "tslib": "~2.3.0", - "value-or-promise": "1.0.10" + "@ethereumjs/common": "^2.4.0", + "@ethersproject/transactions": "^5.0.0-beta.135", + "web3-core-helpers": "1.5.3", + "web3-core-promievent": "1.5.3", + "web3-core-subscriptions": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.4.tgz", - "integrity": "sha512-uB+JL7CqTKJ2Q5zXA+a2la1cA8YYPcc0RHO/3mK54hxlZa2Z5/9k9XrNfMof4LZQefTaBM7M6QWtaxGklJln4A==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz", + "integrity": "sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg==", "dependencies": { - "tslib": "~2.3.0" + "util": "^0.12.0", + "web3-core-helpers": "1.5.3", + "web3-providers-http": "1.5.3", + "web3-providers-ipc": "1.5.3", + "web3-providers-ws": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.0.2.tgz", - "integrity": "sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz", + "integrity": "sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA==", "dependencies": { - "tslib": "~2.3.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/mock": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-6.2.4.tgz", - "integrity": "sha512-O5Zvq/mcDZ7Ptky0IZ4EK9USmxV6FEVYq0Jxv2TI80kvxbCjt0tbEpZ+r1vIt1gZOXlAvadSHYyzWnUPh+1vkQ==", - "optional": true, - "dependencies": { - "@graphql-tools/schema": "^6.2.4", - "@graphql-tools/utils": "^6.2.4", - "tslib": "~2.0.1" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" } }, - "node_modules/@graphql-tools/mock/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/module-loader": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/module-loader/-/module-loader-6.2.7.tgz", - "integrity": "sha512-ItAAbHvwfznY9h1H9FwHYDstTcm22Dr5R9GZtrWlpwqj0jaJGcBxsMB9jnK9kFqkbtFYEe4E/NsSnxsS4/vViQ==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-eth": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.3.tgz", + "integrity": "sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q==", "dependencies": { - "@graphql-tools/utils": "^7.5.0", - "tslib": "~2.1.0" + "web3-core": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-method": "1.5.3", + "web3-core-subscriptions": "1.5.3", + "web3-eth-abi": "1.5.3", + "web3-eth-accounts": "1.5.3", + "web3-eth-contract": "1.5.3", + "web3-eth-ens": "1.5.3", + "web3-eth-iban": "1.5.3", + "web3-eth-personal": "1.5.3", + "web3-net": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/module-loader/node_modules/@graphql-tools/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz", + "integrity": "sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "camel-case": "4.1.2", - "tslib": "~2.2.0" + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.1", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "3.3.2", + "web3-core": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-method": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" - } - }, - "node_modules/@graphql-tools/module-loader/node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "optional": true - }, - "node_modules/@graphql-tools/module-loader/node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "optional": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/module-loader/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-eth-contract": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz", + "integrity": "sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg==", "dependencies": { - "tslib": "^2.0.3" + "@types/bn.js": "^4.11.5", + "web3-core": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-method": "1.5.3", + "web3-core-promievent": "1.5.3", + "web3-core-subscriptions": "1.5.3", + "web3-eth-abi": "1.5.3", + "web3-utils": "1.5.3" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/module-loader/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-eth-ens": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz", + "integrity": "sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw==", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-promievent": "1.5.3", + "web3-eth-abi": "1.5.3", + "web3-eth-contract": "1.5.3", + "web3-utils": "1.5.3" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/module-loader/node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-eth-personal": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz", + "integrity": "sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew==", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@types/node": "^12.12.6", + "web3-core": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-method": "1.5.3", + "web3-net": "1.5.3", + "web3-utils": "1.5.3" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/module-loader/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "optional": true - }, - "node_modules/@graphql-tools/relay-operation-optimizer": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.0.tgz", - "integrity": "sha512-auNvHC8gHu9BHBPnLA5c8Iv5VAXQG866KZJz7ljhKpXPdlPevK4zjHlVJwqnF8H6clJ9NgZpizN4kNNCe/3R9g==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-net": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.3.tgz", + "integrity": "sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ==", "dependencies": { - "@graphql-tools/utils": "^8.2.0", - "relay-compiler": "11.0.2", - "tslib": "~2.3.0" + "web3-core": "1.5.3", + "web3-core-method": "1.5.3", + "web3-utils": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.4.tgz", - "integrity": "sha512-uB+JL7CqTKJ2Q5zXA+a2la1cA8YYPcc0RHO/3mK54hxlZa2Z5/9k9XrNfMof4LZQefTaBM7M6QWtaxGklJln4A==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-providers-http": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.3.tgz", + "integrity": "sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw==", "dependencies": { - "tslib": "~2.3.0" + "web3-core-helpers": "1.5.3", + "xhr2-cookies": "1.1.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/resolvers-composition": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/resolvers-composition/-/resolvers-composition-6.4.0.tgz", - "integrity": "sha512-YkAmpIzyFtto9aDp/FysuyPb/tPba/gXYYvlN2vdBkE9nRU8ms8Fwhnroek0pW5ipjZAhpQZsZPVVpzSwldj3A==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz", + "integrity": "sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg==", "dependencies": { - "@graphql-tools/utils": "^8.2.0", - "lodash": "4.17.21", - "micromatch": "^4.0.4", - "tslib": "~2.3.0" + "oboe": "2.1.5", + "web3-core-helpers": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/resolvers-composition/node_modules/@graphql-tools/utils": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.4.tgz", - "integrity": "sha512-uB+JL7CqTKJ2Q5zXA+a2la1cA8YYPcc0RHO/3mK54hxlZa2Z5/9k9XrNfMof4LZQefTaBM7M6QWtaxGklJln4A==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-providers-ws": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz", + "integrity": "sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg==", "dependencies": { - "tslib": "~2.3.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.3", + "websocket": "^1.0.32" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/schema": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.2.4.tgz", - "integrity": "sha512-rh+14lSY1q8IPbEv2J9x8UBFJ5NrDX9W5asXEUlPp+7vraLp/Tiox4GXdgyA92JhwpYco3nTf5Bo2JDMt1KnAQ==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-shh": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.3.tgz", + "integrity": "sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q==", + "hasInstallScript": true, "dependencies": { - "@graphql-tools/utils": "^6.2.4", - "tslib": "~2.0.1" + "web3-core": "1.5.3", + "web3-core-method": "1.5.3", + "web3-core-subscriptions": "1.5.3", + "web3-net": "1.5.3" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/schema/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/stitch": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-6.2.4.tgz", - "integrity": "sha512-0C7PNkS7v7iAc001m7c1LPm5FUB0/DYw+s3OyCii6YYYHY8NwdI0roeOyeDGFJkFubWBQfjc3hoSyueKtU73mw==", - "optional": true, + "node_modules/@truffle/contract/node_modules/web3-utils": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", + "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==", "dependencies": { - "@graphql-tools/batch-delegate": "^6.2.4", - "@graphql-tools/delegate": "^6.2.4", - "@graphql-tools/merge": "^6.2.4", - "@graphql-tools/schema": "^6.2.4", - "@graphql-tools/utils": "^6.2.4", - "@graphql-tools/wrap": "^6.2.4", - "is-promise": "4.0.0", - "tslib": "~2.0.1" + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@graphql-tools/stitch/node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "optional": true - }, - "node_modules/@graphql-tools/stitch/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "optional": true - }, - "node_modules/@graphql-tools/url-loader": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz", - "integrity": "sha512-DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==", - "optional": true, + "node_modules/@truffle/debug-utils": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.8.tgz", + "integrity": "sha512-bkrHQZj6OVw5FCs0li69e0f6gdW+6FuOR8dgedfy8qpsVVtGQB+8cN7hnoFUwMs60vo7vW90grZu1c4855zVQw==", "dependencies": { - "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.9.0", - "@graphql-tools/wrap": "^7.0.4", - "@microsoft/fetch-event-source": "2.0.1", - "@types/websocket": "1.0.2", - "abort-controller": "3.0.0", - "cross-fetch": "3.1.4", - "extract-files": "9.0.0", - "form-data": "4.0.0", - "graphql-ws": "^4.4.1", - "is-promise": "4.0.0", - "isomorphic-ws": "4.0.1", - "lodash": "4.17.21", - "meros": "1.1.4", - "subscriptions-transport-ws": "^0.9.18", - "sync-fetch": "0.3.0", - "tslib": "~2.2.0", - "valid-url": "1.0.9", - "ws": "7.4.5" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "@truffle/codec": "^0.11.26", + "@trufflesuite/chromafi": "^2.2.2", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.3.1", + "highlightjs-solidity": "^2.0.3" } }, - "node_modules/@graphql-tools/url-loader/node_modules/@graphql-tools/delegate": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", - "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", - "optional": true, + "node_modules/@truffle/debug-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.2", - "@graphql-tools/schema": "^7.1.5", - "@graphql-tools/utils": "^7.7.1", - "dataloader": "2.0.0", - "tslib": "~2.2.0", - "value-or-promise": "1.0.6" + "color-convert": "^1.9.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/@graphql-tools/url-loader/node_modules/@graphql-tools/schema": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", - "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", - "optional": true, + "node_modules/@truffle/debug-utils/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/@truffle/debug-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "@graphql-tools/utils": "^7.1.2", - "tslib": "~2.2.0", - "value-or-promise": "1.0.6" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0" + "engines": { + "node": ">=4" } }, - "nod