From 5cee842559aeb9da0349063ebf381fb4584d9727 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Wed, 26 Jun 2024 14:58:00 +0100 Subject: [PATCH 01/25] chore: new contracts deployed --- .openzeppelin/base-sepolia.json | 267 ++++++++++++++++++++++++++++++ .openzeppelin/sepolia.json | 267 ++++++++++++++++++++++++++++++ .openzeppelin/unknown-421614.json | 267 ++++++++++++++++++++++++++++++ README.md | 6 +- 4 files changed, 804 insertions(+), 3 deletions(-) diff --git a/.openzeppelin/base-sepolia.json b/.openzeppelin/base-sepolia.json index 9e2fd44..e0d77d7 100644 --- a/.openzeppelin/base-sepolia.json +++ b/.openzeppelin/base-sepolia.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xfB411Cc6385Af50A562aFCb441864E9d541CDA67", + "txHash": "0x22576ec6c30b5f604252560551c4d96e311dfe67f0ab810cbd2594b2683baa66", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/sepolia.json b/.openzeppelin/sepolia.json index fc2f2d9..075a96b 100644 --- a/.openzeppelin/sepolia.json +++ b/.openzeppelin/sepolia.json @@ -955,6 +955,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xafbf71A72d30f81eb66baaF904ea537fD35dd106", + "txHash": "0x6d9de2d7b179d6c13b3c876d9ffac322cd8ebcda04faa1956dcfdb93d55824d0", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/unknown-421614.json b/.openzeppelin/unknown-421614.json index 8096d63..0b952e2 100644 --- a/.openzeppelin/unknown-421614.json +++ b/.openzeppelin/unknown-421614.json @@ -283,6 +283,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xD01abCEEeacfC91d2eCE31422DFe531004A7D2e6", + "txHash": "0x0dd450b7f5db5229312530034997c9a2fc47f20d98a7ab82439e07ac6320af1a", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)2469_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)2469_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)2469_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/README.md b/README.md index c02f73d..e7e37b3 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x5E7eC39915F6CD48829d06648F6682765846602a + 0xafbf71A72d30f81eb66baaF904ea537fD35dd106 @@ -80,7 +80,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x30F6A8457F8E42371E204a9c103f2Bd42341dD0F + 0xD01abCEEeacfC91d2eCE31422DFe531004A7D2e6 @@ -92,7 +92,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xCAD53Ff499155Cc2fAA2082A85716322906886c2 + 0xfB411Cc6385Af50A562aFCb441864E9d541CDA67 From 1b7a8af83d76b4d5f8e6eb99bd3be139f574473a Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:38:38 +0100 Subject: [PATCH 02/25] chore: upgrades Gateway.sol accross all chains --- migrations/2_upgrade.js | 3 ++- scripts/upgrade.ts | 5 +++++ tronbox.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/migrations/2_upgrade.js b/migrations/2_upgrade.js index 9842d82..6b7b3e2 100644 --- a/migrations/2_upgrade.js +++ b/migrations/2_upgrade.js @@ -4,7 +4,8 @@ const ProxyAdmin = artifacts.require( ); const Gateway = artifacts.require("Gateway"); -const proxyContractAddress = "TAmw9Yq6axjkQV6vTH21qXJVEGwUnvVL6L" +const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; +// Shasta: "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; module.exports = async function (deployer) { try { diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index 0e1af66..6f5c4b8 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -1,5 +1,6 @@ import { ethers, upgrades, network } from "hardhat"; import { NETWORKS } from "./config"; +import hre from "hardhat"; const networkConfig = NETWORKS[network.config.chainId as keyof typeof NETWORKS]; @@ -12,6 +13,10 @@ async function main() { ); console.log("✅ Upgraded Gateway: ", contract.address); + + await hre.run("verify:verify", { + address: contract.address, + }); } main().catch((error) => { diff --git a/tronbox.js b/tronbox.js index 4e9affe..2d72ea3 100644 --- a/tronbox.js +++ b/tronbox.js @@ -13,7 +13,7 @@ module.exports = { shasta: { privateKey: process.env.DEPLOYER_PRIVATE_KEY_TRON, userFeePercentage: 100, - feeLimit: 1e9, + feeLimit: 2e9, fullHost: "https://api.shasta.trongrid.io", network_id: "2", }, From ea6e74bdc1ba1beb5a786c4e90cada25b315601c Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:38:54 +0100 Subject: [PATCH 03/25] chore: update readme for new upgrades --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e7e37b3..3940916 100644 --- a/README.md +++ b/README.md @@ -101,10 +101,12 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Tron Shasta Gateway Proxy TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ + Gateway Admin + TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR Gateway Implementation - TPddrcko4ceBWZpr7zPnbPbSnkLAMjBCCm + TSGr6Ri7NZ7FxN1gCiWkn8cPA2qtF6ctdF @@ -139,7 +141,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xafbf71A72d30f81eb66baaF904ea537fD35dd106 + 0x904aDFcf6Fd29F556aA12a64B2072bA4C426A928 @@ -151,7 +153,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x847dfdAa218F9137229CF8424378871A1DA8f625 + 0xfB411Cc6385Af50A562aFCb441864E9d541CDA67 @@ -163,7 +165,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x30F6A8457F8E42371E204a9c103f2Bd42341dD0F + 0x0a7aA9F8eab1665DD905288669447b66082E4B17 @@ -175,7 +177,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x87B321fc77A0fDD0ca1fEe7Ab791131157B9841A + 0x47afB97999801FD98CBD16Bb94F6efD2C779d242 Optimism Ethereum @@ -186,7 +188,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x7bA90e38327A4B82D8BF6B481C1b2Ed14228E91A + 0xB04c9622a583DEbe5fef8f5E594582490604D45c Scroll @@ -197,7 +199,18 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xD293fCd3dBc025603911853d893A4724CF9f70a0 + 0x5E7eC39915F6CD48829d06648F6682765846602a + + + Tron + Gateway Proxy + THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU + Gateway Admin + TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ + + + Gateway Implementation + TDhBvHbnF8nN7YctokpdZAVPcmBx2Jrn2d From 46956c8402b8c24ac77b06fc2ad9ded857bbef4b Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:39:06 +0100 Subject: [PATCH 04/25] chore: builds to new upgrade --- .openzeppelin/arbitrum-one.json | 267 + .openzeppelin/base.json | 267 + .openzeppelin/bsc.json | 267 + .openzeppelin/optimism.json | 267 + .openzeppelin/polygon.json | 267 + .openzeppelin/unknown-534352.json | 267 + build/contracts/AddressUpgradeable.json | 1970 +++--- build/contracts/Context.json | 170 +- build/contracts/ContextUpgradeable.json | 298 +- build/contracts/ERC20.json | 3378 +++++----- build/contracts/Gateway.json | 5876 +++++++++--------- build/contracts/GatewaySettingManager.json | 1040 ++-- build/contracts/IERC20.json | 438 +- build/contracts/IERC20Metadata.json | 158 +- build/contracts/IGateway.json | 820 +-- build/contracts/Initializable.json | 878 +-- build/contracts/MockUSDT.json | 412 +- build/contracts/Ownable2StepUpgradeable.json | 642 +- build/contracts/OwnableUpgradeable.json | 742 +-- build/contracts/PausableUpgradeable.json | 690 +- 20 files changed, 10310 insertions(+), 8804 deletions(-) diff --git a/.openzeppelin/arbitrum-one.json b/.openzeppelin/arbitrum-one.json index cedf342..172941c 100644 --- a/.openzeppelin/arbitrum-one.json +++ b/.openzeppelin/arbitrum-one.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x47afB97999801FD98CBD16Bb94F6efD2C779d242", + "txHash": "0x2e971ec283fcd60632fe7546eb18603b3c7363d7ce7d840cc680431587587b45", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/base.json b/.openzeppelin/base.json index e681e5e..62c76e5 100644 --- a/.openzeppelin/base.json +++ b/.openzeppelin/base.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xfB411Cc6385Af50A562aFCb441864E9d541CDA67", + "txHash": "0x222270dcead9d39eb3d6e601ca7f8da38c4c8a600e0ad889b55efda9127bc8bd", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/bsc.json b/.openzeppelin/bsc.json index 2bf97fa..fdc1cde 100644 --- a/.openzeppelin/bsc.json +++ b/.openzeppelin/bsc.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x0a7aA9F8eab1665DD905288669447b66082E4B17", + "txHash": "0xc4f6f00c66f8f2bcad5debd01bdfd36d2ffbd2e1fd56f138f741b40ab5e2b7dc", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/optimism.json b/.openzeppelin/optimism.json index 2ced5d3..094b921 100644 --- a/.openzeppelin/optimism.json +++ b/.openzeppelin/optimism.json @@ -283,6 +283,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xB04c9622a583DEbe5fef8f5E594582490604D45c", + "txHash": "0xd1b54aebec1586998b0f52544ee427db67af4689e12b6be2e5bbc67aff24eeeb", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/polygon.json b/.openzeppelin/polygon.json index 56ef412..eee52b4 100644 --- a/.openzeppelin/polygon.json +++ b/.openzeppelin/polygon.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x904aDFcf6Fd29F556aA12a64B2072bA4C426A928", + "txHash": "0xadff852f21de38b1463a77f04b8feca338b55426867ae5472d7b93d35885bd05", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/unknown-534352.json b/.openzeppelin/unknown-534352.json index 10f3f83..40d9c9e 100644 --- a/.openzeppelin/unknown-534352.json +++ b/.openzeppelin/unknown-534352.json @@ -278,6 +278,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x5E7eC39915F6CD48829d06648F6682765846602a", + "txHash": "0xea72a16c09d4a63ec6e6812e17b85b1233f312519e6089db858c5088f2e28144", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/build/contracts/AddressUpgradeable.json b/build/contracts/AddressUpgradeable.json index 00af7aa..112b1e0 100644 --- a/build/contracts/AddressUpgradeable.json +++ b/build/contracts/AddressUpgradeable.json @@ -11,15 +11,15 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ] }, - "id": 1842, + "id": 1839, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1513, + "id": 1510, "literals": [ "solidity", "^", @@ -36,15 +36,15 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1514, + "id": 1511, "nodeType": "StructuredDocumentation", "src": "126:67:8", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1841, + "id": 1838, "linearizedBaseContracts": [ - 1841 + 1838 ], "name": "AddressUpgradeable", "nameLocation": "202:18:8", @@ -52,7 +52,7 @@ "nodes": [ { "body": { - "id": 1528, + "id": 1525, "nodeType": "Block", "src": "1489:254:8", "statements": [ @@ -62,7 +62,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1526, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": false, @@ -70,18 +70,18 @@ "leftExpression": { "expression": { "expression": { - "id": 1522, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1514, "src": "1713:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1523, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -95,7 +95,7 @@ "typeString": "bytes memory" } }, - "id": 1524, + "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, @@ -113,7 +113,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1525, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": true, @@ -133,20 +133,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1521, - "id": 1527, + "functionReturnParameters": 1518, + "id": 1524, "nodeType": "Return", "src": "1706:30:8" } ] }, "documentation": { - "id": 1515, + "id": 1512, "nodeType": "StructuredDocumentation", "src": "227:1191:8", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1529, + "id": 1526, "implemented": true, "kind": "function", "modifiers": [], @@ -154,17 +154,17 @@ "nameLocation": "1432:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1518, + "id": 1515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1514, "mutability": "mutable", "name": "account", "nameLocation": "1451:7:8", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1443:15:8", "stateVariable": false, "storageLocation": "default", @@ -173,7 +173,7 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1443:7:8", @@ -189,17 +189,17 @@ "src": "1442:17:8" }, "returnParameters": { - "id": 1521, + "id": 1518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1520, + "id": 1517, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1483:4:8", "stateVariable": false, "storageLocation": "default", @@ -208,7 +208,7 @@ "typeString": "bool" }, "typeName": { - "id": 1519, + "id": 1516, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1483:4:8", @@ -222,7 +222,7 @@ ], "src": "1482:6:8" }, - "scope": 1841, + "scope": 1838, "src": "1423:320:8", "stateMutability": "view", "virtual": false, @@ -230,7 +230,7 @@ }, { "body": { - "id": 1562, + "id": 1559, "nodeType": "Block", "src": "2729:241:8", "statements": [ @@ -242,7 +242,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1544, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -251,14 +251,14 @@ "expression": { "arguments": [ { - "id": 1540, + "id": 1537, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "2755:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -266,11 +266,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1539, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, @@ -282,14 +282,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1538, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", "src": "2747:7:8", "typeDescriptions": {} } }, - "id": 1541, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, @@ -305,7 +305,7 @@ "typeString": "address" } }, - "id": 1542, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -322,11 +322,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1543, + "id": 1540, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2772:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -341,7 +341,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1545, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -367,7 +367,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1537, + "id": 1534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -381,7 +381,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1546, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, @@ -397,24 +397,24 @@ "typeString": "tuple()" } }, - "id": 1547, + "id": 1544, "nodeType": "ExpressionStatement", "src": "2739:73:8" }, { "assignments": [ - 1549, + 1546, null ], "declarations": [ { "constant": false, - "id": 1549, + "id": 1546, "mutability": "mutable", "name": "success", "nameLocation": "2829:7:8", "nodeType": "VariableDeclaration", - "scope": 1562, + "scope": 1559, "src": "2824:12:8", "stateVariable": false, "storageLocation": "default", @@ -423,7 +423,7 @@ "typeString": "bool" }, "typeName": { - "id": 1548, + "id": 1545, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2824:4:8", @@ -436,12 +436,12 @@ }, null ], - "id": 1556, + "id": 1553, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1554, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, @@ -471,18 +471,18 @@ } ], "expression": { - "id": 1550, + "id": 1547, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1532, + "referencedDeclaration": 1529, "src": "2842:9:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1551, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": false, @@ -496,7 +496,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1553, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -507,11 +507,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1552, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2864:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -525,7 +525,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1555, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -548,11 +548,11 @@ "expression": { "arguments": [ { - "id": 1558, + "id": 1555, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1549, + "referencedDeclaration": 1546, "src": "2893:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -561,7 +561,7 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1559, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -587,7 +587,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1557, + "id": 1554, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -601,7 +601,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1560, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,19 +617,19 @@ "typeString": "tuple()" } }, - "id": 1561, + "id": 1558, "nodeType": "ExpressionStatement", "src": "2885:78:8" } ] }, "documentation": { - "id": 1530, + "id": 1527, "nodeType": "StructuredDocumentation", "src": "1749:904:8", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1563, + "id": 1560, "implemented": true, "kind": "function", "modifiers": [], @@ -637,17 +637,17 @@ "nameLocation": "2667:9:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1535, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1532, + "id": 1529, "mutability": "mutable", "name": "recipient", "nameLocation": "2693:9:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2677:25:8", "stateVariable": false, "storageLocation": "default", @@ -656,7 +656,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1531, + "id": 1528, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:15:8", @@ -670,12 +670,12 @@ }, { "constant": false, - "id": 1534, + "id": 1531, "mutability": "mutable", "name": "amount", "nameLocation": "2712:6:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2704:14:8", "stateVariable": false, "storageLocation": "default", @@ -684,7 +684,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1533, + "id": 1530, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2704:7:8", @@ -699,12 +699,12 @@ "src": "2676:43:8" }, "returnParameters": { - "id": 1536, + "id": 1533, "nodeType": "ParameterList", "parameters": [], "src": "2729:0:8" }, - "scope": 1841, + "scope": 1838, "src": "2658:312:8", "stateMutability": "nonpayable", "virtual": false, @@ -712,7 +712,7 @@ }, { "body": { - "id": 1580, + "id": 1577, "nodeType": "Block", "src": "3801:96:8", "statements": [ @@ -720,11 +720,11 @@ "expression": { "arguments": [ { - "id": 1574, + "id": 1571, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1566, + "referencedDeclaration": 1563, "src": "3840:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -732,11 +732,11 @@ } }, { - "id": 1575, + "id": 1572, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1568, + "referencedDeclaration": 1565, "src": "3848:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -745,7 +745,7 @@ }, { "hexValue": "30", - "id": 1576, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": true, @@ -761,7 +761,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1577, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": true, @@ -795,21 +795,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1573, + "id": 1570, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "3818:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1578, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -825,20 +825,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1572, - "id": 1579, + "functionReturnParameters": 1569, + "id": 1576, "nodeType": "Return", "src": "3811:79:8" } ] }, "documentation": { - "id": 1564, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "2976:731:8", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1581, + "id": 1578, "implemented": true, "kind": "function", "modifiers": [], @@ -846,17 +846,17 @@ "nameLocation": "3721:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1569, + "id": 1566, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1566, + "id": 1563, "mutability": "mutable", "name": "target", "nameLocation": "3742:6:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3734:14:8", "stateVariable": false, "storageLocation": "default", @@ -865,7 +865,7 @@ "typeString": "address" }, "typeName": { - "id": 1565, + "id": 1562, "name": "address", "nodeType": "ElementaryTypeName", "src": "3734:7:8", @@ -879,12 +879,12 @@ }, { "constant": false, - "id": 1568, + "id": 1565, "mutability": "mutable", "name": "data", "nameLocation": "3763:4:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3750:17:8", "stateVariable": false, "storageLocation": "memory", @@ -893,7 +893,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1564, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3750:5:8", @@ -908,17 +908,17 @@ "src": "3733:35:8" }, "returnParameters": { - "id": 1572, + "id": 1569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1571, + "id": 1568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3787:12:8", "stateVariable": false, "storageLocation": "memory", @@ -927,7 +927,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1570, + "id": 1567, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3787:5:8", @@ -941,7 +941,7 @@ ], "src": "3786:14:8" }, - "scope": 1841, + "scope": 1838, "src": "3712:185:8", "stateMutability": "nonpayable", "virtual": false, @@ -949,7 +949,7 @@ }, { "body": { - "id": 1600, + "id": 1597, "nodeType": "Block", "src": "4266:76:8", "statements": [ @@ -957,11 +957,11 @@ "expression": { "arguments": [ { - "id": 1594, + "id": 1591, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1584, + "referencedDeclaration": 1581, "src": "4305:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -969,11 +969,11 @@ } }, { - "id": 1595, + "id": 1592, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1586, + "referencedDeclaration": 1583, "src": "4313:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -982,7 +982,7 @@ }, { "hexValue": "30", - "id": 1596, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, @@ -997,11 +997,11 @@ "value": "0" }, { - "id": 1597, + "id": 1594, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, + "referencedDeclaration": 1585, "src": "4322:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1028,21 +1028,21 @@ "typeString": "string memory" } ], - "id": 1593, + "id": 1590, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4283:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1598, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, @@ -1058,20 +1058,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1592, - "id": 1599, + "functionReturnParameters": 1589, + "id": 1596, "nodeType": "Return", "src": "4276:59:8" } ] }, "documentation": { - "id": 1582, + "id": 1579, "nodeType": "StructuredDocumentation", "src": "3903:211:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1601, + "id": 1598, "implemented": true, "kind": "function", "modifiers": [], @@ -1079,17 +1079,17 @@ "nameLocation": "4128:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1589, + "id": 1586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1584, + "id": 1581, "mutability": "mutable", "name": "target", "nameLocation": "4158:6:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4150:14:8", "stateVariable": false, "storageLocation": "default", @@ -1098,7 +1098,7 @@ "typeString": "address" }, "typeName": { - "id": 1583, + "id": 1580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4150:7:8", @@ -1112,12 +1112,12 @@ }, { "constant": false, - "id": 1586, + "id": 1583, "mutability": "mutable", "name": "data", "nameLocation": "4187:4:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4174:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1126,7 +1126,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1585, + "id": 1582, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4174:5:8", @@ -1139,12 +1139,12 @@ }, { "constant": false, - "id": 1588, + "id": 1585, "mutability": "mutable", "name": "errorMessage", "nameLocation": "4215:12:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4201:26:8", "stateVariable": false, "storageLocation": "memory", @@ -1153,7 +1153,7 @@ "typeString": "string" }, "typeName": { - "id": 1587, + "id": 1584, "name": "string", "nodeType": "ElementaryTypeName", "src": "4201:6:8", @@ -1168,17 +1168,17 @@ "src": "4140:93:8" }, "returnParameters": { - "id": 1592, + "id": 1589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1591, + "id": 1588, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4252:12:8", "stateVariable": false, "storageLocation": "memory", @@ -1187,7 +1187,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1590, + "id": 1587, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4252:5:8", @@ -1201,7 +1201,7 @@ ], "src": "4251:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4119:223:8", "stateMutability": "nonpayable", "virtual": false, @@ -1209,7 +1209,7 @@ }, { "body": { - "id": 1620, + "id": 1617, "nodeType": "Block", "src": "4817:111:8", "statements": [ @@ -1217,11 +1217,11 @@ "expression": { "arguments": [ { - "id": 1614, + "id": 1611, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, + "referencedDeclaration": 1601, "src": "4856:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1229,11 +1229,11 @@ } }, { - "id": 1615, + "id": 1612, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, + "referencedDeclaration": 1603, "src": "4864:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1241,11 +1241,11 @@ } }, { - "id": 1616, + "id": 1613, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1608, + "referencedDeclaration": 1605, "src": "4870:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1254,7 +1254,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1617, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -1288,21 +1288,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1613, + "id": 1610, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4834:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1618, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -1318,20 +1318,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1612, - "id": 1619, + "functionReturnParameters": 1609, + "id": 1616, "nodeType": "Return", "src": "4827:94:8" } ] }, "documentation": { - "id": 1602, + "id": 1599, "nodeType": "StructuredDocumentation", "src": "4348:351:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1621, + "id": 1618, "implemented": true, "kind": "function", "modifiers": [], @@ -1339,17 +1339,17 @@ "nameLocation": "4713:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1604, + "id": 1601, "mutability": "mutable", "name": "target", "nameLocation": "4743:6:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4735:14:8", "stateVariable": false, "storageLocation": "default", @@ -1358,7 +1358,7 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 1600, "name": "address", "nodeType": "ElementaryTypeName", "src": "4735:7:8", @@ -1372,12 +1372,12 @@ }, { "constant": false, - "id": 1606, + "id": 1603, "mutability": "mutable", "name": "data", "nameLocation": "4764:4:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4751:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1386,7 +1386,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1605, + "id": 1602, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4751:5:8", @@ -1399,12 +1399,12 @@ }, { "constant": false, - "id": 1608, + "id": 1605, "mutability": "mutable", "name": "value", "nameLocation": "4778:5:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4770:13:8", "stateVariable": false, "storageLocation": "default", @@ -1413,7 +1413,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1607, + "id": 1604, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4770:7:8", @@ -1428,17 +1428,17 @@ "src": "4734:50:8" }, "returnParameters": { - "id": 1612, + "id": 1609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1611, + "id": 1608, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4803:12:8", "stateVariable": false, "storageLocation": "memory", @@ -1447,7 +1447,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1610, + "id": 1607, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4803:5:8", @@ -1461,7 +1461,7 @@ ], "src": "4802:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4704:224:8", "stateMutability": "nonpayable", "virtual": false, @@ -1469,7 +1469,7 @@ }, { "body": { - "id": 1664, + "id": 1661, "nodeType": "Block", "src": "5355:267:8", "statements": [ @@ -1481,7 +1481,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1642, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -1490,14 +1490,14 @@ "expression": { "arguments": [ { - "id": 1638, + "id": 1635, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "5381:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -1505,11 +1505,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1637, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": true, @@ -1521,14 +1521,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1636, + "id": 1633, "name": "address", "nodeType": "ElementaryTypeName", "src": "5373:7:8", "typeDescriptions": {} } }, - "id": 1639, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,7 +1544,7 @@ "typeString": "address" } }, - "id": 1640, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -1561,11 +1561,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1641, + "id": 1638, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5398:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1580,7 +1580,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1643, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": true, @@ -1606,7 +1606,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1635, + "id": 1632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1620,7 +1620,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1644, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, @@ -1636,24 +1636,24 @@ "typeString": "tuple()" } }, - "id": 1645, + "id": 1642, "nodeType": "ExpressionStatement", "src": "5365:81:8" }, { "assignments": [ - 1647, - 1649 + 1644, + 1646 ], "declarations": [ { "constant": false, - "id": 1647, + "id": 1644, "mutability": "mutable", "name": "success", "nameLocation": "5462:7:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5457:12:8", "stateVariable": false, "storageLocation": "default", @@ -1662,7 +1662,7 @@ "typeString": "bool" }, "typeName": { - "id": 1646, + "id": 1643, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5457:4:8", @@ -1675,12 +1675,12 @@ }, { "constant": false, - "id": 1649, + "id": 1646, "mutability": "mutable", "name": "returndata", "nameLocation": "5484:10:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5471:23:8", "stateVariable": false, "storageLocation": "memory", @@ -1689,7 +1689,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1648, + "id": 1645, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5471:5:8", @@ -1701,15 +1701,15 @@ "visibility": "internal" } ], - "id": 1656, + "id": 1653, "initialValue": { "arguments": [ { - "id": 1654, + "id": 1651, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, + "referencedDeclaration": 1623, "src": "5524:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1732,18 +1732,18 @@ } ], "expression": { - "id": 1650, + "id": 1647, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5498:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1651, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1757,7 +1757,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1653, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, @@ -1768,11 +1768,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1652, + "id": 1649, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5517:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1786,7 +1786,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1655, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, @@ -1809,11 +1809,11 @@ "expression": { "arguments": [ { - "id": 1658, + "id": 1655, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5573:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1821,11 +1821,11 @@ } }, { - "id": 1659, + "id": 1656, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1647, + "referencedDeclaration": 1644, "src": "5581:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1833,11 +1833,11 @@ } }, { - "id": 1660, + "id": 1657, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, + "referencedDeclaration": 1646, "src": "5590:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1845,11 +1845,11 @@ } }, { - "id": 1661, + "id": 1658, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, + "referencedDeclaration": 1627, "src": "5602:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1876,18 +1876,18 @@ "typeString": "string memory" } ], - "id": 1657, + "id": 1654, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "5546:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1662, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -1903,20 +1903,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1634, - "id": 1663, + "functionReturnParameters": 1631, + "id": 1660, "nodeType": "Return", "src": "5539:76:8" } ] }, "documentation": { - "id": 1622, + "id": 1619, "nodeType": "StructuredDocumentation", "src": "4934:237:8", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1665, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [], @@ -1924,17 +1924,17 @@ "nameLocation": "5185:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1631, + "id": 1628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1624, + "id": 1621, "mutability": "mutable", "name": "target", "nameLocation": "5224:6:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5216:14:8", "stateVariable": false, "storageLocation": "default", @@ -1943,7 +1943,7 @@ "typeString": "address" }, "typeName": { - "id": 1623, + "id": 1620, "name": "address", "nodeType": "ElementaryTypeName", "src": "5216:7:8", @@ -1957,12 +1957,12 @@ }, { "constant": false, - "id": 1626, + "id": 1623, "mutability": "mutable", "name": "data", "nameLocation": "5253:4:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5240:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1971,7 +1971,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1625, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5240:5:8", @@ -1984,12 +1984,12 @@ }, { "constant": false, - "id": 1628, + "id": 1625, "mutability": "mutable", "name": "value", "nameLocation": "5275:5:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5267:13:8", "stateVariable": false, "storageLocation": "default", @@ -1998,7 +1998,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5267:7:8", @@ -2011,12 +2011,12 @@ }, { "constant": false, - "id": 1630, + "id": 1627, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5304:12:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5290:26:8", "stateVariable": false, "storageLocation": "memory", @@ -2025,7 +2025,7 @@ "typeString": "string" }, "typeName": { - "id": 1629, + "id": 1626, "name": "string", "nodeType": "ElementaryTypeName", "src": "5290:6:8", @@ -2040,17 +2040,17 @@ "src": "5206:116:8" }, "returnParameters": { - "id": 1634, + "id": 1631, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1633, + "id": 1630, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5341:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2059,7 +2059,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1632, + "id": 1629, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5341:5:8", @@ -2073,7 +2073,7 @@ ], "src": "5340:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5176:446:8", "stateMutability": "nonpayable", "virtual": false, @@ -2081,7 +2081,7 @@ }, { "body": { - "id": 1681, + "id": 1678, "nodeType": "Block", "src": "5899:97:8", "statements": [ @@ -2089,11 +2089,11 @@ "expression": { "arguments": [ { - "id": 1676, + "id": 1673, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, + "referencedDeclaration": 1665, "src": "5935:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2101,11 +2101,11 @@ } }, { - "id": 1677, + "id": 1674, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1670, + "referencedDeclaration": 1667, "src": "5943:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2114,7 +2114,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1678, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -2144,21 +2144,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1675, + "id": 1672, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1682, - 1711 + 1679, + 1708 ], - "referencedDeclaration": 1711, + "referencedDeclaration": 1708, "src": "5916:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1679, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -2174,20 +2174,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1674, - "id": 1680, + "functionReturnParameters": 1671, + "id": 1677, "nodeType": "Return", "src": "5909:80:8" } ] }, "documentation": { - "id": 1666, + "id": 1663, "nodeType": "StructuredDocumentation", "src": "5628:166:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1682, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], @@ -2195,17 +2195,17 @@ "nameLocation": "5808:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1671, + "id": 1668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1668, + "id": 1665, "mutability": "mutable", "name": "target", "nameLocation": "5835:6:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5827:14:8", "stateVariable": false, "storageLocation": "default", @@ -2214,7 +2214,7 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 1664, "name": "address", "nodeType": "ElementaryTypeName", "src": "5827:7:8", @@ -2228,12 +2228,12 @@ }, { "constant": false, - "id": 1670, + "id": 1667, "mutability": "mutable", "name": "data", "nameLocation": "5856:4:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5843:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2242,7 +2242,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1666, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5843:5:8", @@ -2257,17 +2257,17 @@ "src": "5826:35:8" }, "returnParameters": { - "id": 1674, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1670, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5885:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2276,7 +2276,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1672, + "id": 1669, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5885:5:8", @@ -2290,7 +2290,7 @@ ], "src": "5884:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5799:197:8", "stateMutability": "view", "virtual": false, @@ -2298,24 +2298,24 @@ }, { "body": { - "id": 1710, + "id": 1707, "nodeType": "Block", "src": "6338:168:8", "statements": [ { "assignments": [ - 1695, - 1697 + 1692, + 1694 ], "declarations": [ { "constant": false, - "id": 1695, + "id": 1692, "mutability": "mutable", "name": "success", "nameLocation": "6354:7:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6349:12:8", "stateVariable": false, "storageLocation": "default", @@ -2324,7 +2324,7 @@ "typeString": "bool" }, "typeName": { - "id": 1694, + "id": 1691, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6349:4:8", @@ -2337,12 +2337,12 @@ }, { "constant": false, - "id": 1697, + "id": 1694, "mutability": "mutable", "name": "returndata", "nameLocation": "6376:10:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6363:23:8", "stateVariable": false, "storageLocation": "memory", @@ -2351,7 +2351,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1696, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6363:5:8", @@ -2363,15 +2363,15 @@ "visibility": "internal" } ], - "id": 1702, + "id": 1699, "initialValue": { "arguments": [ { - "id": 1700, + "id": 1697, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, + "referencedDeclaration": 1684, "src": "6408:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2387,18 +2387,18 @@ } ], "expression": { - "id": 1698, + "id": 1695, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6390:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1699, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -2412,7 +2412,7 @@ "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1701, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, @@ -2435,11 +2435,11 @@ "expression": { "arguments": [ { - "id": 1704, + "id": 1701, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6457:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2447,11 +2447,11 @@ } }, { - "id": 1705, + "id": 1702, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, + "referencedDeclaration": 1692, "src": "6465:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2459,11 +2459,11 @@ } }, { - "id": 1706, + "id": 1703, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, + "referencedDeclaration": 1694, "src": "6474:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2471,11 +2471,11 @@ } }, { - "id": 1707, + "id": 1704, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1689, + "referencedDeclaration": 1686, "src": "6486:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2502,18 +2502,18 @@ "typeString": "string memory" } ], - "id": 1703, + "id": 1700, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "6430:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1708, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, @@ -2529,20 +2529,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1693, - "id": 1709, + "functionReturnParameters": 1690, + "id": 1706, "nodeType": "Return", "src": "6423:76:8" } ] }, "documentation": { - "id": 1683, + "id": 1680, "nodeType": "StructuredDocumentation", "src": "6002:173:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1711, + "id": 1708, "implemented": true, "kind": "function", "modifiers": [], @@ -2550,17 +2550,17 @@ "nameLocation": "6189:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1690, + "id": 1687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1685, + "id": 1682, "mutability": "mutable", "name": "target", "nameLocation": "6225:6:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6217:14:8", "stateVariable": false, "storageLocation": "default", @@ -2569,7 +2569,7 @@ "typeString": "address" }, "typeName": { - "id": 1684, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", "src": "6217:7:8", @@ -2583,12 +2583,12 @@ }, { "constant": false, - "id": 1687, + "id": 1684, "mutability": "mutable", "name": "data", "nameLocation": "6254:4:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6241:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2597,7 +2597,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1686, + "id": 1683, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6241:5:8", @@ -2610,12 +2610,12 @@ }, { "constant": false, - "id": 1689, + "id": 1686, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6282:12:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6268:26:8", "stateVariable": false, "storageLocation": "memory", @@ -2624,7 +2624,7 @@ "typeString": "string" }, "typeName": { - "id": 1688, + "id": 1685, "name": "string", "nodeType": "ElementaryTypeName", "src": "6268:6:8", @@ -2639,17 +2639,17 @@ "src": "6207:93:8" }, "returnParameters": { - "id": 1693, + "id": 1690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1692, + "id": 1689, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6324:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2658,7 +2658,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1691, + "id": 1688, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6324:5:8", @@ -2672,7 +2672,7 @@ ], "src": "6323:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6180:326:8", "stateMutability": "view", "virtual": false, @@ -2680,7 +2680,7 @@ }, { "body": { - "id": 1727, + "id": 1724, "nodeType": "Block", "src": "6782:101:8", "statements": [ @@ -2688,11 +2688,11 @@ "expression": { "arguments": [ { - "id": 1722, + "id": 1719, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1714, + "referencedDeclaration": 1711, "src": "6820:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2700,11 +2700,11 @@ } }, { - "id": 1723, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1713, "src": "6828:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2713,7 +2713,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1724, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -2743,21 +2743,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1721, + "id": 1718, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1728, - 1757 + 1725, + 1754 ], - "referencedDeclaration": 1757, + "referencedDeclaration": 1754, "src": "6799:20:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1725, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -2773,20 +2773,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1720, - "id": 1726, + "functionReturnParameters": 1717, + "id": 1723, "nodeType": "Return", "src": "6792:84:8" } ] }, "documentation": { - "id": 1712, + "id": 1709, "nodeType": "StructuredDocumentation", "src": "6512:168:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1728, + "id": 1725, "implemented": true, "kind": "function", "modifiers": [], @@ -2794,17 +2794,17 @@ "nameLocation": "6694:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1717, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1714, + "id": 1711, "mutability": "mutable", "name": "target", "nameLocation": "6723:6:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6715:14:8", "stateVariable": false, "storageLocation": "default", @@ -2813,7 +2813,7 @@ "typeString": "address" }, "typeName": { - "id": 1713, + "id": 1710, "name": "address", "nodeType": "ElementaryTypeName", "src": "6715:7:8", @@ -2827,12 +2827,12 @@ }, { "constant": false, - "id": 1716, + "id": 1713, "mutability": "mutable", "name": "data", "nameLocation": "6744:4:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6731:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2841,7 +2841,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1712, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6731:5:8", @@ -2856,17 +2856,17 @@ "src": "6714:35:8" }, "returnParameters": { - "id": 1720, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1719, + "id": 1716, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6768:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2875,7 +2875,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1718, + "id": 1715, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6768:5:8", @@ -2889,7 +2889,7 @@ ], "src": "6767:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6685:198:8", "stateMutability": "nonpayable", "virtual": false, @@ -2897,24 +2897,24 @@ }, { "body": { - "id": 1756, + "id": 1753, "nodeType": "Block", "src": "7224:170:8", "statements": [ { "assignments": [ - 1741, - 1743 + 1738, + 1740 ], "declarations": [ { "constant": false, - "id": 1741, + "id": 1738, "mutability": "mutable", "name": "success", "nameLocation": "7240:7:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7235:12:8", "stateVariable": false, "storageLocation": "default", @@ -2923,7 +2923,7 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 1737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7235:4:8", @@ -2936,12 +2936,12 @@ }, { "constant": false, - "id": 1743, + "id": 1740, "mutability": "mutable", "name": "returndata", "nameLocation": "7262:10:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7249:23:8", "stateVariable": false, "storageLocation": "memory", @@ -2950,7 +2950,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1742, + "id": 1739, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7249:5:8", @@ -2962,15 +2962,15 @@ "visibility": "internal" } ], - "id": 1748, + "id": 1745, "initialValue": { "arguments": [ { - "id": 1746, + "id": 1743, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1730, "src": "7296:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2986,18 +2986,18 @@ } ], "expression": { - "id": 1744, + "id": 1741, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7276:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1745, + "id": 1742, "isConstant": false, "isLValue": false, "isPure": false, @@ -3011,7 +3011,7 @@ "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1747, + "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, @@ -3034,11 +3034,11 @@ "expression": { "arguments": [ { - "id": 1750, + "id": 1747, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7345:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3046,11 +3046,11 @@ } }, { - "id": 1751, + "id": 1748, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, + "referencedDeclaration": 1738, "src": "7353:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3058,11 +3058,11 @@ } }, { - "id": 1752, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, + "referencedDeclaration": 1740, "src": "7362:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3070,11 +3070,11 @@ } }, { - "id": 1753, + "id": 1750, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, + "referencedDeclaration": 1732, "src": "7374:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3101,18 +3101,18 @@ "typeString": "string memory" } ], - "id": 1749, + "id": 1746, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "7318:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1754, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -3128,20 +3128,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1739, - "id": 1755, + "functionReturnParameters": 1736, + "id": 1752, "nodeType": "Return", "src": "7311:76:8" } ] }, "documentation": { - "id": 1729, + "id": 1726, "nodeType": "StructuredDocumentation", "src": "6889:175:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1757, + "id": 1754, "implemented": true, "kind": "function", "modifiers": [], @@ -3149,17 +3149,17 @@ "nameLocation": "7078:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1728, "mutability": "mutable", "name": "target", "nameLocation": "7116:6:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7108:14:8", "stateVariable": false, "storageLocation": "default", @@ -3168,7 +3168,7 @@ "typeString": "address" }, "typeName": { - "id": 1730, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", "src": "7108:7:8", @@ -3182,12 +3182,12 @@ }, { "constant": false, - "id": 1733, + "id": 1730, "mutability": "mutable", "name": "data", "nameLocation": "7145:4:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7132:17:8", "stateVariable": false, "storageLocation": "memory", @@ -3196,7 +3196,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1732, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7132:5:8", @@ -3209,12 +3209,12 @@ }, { "constant": false, - "id": 1735, + "id": 1732, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7173:12:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7159:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3223,7 +3223,7 @@ "typeString": "string" }, "typeName": { - "id": 1734, + "id": 1731, "name": "string", "nodeType": "ElementaryTypeName", "src": "7159:6:8", @@ -3238,17 +3238,17 @@ "src": "7098:93:8" }, "returnParameters": { - "id": 1739, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1738, + "id": 1735, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7210:12:8", "stateVariable": false, "storageLocation": "memory", @@ -3257,7 +3257,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1737, + "id": 1734, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7210:5:8", @@ -3271,7 +3271,7 @@ ], "src": "7209:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7069:325:8", "stateMutability": "nonpayable", "virtual": false, @@ -3279,17 +3279,17 @@ }, { "body": { - "id": 1795, + "id": 1792, "nodeType": "Block", "src": "7876:434:8", "statements": [ { "condition": { - "id": 1771, + "id": 1768, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1762, + "referencedDeclaration": 1759, "src": "7890:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3297,7 +3297,7 @@ } }, "falseBody": { - "id": 1793, + "id": 1790, "nodeType": "Block", "src": "8246:58:8", "statements": [ @@ -3305,11 +3305,11 @@ "expression": { "arguments": [ { - "id": 1789, + "id": 1786, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8268:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3317,11 +3317,11 @@ } }, { - "id": 1790, + "id": 1787, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, + "referencedDeclaration": 1763, "src": "8280:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3340,18 +3340,18 @@ "typeString": "string memory" } ], - "id": 1788, + "id": 1785, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8260:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1791, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -3367,17 +3367,17 @@ "typeString": "tuple()" } }, - "id": 1792, + "id": 1789, "nodeType": "ExpressionStatement", "src": "8260:33:8" } ] }, - "id": 1794, + "id": 1791, "nodeType": "IfStatement", "src": "7886:418:8", "trueBody": { - "id": 1787, + "id": 1784, "nodeType": "Block", "src": "7899:341:8", "statements": [ @@ -3387,25 +3387,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1775, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1772, + "id": 1769, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "7917:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1773, + "id": 1770, "isConstant": false, "isLValue": false, "isPure": false, @@ -3423,7 +3423,7 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1774, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, @@ -3443,11 +3443,11 @@ "typeString": "bool" } }, - "id": 1784, + "id": 1781, "nodeType": "IfStatement", "src": "7913:286:8", "trueBody": { - "id": 1783, + "id": 1780, "nodeType": "Block", "src": "7941:258:8", "statements": [ @@ -3457,11 +3457,11 @@ { "arguments": [ { - "id": 1778, + "id": 1775, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, + "referencedDeclaration": 1757, "src": "8143:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3476,18 +3476,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1774, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "8132:10:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": false, @@ -3505,7 +3505,7 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1780, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -3531,7 +3531,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1776, + "id": 1773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3545,7 +3545,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,7 +3561,7 @@ "typeString": "tuple()" } }, - "id": 1782, + "id": 1779, "nodeType": "ExpressionStatement", "src": "8124:60:8" } @@ -3570,19 +3570,19 @@ }, { "expression": { - "id": 1785, + "id": 1782, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8219:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1770, - "id": 1786, + "functionReturnParameters": 1767, + "id": 1783, "nodeType": "Return", "src": "8212:17:8" } @@ -3592,12 +3592,12 @@ ] }, "documentation": { - "id": 1758, + "id": 1755, "nodeType": "StructuredDocumentation", "src": "7400:277:8", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1796, + "id": 1793, "implemented": true, "kind": "function", "modifiers": [], @@ -3605,17 +3605,17 @@ "nameLocation": "7691:26:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1767, + "id": 1764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1760, + "id": 1757, "mutability": "mutable", "name": "target", "nameLocation": "7735:6:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7727:14:8", "stateVariable": false, "storageLocation": "default", @@ -3624,7 +3624,7 @@ "typeString": "address" }, "typeName": { - "id": 1759, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", "src": "7727:7:8", @@ -3638,12 +3638,12 @@ }, { "constant": false, - "id": 1762, + "id": 1759, "mutability": "mutable", "name": "success", "nameLocation": "7756:7:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7751:12:8", "stateVariable": false, "storageLocation": "default", @@ -3652,7 +3652,7 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 1758, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7751:4:8", @@ -3665,12 +3665,12 @@ }, { "constant": false, - "id": 1764, + "id": 1761, "mutability": "mutable", "name": "returndata", "nameLocation": "7786:10:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7773:23:8", "stateVariable": false, "storageLocation": "memory", @@ -3679,7 +3679,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1763, + "id": 1760, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7773:5:8", @@ -3692,12 +3692,12 @@ }, { "constant": false, - "id": 1766, + "id": 1763, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7820:12:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7806:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3706,7 +3706,7 @@ "typeString": "string" }, "typeName": { - "id": 1765, + "id": 1762, "name": "string", "nodeType": "ElementaryTypeName", "src": "7806:6:8", @@ -3721,17 +3721,17 @@ "src": "7717:121:8" }, "returnParameters": { - "id": 1770, + "id": 1767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, + "id": 1766, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7862:12:8", "stateVariable": false, "storageLocation": "memory", @@ -3740,7 +3740,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1768, + "id": 1765, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7862:5:8", @@ -3754,7 +3754,7 @@ ], "src": "7861:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7682:628:8", "stateMutability": "view", "virtual": false, @@ -3762,17 +3762,17 @@ }, { "body": { - "id": 1819, + "id": 1816, "nodeType": "Block", "src": "8691:135:8", "statements": [ { "condition": { - "id": 1808, + "id": 1805, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, + "referencedDeclaration": 1796, "src": "8705:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3780,7 +3780,7 @@ } }, "falseBody": { - "id": 1817, + "id": 1814, "nodeType": "Block", "src": "8762:58:8", "statements": [ @@ -3788,11 +3788,11 @@ "expression": { "arguments": [ { - "id": 1813, + "id": 1810, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8784:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3800,11 +3800,11 @@ } }, { - "id": 1814, + "id": 1811, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, + "referencedDeclaration": 1800, "src": "8796:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3823,18 +3823,18 @@ "typeString": "string memory" } ], - "id": 1812, + "id": 1809, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8776:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1815, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -3850,35 +3850,35 @@ "typeString": "tuple()" } }, - "id": 1816, + "id": 1813, "nodeType": "ExpressionStatement", "src": "8776:33:8" } ] }, - "id": 1818, + "id": 1815, "nodeType": "IfStatement", "src": "8701:119:8", "trueBody": { - "id": 1811, + "id": 1808, "nodeType": "Block", "src": "8714:42:8", "statements": [ { "expression": { - "id": 1809, + "id": 1806, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8735:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1807, - "id": 1810, + "functionReturnParameters": 1804, + "id": 1807, "nodeType": "Return", "src": "8728:17:8" } @@ -3888,12 +3888,12 @@ ] }, "documentation": { - "id": 1797, + "id": 1794, "nodeType": "StructuredDocumentation", "src": "8316:210:8", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1820, + "id": 1817, "implemented": true, "kind": "function", "modifiers": [], @@ -3901,17 +3901,17 @@ "nameLocation": "8540:16:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1804, + "id": 1801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1796, "mutability": "mutable", "name": "success", "nameLocation": "8571:7:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8566:12:8", "stateVariable": false, "storageLocation": "default", @@ -3920,7 +3920,7 @@ "typeString": "bool" }, "typeName": { - "id": 1798, + "id": 1795, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8566:4:8", @@ -3933,12 +3933,12 @@ }, { "constant": false, - "id": 1801, + "id": 1798, "mutability": "mutable", "name": "returndata", "nameLocation": "8601:10:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8588:23:8", "stateVariable": false, "storageLocation": "memory", @@ -3947,7 +3947,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1797, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8588:5:8", @@ -3960,12 +3960,12 @@ }, { "constant": false, - "id": 1803, + "id": 1800, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8635:12:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8621:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3974,7 +3974,7 @@ "typeString": "string" }, "typeName": { - "id": 1802, + "id": 1799, "name": "string", "nodeType": "ElementaryTypeName", "src": "8621:6:8", @@ -3989,17 +3989,17 @@ "src": "8556:97:8" }, "returnParameters": { - "id": 1807, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1806, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8677:12:8", "stateVariable": false, "storageLocation": "memory", @@ -4008,7 +4008,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1805, + "id": 1802, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8677:5:8", @@ -4022,7 +4022,7 @@ ], "src": "8676:14:8" }, - "scope": 1841, + "scope": 1838, "src": "8531:295:8", "stateMutability": "pure", "virtual": false, @@ -4030,7 +4030,7 @@ }, { "body": { - "id": 1839, + "id": 1836, "nodeType": "Block", "src": "8915:457:8", "statements": [ @@ -4040,25 +4040,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1830, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1827, + "id": 1824, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, + "referencedDeclaration": 1819, "src": "8991:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1828, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -4076,7 +4076,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1829, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -4097,7 +4097,7 @@ } }, "falseBody": { - "id": 1837, + "id": 1834, "nodeType": "Block", "src": "9321:45:8", "statements": [ @@ -4105,11 +4105,11 @@ "expression": { "arguments": [ { - "id": 1834, + "id": 1831, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1821, "src": "9342:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4124,7 +4124,7 @@ "typeString": "string memory" } ], - "id": 1833, + "id": 1830, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4138,7 +4138,7 @@ "typeString": "function (string memory) pure" } }, - "id": 1835, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,17 +4154,17 @@ "typeString": "tuple()" } }, - "id": 1836, + "id": 1833, "nodeType": "ExpressionStatement", "src": "9335:20:8" } ] }, - "id": 1838, + "id": 1835, "nodeType": "IfStatement", "src": "8987:379:8", "trueBody": { - "id": 1832, + "id": 1829, "nodeType": "Block", "src": "9014:301:8", "statements": [ @@ -4250,21 +4250,21 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9219:10:8", "valueSize": 1 }, { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9262:10:8", "valueSize": 1 } ], - "id": 1831, + "id": 1828, "nodeType": "InlineAssembly", "src": "9163:142:8" } @@ -4273,7 +4273,7 @@ } ] }, - "id": 1840, + "id": 1837, "implemented": true, "kind": "function", "modifiers": [], @@ -4281,17 +4281,17 @@ "nameLocation": "8841:7:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1825, + "id": 1822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1822, + "id": 1819, "mutability": "mutable", "name": "returndata", "nameLocation": "8862:10:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8849:23:8", "stateVariable": false, "storageLocation": "memory", @@ -4300,7 +4300,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1821, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8849:5:8", @@ -4313,12 +4313,12 @@ }, { "constant": false, - "id": 1824, + "id": 1821, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8888:12:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8874:26:8", "stateVariable": false, "storageLocation": "memory", @@ -4327,7 +4327,7 @@ "typeString": "string" }, "typeName": { - "id": 1823, + "id": 1820, "name": "string", "nodeType": "ElementaryTypeName", "src": "8874:6:8", @@ -4342,19 +4342,19 @@ "src": "8848:53:8" }, "returnParameters": { - "id": 1826, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "8915:0:8" }, - "scope": 1841, + "scope": 1838, "src": "8832:540:8", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1842, + "scope": 1839, "src": "194:9180:8", "usedErrors": [] } @@ -4365,15 +4365,15 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ] }, - "id": 1842, + "id": 1839, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1513, + "id": 1510, "literals": [ "solidity", "^", @@ -4390,15 +4390,15 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1514, + "id": 1511, "nodeType": "StructuredDocumentation", "src": "126:67:8", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1841, + "id": 1838, "linearizedBaseContracts": [ - 1841 + 1838 ], "name": "AddressUpgradeable", "nameLocation": "202:18:8", @@ -4406,7 +4406,7 @@ "nodes": [ { "body": { - "id": 1528, + "id": 1525, "nodeType": "Block", "src": "1489:254:8", "statements": [ @@ -4416,7 +4416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1526, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": false, @@ -4424,18 +4424,18 @@ "leftExpression": { "expression": { "expression": { - "id": 1522, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1514, "src": "1713:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1523, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -4449,7 +4449,7 @@ "typeString": "bytes memory" } }, - "id": 1524, + "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, @@ -4467,7 +4467,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1525, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": true, @@ -4487,20 +4487,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1521, - "id": 1527, + "functionReturnParameters": 1518, + "id": 1524, "nodeType": "Return", "src": "1706:30:8" } ] }, "documentation": { - "id": 1515, + "id": 1512, "nodeType": "StructuredDocumentation", "src": "227:1191:8", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1529, + "id": 1526, "implemented": true, "kind": "function", "modifiers": [], @@ -4508,17 +4508,17 @@ "nameLocation": "1432:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1518, + "id": 1515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1514, "mutability": "mutable", "name": "account", "nameLocation": "1451:7:8", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1443:15:8", "stateVariable": false, "storageLocation": "default", @@ -4527,7 +4527,7 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1443:7:8", @@ -4543,17 +4543,17 @@ "src": "1442:17:8" }, "returnParameters": { - "id": 1521, + "id": 1518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1520, + "id": 1517, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1483:4:8", "stateVariable": false, "storageLocation": "default", @@ -4562,7 +4562,7 @@ "typeString": "bool" }, "typeName": { - "id": 1519, + "id": 1516, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1483:4:8", @@ -4576,7 +4576,7 @@ ], "src": "1482:6:8" }, - "scope": 1841, + "scope": 1838, "src": "1423:320:8", "stateMutability": "view", "virtual": false, @@ -4584,7 +4584,7 @@ }, { "body": { - "id": 1562, + "id": 1559, "nodeType": "Block", "src": "2729:241:8", "statements": [ @@ -4596,7 +4596,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1544, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -4605,14 +4605,14 @@ "expression": { "arguments": [ { - "id": 1540, + "id": 1537, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "2755:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -4620,11 +4620,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1539, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, @@ -4636,14 +4636,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1538, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", "src": "2747:7:8", "typeDescriptions": {} } }, - "id": 1541, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, @@ -4659,7 +4659,7 @@ "typeString": "address" } }, - "id": 1542, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -4676,11 +4676,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1543, + "id": 1540, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2772:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4695,7 +4695,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1545, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -4721,7 +4721,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1537, + "id": 1534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4735,7 +4735,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1546, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, @@ -4751,24 +4751,24 @@ "typeString": "tuple()" } }, - "id": 1547, + "id": 1544, "nodeType": "ExpressionStatement", "src": "2739:73:8" }, { "assignments": [ - 1549, + 1546, null ], "declarations": [ { "constant": false, - "id": 1549, + "id": 1546, "mutability": "mutable", "name": "success", "nameLocation": "2829:7:8", "nodeType": "VariableDeclaration", - "scope": 1562, + "scope": 1559, "src": "2824:12:8", "stateVariable": false, "storageLocation": "default", @@ -4777,7 +4777,7 @@ "typeString": "bool" }, "typeName": { - "id": 1548, + "id": 1545, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2824:4:8", @@ -4790,12 +4790,12 @@ }, null ], - "id": 1556, + "id": 1553, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1554, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, @@ -4825,18 +4825,18 @@ } ], "expression": { - "id": 1550, + "id": 1547, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1532, + "referencedDeclaration": 1529, "src": "2842:9:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1551, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": false, @@ -4850,7 +4850,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1553, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,11 +4861,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1552, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2864:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4879,7 +4879,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1555, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -4902,11 +4902,11 @@ "expression": { "arguments": [ { - "id": 1558, + "id": 1555, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1549, + "referencedDeclaration": 1546, "src": "2893:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4915,7 +4915,7 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1559, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -4941,7 +4941,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1557, + "id": 1554, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4955,7 +4955,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1560, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -4971,19 +4971,19 @@ "typeString": "tuple()" } }, - "id": 1561, + "id": 1558, "nodeType": "ExpressionStatement", "src": "2885:78:8" } ] }, "documentation": { - "id": 1530, + "id": 1527, "nodeType": "StructuredDocumentation", "src": "1749:904:8", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1563, + "id": 1560, "implemented": true, "kind": "function", "modifiers": [], @@ -4991,17 +4991,17 @@ "nameLocation": "2667:9:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1535, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1532, + "id": 1529, "mutability": "mutable", "name": "recipient", "nameLocation": "2693:9:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2677:25:8", "stateVariable": false, "storageLocation": "default", @@ -5010,7 +5010,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1531, + "id": 1528, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:15:8", @@ -5024,12 +5024,12 @@ }, { "constant": false, - "id": 1534, + "id": 1531, "mutability": "mutable", "name": "amount", "nameLocation": "2712:6:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2704:14:8", "stateVariable": false, "storageLocation": "default", @@ -5038,7 +5038,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1533, + "id": 1530, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2704:7:8", @@ -5053,12 +5053,12 @@ "src": "2676:43:8" }, "returnParameters": { - "id": 1536, + "id": 1533, "nodeType": "ParameterList", "parameters": [], "src": "2729:0:8" }, - "scope": 1841, + "scope": 1838, "src": "2658:312:8", "stateMutability": "nonpayable", "virtual": false, @@ -5066,7 +5066,7 @@ }, { "body": { - "id": 1580, + "id": 1577, "nodeType": "Block", "src": "3801:96:8", "statements": [ @@ -5074,11 +5074,11 @@ "expression": { "arguments": [ { - "id": 1574, + "id": 1571, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1566, + "referencedDeclaration": 1563, "src": "3840:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5086,11 +5086,11 @@ } }, { - "id": 1575, + "id": 1572, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1568, + "referencedDeclaration": 1565, "src": "3848:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5099,7 +5099,7 @@ }, { "hexValue": "30", - "id": 1576, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": true, @@ -5115,7 +5115,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1577, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": true, @@ -5149,21 +5149,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1573, + "id": 1570, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "3818:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1578, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -5179,20 +5179,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1572, - "id": 1579, + "functionReturnParameters": 1569, + "id": 1576, "nodeType": "Return", "src": "3811:79:8" } ] }, "documentation": { - "id": 1564, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "2976:731:8", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1581, + "id": 1578, "implemented": true, "kind": "function", "modifiers": [], @@ -5200,17 +5200,17 @@ "nameLocation": "3721:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1569, + "id": 1566, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1566, + "id": 1563, "mutability": "mutable", "name": "target", "nameLocation": "3742:6:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3734:14:8", "stateVariable": false, "storageLocation": "default", @@ -5219,7 +5219,7 @@ "typeString": "address" }, "typeName": { - "id": 1565, + "id": 1562, "name": "address", "nodeType": "ElementaryTypeName", "src": "3734:7:8", @@ -5233,12 +5233,12 @@ }, { "constant": false, - "id": 1568, + "id": 1565, "mutability": "mutable", "name": "data", "nameLocation": "3763:4:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3750:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5247,7 +5247,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1564, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3750:5:8", @@ -5262,17 +5262,17 @@ "src": "3733:35:8" }, "returnParameters": { - "id": 1572, + "id": 1569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1571, + "id": 1568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3787:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5281,7 +5281,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1570, + "id": 1567, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3787:5:8", @@ -5295,7 +5295,7 @@ ], "src": "3786:14:8" }, - "scope": 1841, + "scope": 1838, "src": "3712:185:8", "stateMutability": "nonpayable", "virtual": false, @@ -5303,7 +5303,7 @@ }, { "body": { - "id": 1600, + "id": 1597, "nodeType": "Block", "src": "4266:76:8", "statements": [ @@ -5311,11 +5311,11 @@ "expression": { "arguments": [ { - "id": 1594, + "id": 1591, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1584, + "referencedDeclaration": 1581, "src": "4305:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5323,11 +5323,11 @@ } }, { - "id": 1595, + "id": 1592, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1586, + "referencedDeclaration": 1583, "src": "4313:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5336,7 +5336,7 @@ }, { "hexValue": "30", - "id": 1596, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, @@ -5351,11 +5351,11 @@ "value": "0" }, { - "id": 1597, + "id": 1594, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, + "referencedDeclaration": 1585, "src": "4322:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5382,21 +5382,21 @@ "typeString": "string memory" } ], - "id": 1593, + "id": 1590, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4283:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1598, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, @@ -5412,20 +5412,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1592, - "id": 1599, + "functionReturnParameters": 1589, + "id": 1596, "nodeType": "Return", "src": "4276:59:8" } ] }, "documentation": { - "id": 1582, + "id": 1579, "nodeType": "StructuredDocumentation", "src": "3903:211:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1601, + "id": 1598, "implemented": true, "kind": "function", "modifiers": [], @@ -5433,17 +5433,17 @@ "nameLocation": "4128:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1589, + "id": 1586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1584, + "id": 1581, "mutability": "mutable", "name": "target", "nameLocation": "4158:6:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4150:14:8", "stateVariable": false, "storageLocation": "default", @@ -5452,7 +5452,7 @@ "typeString": "address" }, "typeName": { - "id": 1583, + "id": 1580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4150:7:8", @@ -5466,12 +5466,12 @@ }, { "constant": false, - "id": 1586, + "id": 1583, "mutability": "mutable", "name": "data", "nameLocation": "4187:4:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4174:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5480,7 +5480,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1585, + "id": 1582, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4174:5:8", @@ -5493,12 +5493,12 @@ }, { "constant": false, - "id": 1588, + "id": 1585, "mutability": "mutable", "name": "errorMessage", "nameLocation": "4215:12:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4201:26:8", "stateVariable": false, "storageLocation": "memory", @@ -5507,7 +5507,7 @@ "typeString": "string" }, "typeName": { - "id": 1587, + "id": 1584, "name": "string", "nodeType": "ElementaryTypeName", "src": "4201:6:8", @@ -5522,17 +5522,17 @@ "src": "4140:93:8" }, "returnParameters": { - "id": 1592, + "id": 1589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1591, + "id": 1588, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4252:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5541,7 +5541,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1590, + "id": 1587, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4252:5:8", @@ -5555,7 +5555,7 @@ ], "src": "4251:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4119:223:8", "stateMutability": "nonpayable", "virtual": false, @@ -5563,7 +5563,7 @@ }, { "body": { - "id": 1620, + "id": 1617, "nodeType": "Block", "src": "4817:111:8", "statements": [ @@ -5571,11 +5571,11 @@ "expression": { "arguments": [ { - "id": 1614, + "id": 1611, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, + "referencedDeclaration": 1601, "src": "4856:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5583,11 +5583,11 @@ } }, { - "id": 1615, + "id": 1612, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, + "referencedDeclaration": 1603, "src": "4864:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5595,11 +5595,11 @@ } }, { - "id": 1616, + "id": 1613, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1608, + "referencedDeclaration": 1605, "src": "4870:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5608,7 +5608,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1617, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -5642,21 +5642,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1613, + "id": 1610, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4834:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1618, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -5672,20 +5672,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1612, - "id": 1619, + "functionReturnParameters": 1609, + "id": 1616, "nodeType": "Return", "src": "4827:94:8" } ] }, "documentation": { - "id": 1602, + "id": 1599, "nodeType": "StructuredDocumentation", "src": "4348:351:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1621, + "id": 1618, "implemented": true, "kind": "function", "modifiers": [], @@ -5693,17 +5693,17 @@ "nameLocation": "4713:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1604, + "id": 1601, "mutability": "mutable", "name": "target", "nameLocation": "4743:6:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4735:14:8", "stateVariable": false, "storageLocation": "default", @@ -5712,7 +5712,7 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 1600, "name": "address", "nodeType": "ElementaryTypeName", "src": "4735:7:8", @@ -5726,12 +5726,12 @@ }, { "constant": false, - "id": 1606, + "id": 1603, "mutability": "mutable", "name": "data", "nameLocation": "4764:4:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4751:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5740,7 +5740,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1605, + "id": 1602, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4751:5:8", @@ -5753,12 +5753,12 @@ }, { "constant": false, - "id": 1608, + "id": 1605, "mutability": "mutable", "name": "value", "nameLocation": "4778:5:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4770:13:8", "stateVariable": false, "storageLocation": "default", @@ -5767,7 +5767,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1607, + "id": 1604, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4770:7:8", @@ -5782,17 +5782,17 @@ "src": "4734:50:8" }, "returnParameters": { - "id": 1612, + "id": 1609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1611, + "id": 1608, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4803:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5801,7 +5801,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1610, + "id": 1607, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4803:5:8", @@ -5815,7 +5815,7 @@ ], "src": "4802:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4704:224:8", "stateMutability": "nonpayable", "virtual": false, @@ -5823,7 +5823,7 @@ }, { "body": { - "id": 1664, + "id": 1661, "nodeType": "Block", "src": "5355:267:8", "statements": [ @@ -5835,7 +5835,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1642, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -5844,14 +5844,14 @@ "expression": { "arguments": [ { - "id": 1638, + "id": 1635, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "5381:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -5859,11 +5859,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1637, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": true, @@ -5875,14 +5875,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1636, + "id": 1633, "name": "address", "nodeType": "ElementaryTypeName", "src": "5373:7:8", "typeDescriptions": {} } }, - "id": 1639, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, @@ -5898,7 +5898,7 @@ "typeString": "address" } }, - "id": 1640, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -5915,11 +5915,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1641, + "id": 1638, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5398:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5934,7 +5934,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1643, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": true, @@ -5960,7 +5960,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1635, + "id": 1632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5974,7 +5974,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1644, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, @@ -5990,24 +5990,24 @@ "typeString": "tuple()" } }, - "id": 1645, + "id": 1642, "nodeType": "ExpressionStatement", "src": "5365:81:8" }, { "assignments": [ - 1647, - 1649 + 1644, + 1646 ], "declarations": [ { "constant": false, - "id": 1647, + "id": 1644, "mutability": "mutable", "name": "success", "nameLocation": "5462:7:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5457:12:8", "stateVariable": false, "storageLocation": "default", @@ -6016,7 +6016,7 @@ "typeString": "bool" }, "typeName": { - "id": 1646, + "id": 1643, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5457:4:8", @@ -6029,12 +6029,12 @@ }, { "constant": false, - "id": 1649, + "id": 1646, "mutability": "mutable", "name": "returndata", "nameLocation": "5484:10:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5471:23:8", "stateVariable": false, "storageLocation": "memory", @@ -6043,7 +6043,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1648, + "id": 1645, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5471:5:8", @@ -6055,15 +6055,15 @@ "visibility": "internal" } ], - "id": 1656, + "id": 1653, "initialValue": { "arguments": [ { - "id": 1654, + "id": 1651, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, + "referencedDeclaration": 1623, "src": "5524:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6086,18 +6086,18 @@ } ], "expression": { - "id": 1650, + "id": 1647, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5498:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1651, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -6111,7 +6111,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1653, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, @@ -6122,11 +6122,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1652, + "id": 1649, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5517:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6140,7 +6140,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1655, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, @@ -6163,11 +6163,11 @@ "expression": { "arguments": [ { - "id": 1658, + "id": 1655, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5573:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6175,11 +6175,11 @@ } }, { - "id": 1659, + "id": 1656, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1647, + "referencedDeclaration": 1644, "src": "5581:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6187,11 +6187,11 @@ } }, { - "id": 1660, + "id": 1657, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, + "referencedDeclaration": 1646, "src": "5590:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6199,11 +6199,11 @@ } }, { - "id": 1661, + "id": 1658, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, + "referencedDeclaration": 1627, "src": "5602:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6230,18 +6230,18 @@ "typeString": "string memory" } ], - "id": 1657, + "id": 1654, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "5546:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1662, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -6257,20 +6257,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1634, - "id": 1663, + "functionReturnParameters": 1631, + "id": 1660, "nodeType": "Return", "src": "5539:76:8" } ] }, "documentation": { - "id": 1622, + "id": 1619, "nodeType": "StructuredDocumentation", "src": "4934:237:8", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1665, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [], @@ -6278,17 +6278,17 @@ "nameLocation": "5185:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1631, + "id": 1628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1624, + "id": 1621, "mutability": "mutable", "name": "target", "nameLocation": "5224:6:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5216:14:8", "stateVariable": false, "storageLocation": "default", @@ -6297,7 +6297,7 @@ "typeString": "address" }, "typeName": { - "id": 1623, + "id": 1620, "name": "address", "nodeType": "ElementaryTypeName", "src": "5216:7:8", @@ -6311,12 +6311,12 @@ }, { "constant": false, - "id": 1626, + "id": 1623, "mutability": "mutable", "name": "data", "nameLocation": "5253:4:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5240:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6325,7 +6325,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1625, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5240:5:8", @@ -6338,12 +6338,12 @@ }, { "constant": false, - "id": 1628, + "id": 1625, "mutability": "mutable", "name": "value", "nameLocation": "5275:5:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5267:13:8", "stateVariable": false, "storageLocation": "default", @@ -6352,7 +6352,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5267:7:8", @@ -6365,12 +6365,12 @@ }, { "constant": false, - "id": 1630, + "id": 1627, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5304:12:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5290:26:8", "stateVariable": false, "storageLocation": "memory", @@ -6379,7 +6379,7 @@ "typeString": "string" }, "typeName": { - "id": 1629, + "id": 1626, "name": "string", "nodeType": "ElementaryTypeName", "src": "5290:6:8", @@ -6394,17 +6394,17 @@ "src": "5206:116:8" }, "returnParameters": { - "id": 1634, + "id": 1631, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1633, + "id": 1630, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5341:12:8", "stateVariable": false, "storageLocation": "memory", @@ -6413,7 +6413,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1632, + "id": 1629, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5341:5:8", @@ -6427,7 +6427,7 @@ ], "src": "5340:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5176:446:8", "stateMutability": "nonpayable", "virtual": false, @@ -6435,7 +6435,7 @@ }, { "body": { - "id": 1681, + "id": 1678, "nodeType": "Block", "src": "5899:97:8", "statements": [ @@ -6443,11 +6443,11 @@ "expression": { "arguments": [ { - "id": 1676, + "id": 1673, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, + "referencedDeclaration": 1665, "src": "5935:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6455,11 +6455,11 @@ } }, { - "id": 1677, + "id": 1674, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1670, + "referencedDeclaration": 1667, "src": "5943:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6468,7 +6468,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1678, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -6498,21 +6498,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1675, + "id": 1672, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1682, - 1711 + 1679, + 1708 ], - "referencedDeclaration": 1711, + "referencedDeclaration": 1708, "src": "5916:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1679, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -6528,20 +6528,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1674, - "id": 1680, + "functionReturnParameters": 1671, + "id": 1677, "nodeType": "Return", "src": "5909:80:8" } ] }, "documentation": { - "id": 1666, + "id": 1663, "nodeType": "StructuredDocumentation", "src": "5628:166:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1682, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], @@ -6549,17 +6549,17 @@ "nameLocation": "5808:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1671, + "id": 1668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1668, + "id": 1665, "mutability": "mutable", "name": "target", "nameLocation": "5835:6:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5827:14:8", "stateVariable": false, "storageLocation": "default", @@ -6568,7 +6568,7 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 1664, "name": "address", "nodeType": "ElementaryTypeName", "src": "5827:7:8", @@ -6582,12 +6582,12 @@ }, { "constant": false, - "id": 1670, + "id": 1667, "mutability": "mutable", "name": "data", "nameLocation": "5856:4:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5843:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6596,7 +6596,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1666, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5843:5:8", @@ -6611,17 +6611,17 @@ "src": "5826:35:8" }, "returnParameters": { - "id": 1674, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1670, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5885:12:8", "stateVariable": false, "storageLocation": "memory", @@ -6630,7 +6630,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1672, + "id": 1669, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5885:5:8", @@ -6644,7 +6644,7 @@ ], "src": "5884:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5799:197:8", "stateMutability": "view", "virtual": false, @@ -6652,24 +6652,24 @@ }, { "body": { - "id": 1710, + "id": 1707, "nodeType": "Block", "src": "6338:168:8", "statements": [ { "assignments": [ - 1695, - 1697 + 1692, + 1694 ], "declarations": [ { "constant": false, - "id": 1695, + "id": 1692, "mutability": "mutable", "name": "success", "nameLocation": "6354:7:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6349:12:8", "stateVariable": false, "storageLocation": "default", @@ -6678,7 +6678,7 @@ "typeString": "bool" }, "typeName": { - "id": 1694, + "id": 1691, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6349:4:8", @@ -6691,12 +6691,12 @@ }, { "constant": false, - "id": 1697, + "id": 1694, "mutability": "mutable", "name": "returndata", "nameLocation": "6376:10:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6363:23:8", "stateVariable": false, "storageLocation": "memory", @@ -6705,7 +6705,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1696, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6363:5:8", @@ -6717,15 +6717,15 @@ "visibility": "internal" } ], - "id": 1702, + "id": 1699, "initialValue": { "arguments": [ { - "id": 1700, + "id": 1697, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, + "referencedDeclaration": 1684, "src": "6408:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6741,18 +6741,18 @@ } ], "expression": { - "id": 1698, + "id": 1695, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6390:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1699, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -6766,7 +6766,7 @@ "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1701, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, @@ -6789,11 +6789,11 @@ "expression": { "arguments": [ { - "id": 1704, + "id": 1701, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6457:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6801,11 +6801,11 @@ } }, { - "id": 1705, + "id": 1702, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, + "referencedDeclaration": 1692, "src": "6465:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6813,11 +6813,11 @@ } }, { - "id": 1706, + "id": 1703, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, + "referencedDeclaration": 1694, "src": "6474:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6825,11 +6825,11 @@ } }, { - "id": 1707, + "id": 1704, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1689, + "referencedDeclaration": 1686, "src": "6486:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6856,18 +6856,18 @@ "typeString": "string memory" } ], - "id": 1703, + "id": 1700, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "6430:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1708, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, @@ -6883,20 +6883,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1693, - "id": 1709, + "functionReturnParameters": 1690, + "id": 1706, "nodeType": "Return", "src": "6423:76:8" } ] }, "documentation": { - "id": 1683, + "id": 1680, "nodeType": "StructuredDocumentation", "src": "6002:173:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1711, + "id": 1708, "implemented": true, "kind": "function", "modifiers": [], @@ -6904,17 +6904,17 @@ "nameLocation": "6189:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1690, + "id": 1687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1685, + "id": 1682, "mutability": "mutable", "name": "target", "nameLocation": "6225:6:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6217:14:8", "stateVariable": false, "storageLocation": "default", @@ -6923,7 +6923,7 @@ "typeString": "address" }, "typeName": { - "id": 1684, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", "src": "6217:7:8", @@ -6937,12 +6937,12 @@ }, { "constant": false, - "id": 1687, + "id": 1684, "mutability": "mutable", "name": "data", "nameLocation": "6254:4:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6241:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6951,7 +6951,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1686, + "id": 1683, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6241:5:8", @@ -6964,12 +6964,12 @@ }, { "constant": false, - "id": 1689, + "id": 1686, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6282:12:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6268:26:8", "stateVariable": false, "storageLocation": "memory", @@ -6978,7 +6978,7 @@ "typeString": "string" }, "typeName": { - "id": 1688, + "id": 1685, "name": "string", "nodeType": "ElementaryTypeName", "src": "6268:6:8", @@ -6993,17 +6993,17 @@ "src": "6207:93:8" }, "returnParameters": { - "id": 1693, + "id": 1690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1692, + "id": 1689, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6324:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7012,7 +7012,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1691, + "id": 1688, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6324:5:8", @@ -7026,7 +7026,7 @@ ], "src": "6323:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6180:326:8", "stateMutability": "view", "virtual": false, @@ -7034,7 +7034,7 @@ }, { "body": { - "id": 1727, + "id": 1724, "nodeType": "Block", "src": "6782:101:8", "statements": [ @@ -7042,11 +7042,11 @@ "expression": { "arguments": [ { - "id": 1722, + "id": 1719, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1714, + "referencedDeclaration": 1711, "src": "6820:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7054,11 +7054,11 @@ } }, { - "id": 1723, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1713, "src": "6828:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7067,7 +7067,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1724, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -7097,21 +7097,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1721, + "id": 1718, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1728, - 1757 + 1725, + 1754 ], - "referencedDeclaration": 1757, + "referencedDeclaration": 1754, "src": "6799:20:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1725, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -7127,20 +7127,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1720, - "id": 1726, + "functionReturnParameters": 1717, + "id": 1723, "nodeType": "Return", "src": "6792:84:8" } ] }, "documentation": { - "id": 1712, + "id": 1709, "nodeType": "StructuredDocumentation", "src": "6512:168:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1728, + "id": 1725, "implemented": true, "kind": "function", "modifiers": [], @@ -7148,17 +7148,17 @@ "nameLocation": "6694:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1717, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1714, + "id": 1711, "mutability": "mutable", "name": "target", "nameLocation": "6723:6:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6715:14:8", "stateVariable": false, "storageLocation": "default", @@ -7167,7 +7167,7 @@ "typeString": "address" }, "typeName": { - "id": 1713, + "id": 1710, "name": "address", "nodeType": "ElementaryTypeName", "src": "6715:7:8", @@ -7181,12 +7181,12 @@ }, { "constant": false, - "id": 1716, + "id": 1713, "mutability": "mutable", "name": "data", "nameLocation": "6744:4:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6731:17:8", "stateVariable": false, "storageLocation": "memory", @@ -7195,7 +7195,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1712, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6731:5:8", @@ -7210,17 +7210,17 @@ "src": "6714:35:8" }, "returnParameters": { - "id": 1720, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1719, + "id": 1716, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6768:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7229,7 +7229,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1718, + "id": 1715, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6768:5:8", @@ -7243,7 +7243,7 @@ ], "src": "6767:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6685:198:8", "stateMutability": "nonpayable", "virtual": false, @@ -7251,24 +7251,24 @@ }, { "body": { - "id": 1756, + "id": 1753, "nodeType": "Block", "src": "7224:170:8", "statements": [ { "assignments": [ - 1741, - 1743 + 1738, + 1740 ], "declarations": [ { "constant": false, - "id": 1741, + "id": 1738, "mutability": "mutable", "name": "success", "nameLocation": "7240:7:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7235:12:8", "stateVariable": false, "storageLocation": "default", @@ -7277,7 +7277,7 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 1737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7235:4:8", @@ -7290,12 +7290,12 @@ }, { "constant": false, - "id": 1743, + "id": 1740, "mutability": "mutable", "name": "returndata", "nameLocation": "7262:10:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7249:23:8", "stateVariable": false, "storageLocation": "memory", @@ -7304,7 +7304,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1742, + "id": 1739, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7249:5:8", @@ -7316,15 +7316,15 @@ "visibility": "internal" } ], - "id": 1748, + "id": 1745, "initialValue": { "arguments": [ { - "id": 1746, + "id": 1743, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1730, "src": "7296:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7340,18 +7340,18 @@ } ], "expression": { - "id": 1744, + "id": 1741, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7276:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1745, + "id": 1742, "isConstant": false, "isLValue": false, "isPure": false, @@ -7365,7 +7365,7 @@ "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1747, + "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, @@ -7388,11 +7388,11 @@ "expression": { "arguments": [ { - "id": 1750, + "id": 1747, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7345:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7400,11 +7400,11 @@ } }, { - "id": 1751, + "id": 1748, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, + "referencedDeclaration": 1738, "src": "7353:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7412,11 +7412,11 @@ } }, { - "id": 1752, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, + "referencedDeclaration": 1740, "src": "7362:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7424,11 +7424,11 @@ } }, { - "id": 1753, + "id": 1750, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, + "referencedDeclaration": 1732, "src": "7374:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -7455,18 +7455,18 @@ "typeString": "string memory" } ], - "id": 1749, + "id": 1746, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "7318:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1754, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -7482,20 +7482,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1739, - "id": 1755, + "functionReturnParameters": 1736, + "id": 1752, "nodeType": "Return", "src": "7311:76:8" } ] }, "documentation": { - "id": 1729, + "id": 1726, "nodeType": "StructuredDocumentation", "src": "6889:175:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1757, + "id": 1754, "implemented": true, "kind": "function", "modifiers": [], @@ -7503,17 +7503,17 @@ "nameLocation": "7078:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1728, "mutability": "mutable", "name": "target", "nameLocation": "7116:6:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7108:14:8", "stateVariable": false, "storageLocation": "default", @@ -7522,7 +7522,7 @@ "typeString": "address" }, "typeName": { - "id": 1730, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", "src": "7108:7:8", @@ -7536,12 +7536,12 @@ }, { "constant": false, - "id": 1733, + "id": 1730, "mutability": "mutable", "name": "data", "nameLocation": "7145:4:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7132:17:8", "stateVariable": false, "storageLocation": "memory", @@ -7550,7 +7550,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1732, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7132:5:8", @@ -7563,12 +7563,12 @@ }, { "constant": false, - "id": 1735, + "id": 1732, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7173:12:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7159:26:8", "stateVariable": false, "storageLocation": "memory", @@ -7577,7 +7577,7 @@ "typeString": "string" }, "typeName": { - "id": 1734, + "id": 1731, "name": "string", "nodeType": "ElementaryTypeName", "src": "7159:6:8", @@ -7592,17 +7592,17 @@ "src": "7098:93:8" }, "returnParameters": { - "id": 1739, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1738, + "id": 1735, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7210:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7611,7 +7611,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1737, + "id": 1734, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7210:5:8", @@ -7625,7 +7625,7 @@ ], "src": "7209:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7069:325:8", "stateMutability": "nonpayable", "virtual": false, @@ -7633,17 +7633,17 @@ }, { "body": { - "id": 1795, + "id": 1792, "nodeType": "Block", "src": "7876:434:8", "statements": [ { "condition": { - "id": 1771, + "id": 1768, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1762, + "referencedDeclaration": 1759, "src": "7890:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7651,7 +7651,7 @@ } }, "falseBody": { - "id": 1793, + "id": 1790, "nodeType": "Block", "src": "8246:58:8", "statements": [ @@ -7659,11 +7659,11 @@ "expression": { "arguments": [ { - "id": 1789, + "id": 1786, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8268:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7671,11 +7671,11 @@ } }, { - "id": 1790, + "id": 1787, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, + "referencedDeclaration": 1763, "src": "8280:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -7694,18 +7694,18 @@ "typeString": "string memory" } ], - "id": 1788, + "id": 1785, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8260:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1791, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -7721,17 +7721,17 @@ "typeString": "tuple()" } }, - "id": 1792, + "id": 1789, "nodeType": "ExpressionStatement", "src": "8260:33:8" } ] }, - "id": 1794, + "id": 1791, "nodeType": "IfStatement", "src": "7886:418:8", "trueBody": { - "id": 1787, + "id": 1784, "nodeType": "Block", "src": "7899:341:8", "statements": [ @@ -7741,25 +7741,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1775, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1772, + "id": 1769, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "7917:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1773, + "id": 1770, "isConstant": false, "isLValue": false, "isPure": false, @@ -7777,7 +7777,7 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1774, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, @@ -7797,11 +7797,11 @@ "typeString": "bool" } }, - "id": 1784, + "id": 1781, "nodeType": "IfStatement", "src": "7913:286:8", "trueBody": { - "id": 1783, + "id": 1780, "nodeType": "Block", "src": "7941:258:8", "statements": [ @@ -7811,11 +7811,11 @@ { "arguments": [ { - "id": 1778, + "id": 1775, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, + "referencedDeclaration": 1757, "src": "8143:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7830,18 +7830,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1774, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "8132:10:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": false, @@ -7859,7 +7859,7 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1780, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -7885,7 +7885,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1776, + "id": 1773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7899,7 +7899,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -7915,7 +7915,7 @@ "typeString": "tuple()" } }, - "id": 1782, + "id": 1779, "nodeType": "ExpressionStatement", "src": "8124:60:8" } @@ -7924,19 +7924,19 @@ }, { "expression": { - "id": 1785, + "id": 1782, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8219:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1770, - "id": 1786, + "functionReturnParameters": 1767, + "id": 1783, "nodeType": "Return", "src": "8212:17:8" } @@ -7946,12 +7946,12 @@ ] }, "documentation": { - "id": 1758, + "id": 1755, "nodeType": "StructuredDocumentation", "src": "7400:277:8", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1796, + "id": 1793, "implemented": true, "kind": "function", "modifiers": [], @@ -7959,17 +7959,17 @@ "nameLocation": "7691:26:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1767, + "id": 1764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1760, + "id": 1757, "mutability": "mutable", "name": "target", "nameLocation": "7735:6:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7727:14:8", "stateVariable": false, "storageLocation": "default", @@ -7978,7 +7978,7 @@ "typeString": "address" }, "typeName": { - "id": 1759, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", "src": "7727:7:8", @@ -7992,12 +7992,12 @@ }, { "constant": false, - "id": 1762, + "id": 1759, "mutability": "mutable", "name": "success", "nameLocation": "7756:7:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7751:12:8", "stateVariable": false, "storageLocation": "default", @@ -8006,7 +8006,7 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 1758, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7751:4:8", @@ -8019,12 +8019,12 @@ }, { "constant": false, - "id": 1764, + "id": 1761, "mutability": "mutable", "name": "returndata", "nameLocation": "7786:10:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7773:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8033,7 +8033,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1763, + "id": 1760, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7773:5:8", @@ -8046,12 +8046,12 @@ }, { "constant": false, - "id": 1766, + "id": 1763, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7820:12:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7806:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8060,7 +8060,7 @@ "typeString": "string" }, "typeName": { - "id": 1765, + "id": 1762, "name": "string", "nodeType": "ElementaryTypeName", "src": "7806:6:8", @@ -8075,17 +8075,17 @@ "src": "7717:121:8" }, "returnParameters": { - "id": 1770, + "id": 1767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, + "id": 1766, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7862:12:8", "stateVariable": false, "storageLocation": "memory", @@ -8094,7 +8094,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1768, + "id": 1765, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7862:5:8", @@ -8108,7 +8108,7 @@ ], "src": "7861:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7682:628:8", "stateMutability": "view", "virtual": false, @@ -8116,17 +8116,17 @@ }, { "body": { - "id": 1819, + "id": 1816, "nodeType": "Block", "src": "8691:135:8", "statements": [ { "condition": { - "id": 1808, + "id": 1805, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, + "referencedDeclaration": 1796, "src": "8705:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8134,7 +8134,7 @@ } }, "falseBody": { - "id": 1817, + "id": 1814, "nodeType": "Block", "src": "8762:58:8", "statements": [ @@ -8142,11 +8142,11 @@ "expression": { "arguments": [ { - "id": 1813, + "id": 1810, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8784:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8154,11 +8154,11 @@ } }, { - "id": 1814, + "id": 1811, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, + "referencedDeclaration": 1800, "src": "8796:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8177,18 +8177,18 @@ "typeString": "string memory" } ], - "id": 1812, + "id": 1809, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8776:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1815, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -8204,35 +8204,35 @@ "typeString": "tuple()" } }, - "id": 1816, + "id": 1813, "nodeType": "ExpressionStatement", "src": "8776:33:8" } ] }, - "id": 1818, + "id": 1815, "nodeType": "IfStatement", "src": "8701:119:8", "trueBody": { - "id": 1811, + "id": 1808, "nodeType": "Block", "src": "8714:42:8", "statements": [ { "expression": { - "id": 1809, + "id": 1806, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8735:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1807, - "id": 1810, + "functionReturnParameters": 1804, + "id": 1807, "nodeType": "Return", "src": "8728:17:8" } @@ -8242,12 +8242,12 @@ ] }, "documentation": { - "id": 1797, + "id": 1794, "nodeType": "StructuredDocumentation", "src": "8316:210:8", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1820, + "id": 1817, "implemented": true, "kind": "function", "modifiers": [], @@ -8255,17 +8255,17 @@ "nameLocation": "8540:16:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1804, + "id": 1801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1796, "mutability": "mutable", "name": "success", "nameLocation": "8571:7:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8566:12:8", "stateVariable": false, "storageLocation": "default", @@ -8274,7 +8274,7 @@ "typeString": "bool" }, "typeName": { - "id": 1798, + "id": 1795, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8566:4:8", @@ -8287,12 +8287,12 @@ }, { "constant": false, - "id": 1801, + "id": 1798, "mutability": "mutable", "name": "returndata", "nameLocation": "8601:10:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8588:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8301,7 +8301,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1797, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8588:5:8", @@ -8314,12 +8314,12 @@ }, { "constant": false, - "id": 1803, + "id": 1800, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8635:12:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8621:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8328,7 +8328,7 @@ "typeString": "string" }, "typeName": { - "id": 1802, + "id": 1799, "name": "string", "nodeType": "ElementaryTypeName", "src": "8621:6:8", @@ -8343,17 +8343,17 @@ "src": "8556:97:8" }, "returnParameters": { - "id": 1807, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1806, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8677:12:8", "stateVariable": false, "storageLocation": "memory", @@ -8362,7 +8362,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1805, + "id": 1802, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8677:5:8", @@ -8376,7 +8376,7 @@ ], "src": "8676:14:8" }, - "scope": 1841, + "scope": 1838, "src": "8531:295:8", "stateMutability": "pure", "virtual": false, @@ -8384,7 +8384,7 @@ }, { "body": { - "id": 1839, + "id": 1836, "nodeType": "Block", "src": "8915:457:8", "statements": [ @@ -8394,25 +8394,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1830, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1827, + "id": 1824, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, + "referencedDeclaration": 1819, "src": "8991:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1828, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -8430,7 +8430,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1829, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -8451,7 +8451,7 @@ } }, "falseBody": { - "id": 1837, + "id": 1834, "nodeType": "Block", "src": "9321:45:8", "statements": [ @@ -8459,11 +8459,11 @@ "expression": { "arguments": [ { - "id": 1834, + "id": 1831, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1821, "src": "9342:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8478,7 +8478,7 @@ "typeString": "string memory" } ], - "id": 1833, + "id": 1830, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8492,7 +8492,7 @@ "typeString": "function (string memory) pure" } }, - "id": 1835, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -8508,17 +8508,17 @@ "typeString": "tuple()" } }, - "id": 1836, + "id": 1833, "nodeType": "ExpressionStatement", "src": "9335:20:8" } ] }, - "id": 1838, + "id": 1835, "nodeType": "IfStatement", "src": "8987:379:8", "trueBody": { - "id": 1832, + "id": 1829, "nodeType": "Block", "src": "9014:301:8", "statements": [ @@ -8604,21 +8604,21 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9219:10:8", "valueSize": 1 }, { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9262:10:8", "valueSize": 1 } ], - "id": 1831, + "id": 1828, "nodeType": "InlineAssembly", "src": "9163:142:8" } @@ -8627,7 +8627,7 @@ } ] }, - "id": 1840, + "id": 1837, "implemented": true, "kind": "function", "modifiers": [], @@ -8635,17 +8635,17 @@ "nameLocation": "8841:7:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1825, + "id": 1822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1822, + "id": 1819, "mutability": "mutable", "name": "returndata", "nameLocation": "8862:10:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8849:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8654,7 +8654,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1821, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8849:5:8", @@ -8667,12 +8667,12 @@ }, { "constant": false, - "id": 1824, + "id": 1821, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8888:12:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8874:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8681,7 +8681,7 @@ "typeString": "string" }, "typeName": { - "id": 1823, + "id": 1820, "name": "string", "nodeType": "ElementaryTypeName", "src": "8874:6:8", @@ -8696,19 +8696,19 @@ "src": "8848:53:8" }, "returnParameters": { - "id": 1826, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "8915:0:8" }, - "scope": 1841, + "scope": 1838, "src": "8832:540:8", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1842, + "scope": 1839, "src": "194:9180:8", "usedErrors": [] } @@ -8721,5 +8721,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.554Z" + "updatedAt": "2024-06-27T12:24:25.260Z" } \ No newline at end of file diff --git a/build/contracts/Context.json b/build/contracts/Context.json index 42df018..14584cf 100644 --- a/build/contracts/Context.json +++ b/build/contracts/Context.json @@ -11,15 +11,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ] }, - "id": 2613, + "id": 2610, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2584, + "id": 2581, "literals": [ "solidity", "^", @@ -36,15 +36,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 2585, + "id": 2582, "nodeType": "StructuredDocumentation", "src": "126:496:13", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 2612, + "id": 2609, "linearizedBaseContracts": [ - 2612 + 2609 ], "name": "Context", "nameLocation": "641:7:13", @@ -52,14 +52,14 @@ "nodes": [ { "body": { - "id": 2593, + "id": 2590, "nodeType": "Block", "src": "717:34:13", "statements": [ { "expression": { "expression": { - "id": 2590, + "id": 2587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -70,7 +70,7 @@ "typeString": "msg" } }, - "id": 2591, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -84,14 +84,14 @@ "typeString": "address" } }, - "functionReturnParameters": 2589, - "id": 2592, + "functionReturnParameters": 2586, + "id": 2589, "nodeType": "Return", "src": "727:17:13" } ] }, - "id": 2594, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], @@ -99,23 +99,23 @@ "nameLocation": "664:10:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2586, + "id": 2583, "nodeType": "ParameterList", "parameters": [], "src": "674:2:13" }, "returnParameters": { - "id": 2589, + "id": 2586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2585, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2594, + "scope": 2591, "src": "708:7:13", "stateVariable": false, "storageLocation": "default", @@ -124,7 +124,7 @@ "typeString": "address" }, "typeName": { - "id": 2587, + "id": 2584, "name": "address", "nodeType": "ElementaryTypeName", "src": "708:7:13", @@ -139,7 +139,7 @@ ], "src": "707:9:13" }, - "scope": 2612, + "scope": 2609, "src": "655:96:13", "stateMutability": "view", "virtual": true, @@ -147,14 +147,14 @@ }, { "body": { - "id": 2602, + "id": 2599, "nodeType": "Block", "src": "824:32:13", "statements": [ { "expression": { "expression": { - "id": 2599, + "id": 2596, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -165,7 +165,7 @@ "typeString": "msg" } }, - "id": 2600, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -179,14 +179,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 2598, - "id": 2601, + "functionReturnParameters": 2595, + "id": 2598, "nodeType": "Return", "src": "834:15:13" } ] }, - "id": 2603, + "id": 2600, "implemented": true, "kind": "function", "modifiers": [], @@ -194,23 +194,23 @@ "nameLocation": "766:8:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2592, "nodeType": "ParameterList", "parameters": [], "src": "774:2:13" }, "returnParameters": { - "id": 2598, + "id": 2595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2594, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2603, + "scope": 2600, "src": "808:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -219,7 +219,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2596, + "id": 2593, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:13", @@ -233,7 +233,7 @@ ], "src": "807:16:13" }, - "scope": 2612, + "scope": 2609, "src": "757:99:13", "stateMutability": "view", "virtual": true, @@ -241,14 +241,14 @@ }, { "body": { - "id": 2610, + "id": 2607, "nodeType": "Block", "src": "934:25:13", "statements": [ { "expression": { "hexValue": "30", - "id": 2608, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, @@ -262,14 +262,14 @@ }, "value": "0" }, - "functionReturnParameters": 2607, - "id": 2609, + "functionReturnParameters": 2604, + "id": 2606, "nodeType": "Return", "src": "944:8:13" } ] }, - "id": 2611, + "id": 2608, "implemented": true, "kind": "function", "modifiers": [], @@ -277,23 +277,23 @@ "nameLocation": "871:20:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2604, + "id": 2601, "nodeType": "ParameterList", "parameters": [], "src": "891:2:13" }, "returnParameters": { - "id": 2607, + "id": 2604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2606, + "id": 2603, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2611, + "scope": 2608, "src": "925:7:13", "stateVariable": false, "storageLocation": "default", @@ -302,7 +302,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2605, + "id": 2602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "925:7:13", @@ -316,14 +316,14 @@ ], "src": "924:9:13" }, - "scope": 2612, + "scope": 2609, "src": "862:97:13", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 2613, + "scope": 2610, "src": "623:338:13", "usedErrors": [] } @@ -334,15 +334,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ] }, - "id": 2613, + "id": 2610, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2584, + "id": 2581, "literals": [ "solidity", "^", @@ -359,15 +359,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 2585, + "id": 2582, "nodeType": "StructuredDocumentation", "src": "126:496:13", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 2612, + "id": 2609, "linearizedBaseContracts": [ - 2612 + 2609 ], "name": "Context", "nameLocation": "641:7:13", @@ -375,14 +375,14 @@ "nodes": [ { "body": { - "id": 2593, + "id": 2590, "nodeType": "Block", "src": "717:34:13", "statements": [ { "expression": { "expression": { - "id": 2590, + "id": 2587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -393,7 +393,7 @@ "typeString": "msg" } }, - "id": 2591, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -407,14 +407,14 @@ "typeString": "address" } }, - "functionReturnParameters": 2589, - "id": 2592, + "functionReturnParameters": 2586, + "id": 2589, "nodeType": "Return", "src": "727:17:13" } ] }, - "id": 2594, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], @@ -422,23 +422,23 @@ "nameLocation": "664:10:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2586, + "id": 2583, "nodeType": "ParameterList", "parameters": [], "src": "674:2:13" }, "returnParameters": { - "id": 2589, + "id": 2586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2585, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2594, + "scope": 2591, "src": "708:7:13", "stateVariable": false, "storageLocation": "default", @@ -447,7 +447,7 @@ "typeString": "address" }, "typeName": { - "id": 2587, + "id": 2584, "name": "address", "nodeType": "ElementaryTypeName", "src": "708:7:13", @@ -462,7 +462,7 @@ ], "src": "707:9:13" }, - "scope": 2612, + "scope": 2609, "src": "655:96:13", "stateMutability": "view", "virtual": true, @@ -470,14 +470,14 @@ }, { "body": { - "id": 2602, + "id": 2599, "nodeType": "Block", "src": "824:32:13", "statements": [ { "expression": { "expression": { - "id": 2599, + "id": 2596, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -488,7 +488,7 @@ "typeString": "msg" } }, - "id": 2600, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -502,14 +502,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 2598, - "id": 2601, + "functionReturnParameters": 2595, + "id": 2598, "nodeType": "Return", "src": "834:15:13" } ] }, - "id": 2603, + "id": 2600, "implemented": true, "kind": "function", "modifiers": [], @@ -517,23 +517,23 @@ "nameLocation": "766:8:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2592, "nodeType": "ParameterList", "parameters": [], "src": "774:2:13" }, "returnParameters": { - "id": 2598, + "id": 2595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2594, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2603, + "scope": 2600, "src": "808:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -542,7 +542,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2596, + "id": 2593, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:13", @@ -556,7 +556,7 @@ ], "src": "807:16:13" }, - "scope": 2612, + "scope": 2609, "src": "757:99:13", "stateMutability": "view", "virtual": true, @@ -564,14 +564,14 @@ }, { "body": { - "id": 2610, + "id": 2607, "nodeType": "Block", "src": "934:25:13", "statements": [ { "expression": { "hexValue": "30", - "id": 2608, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, @@ -585,14 +585,14 @@ }, "value": "0" }, - "functionReturnParameters": 2607, - "id": 2609, + "functionReturnParameters": 2604, + "id": 2606, "nodeType": "Return", "src": "944:8:13" } ] }, - "id": 2611, + "id": 2608, "implemented": true, "kind": "function", "modifiers": [], @@ -600,23 +600,23 @@ "nameLocation": "871:20:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2604, + "id": 2601, "nodeType": "ParameterList", "parameters": [], "src": "891:2:13" }, "returnParameters": { - "id": 2607, + "id": 2604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2606, + "id": 2603, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2611, + "scope": 2608, "src": "925:7:13", "stateVariable": false, "storageLocation": "default", @@ -625,7 +625,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2605, + "id": 2602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "925:7:13", @@ -639,14 +639,14 @@ ], "src": "924:9:13" }, - "scope": 2612, + "scope": 2609, "src": "862:97:13", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 2613, + "scope": 2610, "src": "623:338:13", "usedErrors": [] } @@ -659,5 +659,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.557Z" + "updatedAt": "2024-06-27T12:24:25.259Z" } \ No newline at end of file diff --git a/build/contracts/ContextUpgradeable.json b/build/contracts/ContextUpgradeable.json index 2bc747a..981c686 100644 --- a/build/contracts/ContextUpgradeable.json +++ b/build/contracts/ContextUpgradeable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1893, + "id": 1890, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1843, + "id": 1840, "literals": [ "solidity", "^", @@ -49,20 +49,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1845, + "id": 1842, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1893, - "sourceUnit": 1384, + "scope": 1890, + "sourceUnit": 1381, "src": "125:63:9", "symbolAliases": [ { "foreign": { - "id": 1844, + "id": 1841, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "133:13:9", "typeDescriptions": {} }, @@ -76,16 +76,16 @@ "baseContracts": [ { "baseName": { - "id": 1847, + "id": 1844, "name": "Initializable", "nameLocations": [ "727:13:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "727:13:9" }, - "id": 1848, + "id": 1845, "nodeType": "InheritanceSpecifier", "src": "727:13:9" } @@ -94,16 +94,16 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1846, + "id": 1843, "nodeType": "StructuredDocumentation", "src": "190:496:9", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1892, + "id": 1889, "linearizedBaseContracts": [ - 1892, - 1383 + 1889, + 1380 ], "name": "ContextUpgradeable", "nameLocation": "705:18:9", @@ -111,26 +111,26 @@ "nodes": [ { "body": { - "id": 1853, + "id": 1850, "nodeType": "Block", "src": "799:7:9", "statements": [] }, - "id": 1854, + "id": 1851, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1851, + "id": 1848, "kind": "modifierInvocation", "modifierName": { - "id": 1850, + "id": 1847, "name": "onlyInitializing", "nameLocations": [ "782:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "782:16:9" }, "nodeType": "ModifierInvocation", @@ -141,18 +141,18 @@ "nameLocation": "756:14:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1849, + "id": 1846, "nodeType": "ParameterList", "parameters": [], "src": "770:2:9" }, "returnParameters": { - "id": 1852, + "id": 1849, "nodeType": "ParameterList", "parameters": [], "src": "799:0:9" }, - "scope": 1892, + "scope": 1889, "src": "747:59:9", "stateMutability": "nonpayable", "virtual": false, @@ -160,26 +160,26 @@ }, { "body": { - "id": 1859, + "id": 1856, "nodeType": "Block", "src": "874:7:9", "statements": [] }, - "id": 1860, + "id": 1857, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1857, + "id": 1854, "kind": "modifierInvocation", "modifierName": { - "id": 1856, + "id": 1853, "name": "onlyInitializing", "nameLocations": [ "857:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "857:16:9" }, "nodeType": "ModifierInvocation", @@ -190,18 +190,18 @@ "nameLocation": "821:24:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1855, + "id": 1852, "nodeType": "ParameterList", "parameters": [], "src": "845:2:9" }, "returnParameters": { - "id": 1858, + "id": 1855, "nodeType": "ParameterList", "parameters": [], "src": "874:0:9" }, - "scope": 1892, + "scope": 1889, "src": "812:69:9", "stateMutability": "nonpayable", "virtual": false, @@ -209,14 +209,14 @@ }, { "body": { - "id": 1868, + "id": 1865, "nodeType": "Block", "src": "948:34:9", "statements": [ { "expression": { "expression": { - "id": 1865, + "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -227,7 +227,7 @@ "typeString": "msg" } }, - "id": 1866, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -241,14 +241,14 @@ "typeString": "address" } }, - "functionReturnParameters": 1864, - "id": 1867, + "functionReturnParameters": 1861, + "id": 1864, "nodeType": "Return", "src": "958:17:9" } ] }, - "id": 1869, + "id": 1866, "implemented": true, "kind": "function", "modifiers": [], @@ -256,23 +256,23 @@ "nameLocation": "895:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1861, + "id": 1858, "nodeType": "ParameterList", "parameters": [], "src": "905:2:9" }, "returnParameters": { - "id": 1864, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 1860, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1869, + "scope": 1866, "src": "939:7:9", "stateVariable": false, "storageLocation": "default", @@ -281,7 +281,7 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 1859, "name": "address", "nodeType": "ElementaryTypeName", "src": "939:7:9", @@ -296,7 +296,7 @@ ], "src": "938:9:9" }, - "scope": 1892, + "scope": 1889, "src": "886:96:9", "stateMutability": "view", "virtual": true, @@ -304,14 +304,14 @@ }, { "body": { - "id": 1877, + "id": 1874, "nodeType": "Block", "src": "1055:32:9", "statements": [ { "expression": { "expression": { - "id": 1874, + "id": 1871, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -322,7 +322,7 @@ "typeString": "msg" } }, - "id": 1875, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -336,14 +336,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1873, - "id": 1876, + "functionReturnParameters": 1870, + "id": 1873, "nodeType": "Return", "src": "1065:15:9" } ] }, - "id": 1878, + "id": 1875, "implemented": true, "kind": "function", "modifiers": [], @@ -351,23 +351,23 @@ "nameLocation": "997:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1870, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "1005:2:9" }, "returnParameters": { - "id": 1873, + "id": 1870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1872, + "id": 1869, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1878, + "scope": 1875, "src": "1039:14:9", "stateVariable": false, "storageLocation": "calldata", @@ -376,7 +376,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1871, + "id": 1868, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1039:5:9", @@ -390,7 +390,7 @@ ], "src": "1038:16:9" }, - "scope": 1892, + "scope": 1889, "src": "988:99:9", "stateMutability": "view", "virtual": true, @@ -398,14 +398,14 @@ }, { "body": { - "id": 1885, + "id": 1882, "nodeType": "Block", "src": "1165:25:9", "statements": [ { "expression": { "hexValue": "30", - "id": 1883, + "id": 1880, "isConstant": false, "isLValue": false, "isPure": true, @@ -419,14 +419,14 @@ }, "value": "0" }, - "functionReturnParameters": 1882, - "id": 1884, + "functionReturnParameters": 1879, + "id": 1881, "nodeType": "Return", "src": "1175:8:9" } ] }, - "id": 1886, + "id": 1883, "implemented": true, "kind": "function", "modifiers": [], @@ -434,23 +434,23 @@ "nameLocation": "1102:20:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1879, + "id": 1876, "nodeType": "ParameterList", "parameters": [], "src": "1122:2:9" }, "returnParameters": { - "id": 1882, + "id": 1879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1881, + "id": 1878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1886, + "scope": 1883, "src": "1156:7:9", "stateVariable": false, "storageLocation": "default", @@ -459,7 +459,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1880, + "id": 1877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1156:7:9", @@ -473,7 +473,7 @@ ], "src": "1155:9:9" }, - "scope": 1892, + "scope": 1889, "src": "1093:97:9", "stateMutability": "view", "virtual": true, @@ -482,17 +482,17 @@ { "constant": false, "documentation": { - "id": 1887, + "id": 1884, "nodeType": "StructuredDocumentation", "src": "1196:254:9", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1891, + "id": 1888, "mutability": "mutable", "name": "__gap", "nameLocation": "1475:5:9", "nodeType": "VariableDeclaration", - "scope": 1892, + "scope": 1889, "src": "1455:25:9", "stateVariable": true, "storageLocation": "default", @@ -502,7 +502,7 @@ }, "typeName": { "baseType": { - "id": 1888, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1455:7:9", @@ -511,10 +511,10 @@ "typeString": "uint256" } }, - "id": 1890, + "id": 1887, "length": { "hexValue": "3530", - "id": 1889, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -538,7 +538,7 @@ "visibility": "private" } ], - "scope": 1893, + "scope": 1890, "src": "687:796:9", "usedErrors": [] } @@ -549,18 +549,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1893, + "id": 1890, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1843, + "id": 1840, "literals": [ "solidity", "^", @@ -573,20 +573,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1845, + "id": 1842, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1893, - "sourceUnit": 1384, + "scope": 1890, + "sourceUnit": 1381, "src": "125:63:9", "symbolAliases": [ { "foreign": { - "id": 1844, + "id": 1841, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "133:13:9", "typeDescriptions": {} }, @@ -600,16 +600,16 @@ "baseContracts": [ { "baseName": { - "id": 1847, + "id": 1844, "name": "Initializable", "nameLocations": [ "727:13:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "727:13:9" }, - "id": 1848, + "id": 1845, "nodeType": "InheritanceSpecifier", "src": "727:13:9" } @@ -618,16 +618,16 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1846, + "id": 1843, "nodeType": "StructuredDocumentation", "src": "190:496:9", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1892, + "id": 1889, "linearizedBaseContracts": [ - 1892, - 1383 + 1889, + 1380 ], "name": "ContextUpgradeable", "nameLocation": "705:18:9", @@ -635,26 +635,26 @@ "nodes": [ { "body": { - "id": 1853, + "id": 1850, "nodeType": "Block", "src": "799:7:9", "statements": [] }, - "id": 1854, + "id": 1851, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1851, + "id": 1848, "kind": "modifierInvocation", "modifierName": { - "id": 1850, + "id": 1847, "name": "onlyInitializing", "nameLocations": [ "782:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "782:16:9" }, "nodeType": "ModifierInvocation", @@ -665,18 +665,18 @@ "nameLocation": "756:14:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1849, + "id": 1846, "nodeType": "ParameterList", "parameters": [], "src": "770:2:9" }, "returnParameters": { - "id": 1852, + "id": 1849, "nodeType": "ParameterList", "parameters": [], "src": "799:0:9" }, - "scope": 1892, + "scope": 1889, "src": "747:59:9", "stateMutability": "nonpayable", "virtual": false, @@ -684,26 +684,26 @@ }, { "body": { - "id": 1859, + "id": 1856, "nodeType": "Block", "src": "874:7:9", "statements": [] }, - "id": 1860, + "id": 1857, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1857, + "id": 1854, "kind": "modifierInvocation", "modifierName": { - "id": 1856, + "id": 1853, "name": "onlyInitializing", "nameLocations": [ "857:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "857:16:9" }, "nodeType": "ModifierInvocation", @@ -714,18 +714,18 @@ "nameLocation": "821:24:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1855, + "id": 1852, "nodeType": "ParameterList", "parameters": [], "src": "845:2:9" }, "returnParameters": { - "id": 1858, + "id": 1855, "nodeType": "ParameterList", "parameters": [], "src": "874:0:9" }, - "scope": 1892, + "scope": 1889, "src": "812:69:9", "stateMutability": "nonpayable", "virtual": false, @@ -733,14 +733,14 @@ }, { "body": { - "id": 1868, + "id": 1865, "nodeType": "Block", "src": "948:34:9", "statements": [ { "expression": { "expression": { - "id": 1865, + "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -751,7 +751,7 @@ "typeString": "msg" } }, - "id": 1866, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -765,14 +765,14 @@ "typeString": "address" } }, - "functionReturnParameters": 1864, - "id": 1867, + "functionReturnParameters": 1861, + "id": 1864, "nodeType": "Return", "src": "958:17:9" } ] }, - "id": 1869, + "id": 1866, "implemented": true, "kind": "function", "modifiers": [], @@ -780,23 +780,23 @@ "nameLocation": "895:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1861, + "id": 1858, "nodeType": "ParameterList", "parameters": [], "src": "905:2:9" }, "returnParameters": { - "id": 1864, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 1860, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1869, + "scope": 1866, "src": "939:7:9", "stateVariable": false, "storageLocation": "default", @@ -805,7 +805,7 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 1859, "name": "address", "nodeType": "ElementaryTypeName", "src": "939:7:9", @@ -820,7 +820,7 @@ ], "src": "938:9:9" }, - "scope": 1892, + "scope": 1889, "src": "886:96:9", "stateMutability": "view", "virtual": true, @@ -828,14 +828,14 @@ }, { "body": { - "id": 1877, + "id": 1874, "nodeType": "Block", "src": "1055:32:9", "statements": [ { "expression": { "expression": { - "id": 1874, + "id": 1871, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -846,7 +846,7 @@ "typeString": "msg" } }, - "id": 1875, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -860,14 +860,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1873, - "id": 1876, + "functionReturnParameters": 1870, + "id": 1873, "nodeType": "Return", "src": "1065:15:9" } ] }, - "id": 1878, + "id": 1875, "implemented": true, "kind": "function", "modifiers": [], @@ -875,23 +875,23 @@ "nameLocation": "997:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1870, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "1005:2:9" }, "returnParameters": { - "id": 1873, + "id": 1870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1872, + "id": 1869, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1878, + "scope": 1875, "src": "1039:14:9", "stateVariable": false, "storageLocation": "calldata", @@ -900,7 +900,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1871, + "id": 1868, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1039:5:9", @@ -914,7 +914,7 @@ ], "src": "1038:16:9" }, - "scope": 1892, + "scope": 1889, "src": "988:99:9", "stateMutability": "view", "virtual": true, @@ -922,14 +922,14 @@ }, { "body": { - "id": 1885, + "id": 1882, "nodeType": "Block", "src": "1165:25:9", "statements": [ { "expression": { "hexValue": "30", - "id": 1883, + "id": 1880, "isConstant": false, "isLValue": false, "isPure": true, @@ -943,14 +943,14 @@ }, "value": "0" }, - "functionReturnParameters": 1882, - "id": 1884, + "functionReturnParameters": 1879, + "id": 1881, "nodeType": "Return", "src": "1175:8:9" } ] }, - "id": 1886, + "id": 1883, "implemented": true, "kind": "function", "modifiers": [], @@ -958,23 +958,23 @@ "nameLocation": "1102:20:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1879, + "id": 1876, "nodeType": "ParameterList", "parameters": [], "src": "1122:2:9" }, "returnParameters": { - "id": 1882, + "id": 1879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1881, + "id": 1878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1886, + "scope": 1883, "src": "1156:7:9", "stateVariable": false, "storageLocation": "default", @@ -983,7 +983,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1880, + "id": 1877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1156:7:9", @@ -997,7 +997,7 @@ ], "src": "1155:9:9" }, - "scope": 1892, + "scope": 1889, "src": "1093:97:9", "stateMutability": "view", "virtual": true, @@ -1006,17 +1006,17 @@ { "constant": false, "documentation": { - "id": 1887, + "id": 1884, "nodeType": "StructuredDocumentation", "src": "1196:254:9", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1891, + "id": 1888, "mutability": "mutable", "name": "__gap", "nameLocation": "1475:5:9", "nodeType": "VariableDeclaration", - "scope": 1892, + "scope": 1889, "src": "1455:25:9", "stateVariable": true, "storageLocation": "default", @@ -1026,7 +1026,7 @@ }, "typeName": { "baseType": { - "id": 1888, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1455:7:9", @@ -1035,10 +1035,10 @@ "typeString": "uint256" } }, - "id": 1890, + "id": 1887, "length": { "hexValue": "3530", - "id": 1889, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -1062,7 +1062,7 @@ "visibility": "private" } ], - "scope": 1893, + "scope": 1890, "src": "687:796:9", "usedErrors": [] } @@ -1075,5 +1075,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.555Z" + "updatedAt": "2024-06-27T12:24:25.257Z" } \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 61198f8..008d2dc 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -298,24 +298,24 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ], "ERC20": [ - 2479 + 2476 ], "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2480, + "id": 2477, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1894, + "id": 1891, "literals": [ "solidity", "^", @@ -328,11 +328,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1895, + "id": 1892, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2558, + "scope": 2477, + "sourceUnit": 2555, "src": "130:22:10", "symbolAliases": [], "unitAlias": "" @@ -340,11 +340,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", - "id": 1896, + "id": 1893, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2583, + "scope": 2477, + "sourceUnit": 2580, "src": "153:41:10", "symbolAliases": [], "unitAlias": "" @@ -352,11 +352,11 @@ { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", - "id": 1897, + "id": 1894, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2613, + "scope": 2477, + "sourceUnit": 2610, "src": "195:33:10", "symbolAliases": [], "unitAlias": "" @@ -366,46 +366,46 @@ "baseContracts": [ { "baseName": { - "id": 1899, + "id": 1896, "name": "Context", "nameLocations": [ "1550:7:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2612, + "referencedDeclaration": 2609, "src": "1550:7:10" }, - "id": 1900, + "id": 1897, "nodeType": "InheritanceSpecifier", "src": "1550:7:10" }, { "baseName": { - "id": 1901, + "id": 1898, "name": "IERC20", "nameLocations": [ "1559:6:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "1559:6:10" }, - "id": 1902, + "id": 1899, "nodeType": "InheritanceSpecifier", "src": "1559:6:10" }, { "baseName": { - "id": 1903, + "id": 1900, "name": "IERC20Metadata", "nameLocations": [ "1567:14:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2582, + "referencedDeclaration": 2579, "src": "1567:14:10" }, - "id": 1904, + "id": 1901, "nodeType": "InheritanceSpecifier", "src": "1567:14:10" } @@ -414,18 +414,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1898, + "id": 1895, "nodeType": "StructuredDocumentation", "src": "230:1301:10", "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." }, "fullyImplemented": true, - "id": 2479, + "id": 2476, "linearizedBaseContracts": [ - 2479, - 2582, - 2557, - 2612 + 2476, + 2579, + 2554, + 2609 ], "name": "ERC20", "nameLocation": "1541:5:10", @@ -433,12 +433,12 @@ "nodes": [ { "constant": false, - "id": 1908, + "id": 1905, "mutability": "mutable", "name": "_balances", "nameLocation": "1624:9:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1588:45:10", "stateVariable": true, "storageLocation": "default", @@ -447,11 +447,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 1907, + "id": 1904, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1905, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "1596:7:10", @@ -469,7 +469,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1906, + "id": 1903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:10", @@ -483,12 +483,12 @@ }, { "constant": false, - "id": 1914, + "id": 1911, "mutability": "mutable", "name": "_allowances", "nameLocation": "1696:11:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1640:67:10", "stateVariable": true, "storageLocation": "default", @@ -497,11 +497,11 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 1913, + "id": 1910, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1909, + "id": 1906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1648:7:10", @@ -519,11 +519,11 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1912, + "id": 1909, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1910, + "id": 1907, "name": "address", "nodeType": "ElementaryTypeName", "src": "1667:7:10", @@ -541,7 +541,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1911, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1678:7:10", @@ -556,12 +556,12 @@ }, { "constant": false, - "id": 1916, + "id": 1913, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1730:12:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1714:28:10", "stateVariable": true, "storageLocation": "default", @@ -570,7 +570,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1915, + "id": 1912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1714:7:10", @@ -583,12 +583,12 @@ }, { "constant": false, - "id": 1918, + "id": 1915, "mutability": "mutable", "name": "_name", "nameLocation": "1764:5:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1749:20:10", "stateVariable": true, "storageLocation": "default", @@ -597,7 +597,7 @@ "typeString": "string" }, "typeName": { - "id": 1917, + "id": 1914, "name": "string", "nodeType": "ElementaryTypeName", "src": "1749:6:10", @@ -610,12 +610,12 @@ }, { "constant": false, - "id": 1920, + "id": 1917, "mutability": "mutable", "name": "_symbol", "nameLocation": "1790:7:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1775:22:10", "stateVariable": true, "storageLocation": "default", @@ -624,7 +624,7 @@ "typeString": "string" }, "typeName": { - "id": 1919, + "id": 1916, "name": "string", "nodeType": "ElementaryTypeName", "src": "1775:6:10", @@ -637,23 +637,23 @@ }, { "body": { - "id": 1936, + "id": 1933, "nodeType": "Block", "src": "2036:57:10", "statements": [ { "expression": { - "id": 1930, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1928, + "id": 1925, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2046:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -663,11 +663,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1929, + "id": 1926, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1920, "src": "2054:5:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -680,23 +680,23 @@ "typeString": "string storage ref" } }, - "id": 1931, + "id": 1928, "nodeType": "ExpressionStatement", "src": "2046:13:10" }, { "expression": { - "id": 1934, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1932, + "id": 1929, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2069:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -706,11 +706,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1933, + "id": 1930, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1922, "src": "2079:7:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -723,19 +723,19 @@ "typeString": "string storage ref" } }, - "id": 1935, + "id": 1932, "nodeType": "ExpressionStatement", "src": "2069:17:10" } ] }, "documentation": { - "id": 1921, + "id": 1918, "nodeType": "StructuredDocumentation", "src": "1804:171:10", "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." }, - "id": 1937, + "id": 1934, "implemented": true, "kind": "constructor", "modifiers": [], @@ -743,17 +743,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1926, + "id": 1923, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1923, + "id": 1920, "mutability": "mutable", "name": "name_", "nameLocation": "2006:5:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "1992:19:10", "stateVariable": false, "storageLocation": "memory", @@ -762,7 +762,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1919, "name": "string", "nodeType": "ElementaryTypeName", "src": "1992:6:10", @@ -775,12 +775,12 @@ }, { "constant": false, - "id": 1925, + "id": 1922, "mutability": "mutable", "name": "symbol_", "nameLocation": "2027:7:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "2013:21:10", "stateVariable": false, "storageLocation": "memory", @@ -789,7 +789,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1921, "name": "string", "nodeType": "ElementaryTypeName", "src": "2013:6:10", @@ -804,12 +804,12 @@ "src": "1991:44:10" }, "returnParameters": { - "id": 1927, + "id": 1924, "nodeType": "ParameterList", "parameters": [], "src": "2036:0:10" }, - "scope": 2479, + "scope": 2476, "src": "1980:113:10", "stateMutability": "nonpayable", "virtual": false, @@ -817,41 +817,41 @@ }, { "baseFunctions": [ - 2569 + 2566 ], "body": { - "id": 1946, + "id": 1943, "nodeType": "Block", "src": "2227:29:10", "statements": [ { "expression": { - "id": 1944, + "id": 1941, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2244:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1943, - "id": 1945, + "functionReturnParameters": 1940, + "id": 1942, "nodeType": "Return", "src": "2237:12:10" } ] }, "documentation": { - "id": 1938, + "id": 1935, "nodeType": "StructuredDocumentation", "src": "2099:54:10", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 1947, + "id": 1944, "implemented": true, "kind": "function", "modifiers": [], @@ -859,29 +859,29 @@ "nameLocation": "2167:4:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1940, + "id": 1937, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2194:8:10" }, "parameters": { - "id": 1939, + "id": 1936, "nodeType": "ParameterList", "parameters": [], "src": "2171:2:10" }, "returnParameters": { - "id": 1943, + "id": 1940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1942, + "id": 1939, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1947, + "scope": 1944, "src": "2212:13:10", "stateVariable": false, "storageLocation": "memory", @@ -890,7 +890,7 @@ "typeString": "string" }, "typeName": { - "id": 1941, + "id": 1938, "name": "string", "nodeType": "ElementaryTypeName", "src": "2212:6:10", @@ -904,7 +904,7 @@ ], "src": "2211:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2158:98:10", "stateMutability": "view", "virtual": true, @@ -912,41 +912,41 @@ }, { "baseFunctions": [ - 2575 + 2572 ], "body": { - "id": 1956, + "id": 1953, "nodeType": "Block", "src": "2440:31:10", "statements": [ { "expression": { - "id": 1954, + "id": 1951, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2457:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1953, - "id": 1955, + "functionReturnParameters": 1950, + "id": 1952, "nodeType": "Return", "src": "2450:14:10" } ] }, "documentation": { - "id": 1948, + "id": 1945, "nodeType": "StructuredDocumentation", "src": "2262:102:10", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." }, "functionSelector": "95d89b41", - "id": 1957, + "id": 1954, "implemented": true, "kind": "function", "modifiers": [], @@ -954,29 +954,29 @@ "nameLocation": "2378:6:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1950, + "id": 1947, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2407:8:10" }, "parameters": { - "id": 1949, + "id": 1946, "nodeType": "ParameterList", "parameters": [], "src": "2384:2:10" }, "returnParameters": { - "id": 1953, + "id": 1950, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1952, + "id": 1949, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1957, + "scope": 1954, "src": "2425:13:10", "stateVariable": false, "storageLocation": "memory", @@ -985,7 +985,7 @@ "typeString": "string" }, "typeName": { - "id": 1951, + "id": 1948, "name": "string", "nodeType": "ElementaryTypeName", "src": "2425:6:10", @@ -999,7 +999,7 @@ ], "src": "2424:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2369:102:10", "stateMutability": "view", "virtual": true, @@ -1007,17 +1007,17 @@ }, { "baseFunctions": [ - 2581 + 2578 ], "body": { - "id": 1966, + "id": 1963, "nodeType": "Block", "src": "3169:26:10", "statements": [ { "expression": { "hexValue": "3138", - "id": 1964, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, @@ -1031,21 +1031,21 @@ }, "value": "18" }, - "functionReturnParameters": 1963, - "id": 1965, + "functionReturnParameters": 1960, + "id": 1962, "nodeType": "Return", "src": "3179:9:10" } ] }, "documentation": { - "id": 1958, + "id": 1955, "nodeType": "StructuredDocumentation", "src": "2477:622:10", "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." }, "functionSelector": "313ce567", - "id": 1967, + "id": 1964, "implemented": true, "kind": "function", "modifiers": [], @@ -1053,29 +1053,29 @@ "nameLocation": "3113:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1960, + "id": 1957, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3144:8:10" }, "parameters": { - "id": 1959, + "id": 1956, "nodeType": "ParameterList", "parameters": [], "src": "3121:2:10" }, "returnParameters": { - "id": 1963, + "id": 1960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1962, + "id": 1959, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1967, + "scope": 1964, "src": "3162:5:10", "stateVariable": false, "storageLocation": "default", @@ -1084,7 +1084,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1961, + "id": 1958, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3162:5:10", @@ -1098,7 +1098,7 @@ ], "src": "3161:7:10" }, - "scope": 2479, + "scope": 2476, "src": "3104:91:10", "stateMutability": "view", "virtual": true, @@ -1106,41 +1106,41 @@ }, { "baseFunctions": [ - 2506 + 2503 ], "body": { - "id": 1976, + "id": 1973, "nodeType": "Block", "src": "3325:36:10", "statements": [ { "expression": { - "id": 1974, + "id": 1971, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "3342:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1973, - "id": 1975, + "functionReturnParameters": 1970, + "id": 1972, "nodeType": "Return", "src": "3335:19:10" } ] }, "documentation": { - "id": 1968, + "id": 1965, "nodeType": "StructuredDocumentation", "src": "3201:49:10", "text": " @dev See {IERC20-totalSupply}." }, "functionSelector": "18160ddd", - "id": 1977, + "id": 1974, "implemented": true, "kind": "function", "modifiers": [], @@ -1148,29 +1148,29 @@ "nameLocation": "3264:11:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1970, + "id": 1967, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3298:8:10" }, "parameters": { - "id": 1969, + "id": 1966, "nodeType": "ParameterList", "parameters": [], "src": "3275:2:10" }, "returnParameters": { - "id": 1973, + "id": 1970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 1969, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1977, + "scope": 1974, "src": "3316:7:10", "stateVariable": false, "storageLocation": "default", @@ -1179,7 +1179,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1971, + "id": 1968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3316:7:10", @@ -1193,7 +1193,7 @@ ], "src": "3315:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3255:106:10", "stateMutability": "view", "virtual": true, @@ -1201,34 +1201,34 @@ }, { "baseFunctions": [ - 2514 + 2511 ], "body": { - "id": 1990, + "id": 1987, "nodeType": "Block", "src": "3502:42:10", "statements": [ { "expression": { "baseExpression": { - "id": 1986, + "id": 1983, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "3519:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1988, + "id": 1985, "indexExpression": { - "id": 1987, + "id": 1984, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, + "referencedDeclaration": 1977, "src": "3529:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1246,21 +1246,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1985, - "id": 1989, + "functionReturnParameters": 1982, + "id": 1986, "nodeType": "Return", "src": "3512:25:10" } ] }, "documentation": { - "id": 1978, + "id": 1975, "nodeType": "StructuredDocumentation", "src": "3367:47:10", "text": " @dev See {IERC20-balanceOf}." }, "functionSelector": "70a08231", - "id": 1991, + "id": 1988, "implemented": true, "kind": "function", "modifiers": [], @@ -1268,23 +1268,23 @@ "nameLocation": "3428:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1982, + "id": 1979, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3475:8:10" }, "parameters": { - "id": 1981, + "id": 1978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1980, + "id": 1977, "mutability": "mutable", "name": "account", "nameLocation": "3446:7:10", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3438:15:10", "stateVariable": false, "storageLocation": "default", @@ -1293,7 +1293,7 @@ "typeString": "address" }, "typeName": { - "id": 1979, + "id": 1976, "name": "address", "nodeType": "ElementaryTypeName", "src": "3438:7:10", @@ -1309,17 +1309,17 @@ "src": "3437:17:10" }, "returnParameters": { - "id": 1985, + "id": 1982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 1981, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3493:7:10", "stateVariable": false, "storageLocation": "default", @@ -1328,7 +1328,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1983, + "id": 1980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3493:7:10", @@ -1342,7 +1342,7 @@ ], "src": "3492:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3419:125:10", "stateMutability": "view", "virtual": true, @@ -1350,26 +1350,26 @@ }, { "baseFunctions": [ - 2524 + 2521 ], "body": { - "id": 2015, + "id": 2012, "nodeType": "Block", "src": "3825:104:10", "statements": [ { "assignments": [ - 2003 + 2000 ], "declarations": [ { "constant": false, - "id": 2003, + "id": 2000, "mutability": "mutable", "name": "owner", "nameLocation": "3843:5:10", "nodeType": "VariableDeclaration", - "scope": 2015, + "scope": 2012, "src": "3835:13:10", "stateVariable": false, "storageLocation": "default", @@ -1378,7 +1378,7 @@ "typeString": "address" }, "typeName": { - "id": 2002, + "id": 1999, "name": "address", "nodeType": "ElementaryTypeName", "src": "3835:7:10", @@ -1391,23 +1391,23 @@ "visibility": "internal" } ], - "id": 2006, + "id": 2003, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2004, + "id": 2001, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "3851:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2005, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, @@ -1430,11 +1430,11 @@ "expression": { "arguments": [ { - "id": 2008, + "id": 2005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2003, + "referencedDeclaration": 2000, "src": "3883:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1442,11 +1442,11 @@ } }, { - "id": 2009, + "id": 2006, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1994, + "referencedDeclaration": 1991, "src": "3890:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1454,11 +1454,11 @@ } }, { - "id": 2010, + "id": 2007, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1996, + "referencedDeclaration": 1993, "src": "3894:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1481,18 +1481,18 @@ "typeString": "uint256" } ], - "id": 2007, + "id": 2004, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "3873:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2011, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -1508,14 +1508,14 @@ "typeString": "tuple()" } }, - "id": 2012, + "id": 2009, "nodeType": "ExpressionStatement", "src": "3873:28:10" }, { "expression": { "hexValue": "74727565", - "id": 2013, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": true, @@ -1529,21 +1529,21 @@ }, "value": "true" }, - "functionReturnParameters": 2001, - "id": 2014, + "functionReturnParameters": 1998, + "id": 2011, "nodeType": "Return", "src": "3911:11:10" } ] }, "documentation": { - "id": 1992, + "id": 1989, "nodeType": "StructuredDocumentation", "src": "3550:185:10", "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." }, "functionSelector": "a9059cbb", - "id": 2016, + "id": 2013, "implemented": true, "kind": "function", "modifiers": [], @@ -1551,23 +1551,23 @@ "nameLocation": "3749:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1998, + "id": 1995, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3801:8:10" }, "parameters": { - "id": 1997, + "id": 1994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1994, + "id": 1991, "mutability": "mutable", "name": "to", "nameLocation": "3766:2:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3758:10:10", "stateVariable": false, "storageLocation": "default", @@ -1576,7 +1576,7 @@ "typeString": "address" }, "typeName": { - "id": 1993, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", "src": "3758:7:10", @@ -1590,12 +1590,12 @@ }, { "constant": false, - "id": 1996, + "id": 1993, "mutability": "mutable", "name": "amount", "nameLocation": "3778:6:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3770:14:10", "stateVariable": false, "storageLocation": "default", @@ -1604,7 +1604,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1995, + "id": 1992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3770:7:10", @@ -1619,17 +1619,17 @@ "src": "3757:28:10" }, "returnParameters": { - "id": 2001, + "id": 1998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2000, + "id": 1997, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3819:4:10", "stateVariable": false, "storageLocation": "default", @@ -1638,7 +1638,7 @@ "typeString": "bool" }, "typeName": { - "id": 1999, + "id": 1996, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3819:4:10", @@ -1652,7 +1652,7 @@ ], "src": "3818:6:10" }, - "scope": 2479, + "scope": 2476, "src": "3740:189:10", "stateMutability": "nonpayable", "virtual": true, @@ -1660,10 +1660,10 @@ }, { "baseFunctions": [ - 2534 + 2531 ], "body": { - "id": 2033, + "id": 2030, "nodeType": "Block", "src": "4085:51:10", "statements": [ @@ -1671,24 +1671,24 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 2027, + "id": 2024, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "4102:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2029, + "id": 2026, "indexExpression": { - "id": 2028, + "id": 2025, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 2016, "src": "4114:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1706,13 +1706,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2031, + "id": 2028, "indexExpression": { - "id": 2030, + "id": 2027, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, + "referencedDeclaration": 2018, "src": "4121:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1730,21 +1730,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2026, - "id": 2032, + "functionReturnParameters": 2023, + "id": 2029, "nodeType": "Return", "src": "4095:34:10" } ] }, "documentation": { - "id": 2017, + "id": 2014, "nodeType": "StructuredDocumentation", "src": "3935:47:10", "text": " @dev See {IERC20-allowance}." }, "functionSelector": "dd62ed3e", - "id": 2034, + "id": 2031, "implemented": true, "kind": "function", "modifiers": [], @@ -1752,23 +1752,23 @@ "nameLocation": "3996:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2023, + "id": 2020, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4058:8:10" }, "parameters": { - "id": 2022, + "id": 2019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2019, + "id": 2016, "mutability": "mutable", "name": "owner", "nameLocation": "4014:5:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4006:13:10", "stateVariable": false, "storageLocation": "default", @@ -1777,7 +1777,7 @@ "typeString": "address" }, "typeName": { - "id": 2018, + "id": 2015, "name": "address", "nodeType": "ElementaryTypeName", "src": "4006:7:10", @@ -1791,12 +1791,12 @@ }, { "constant": false, - "id": 2021, + "id": 2018, "mutability": "mutable", "name": "spender", "nameLocation": "4029:7:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4021:15:10", "stateVariable": false, "storageLocation": "default", @@ -1805,7 +1805,7 @@ "typeString": "address" }, "typeName": { - "id": 2020, + "id": 2017, "name": "address", "nodeType": "ElementaryTypeName", "src": "4021:7:10", @@ -1821,17 +1821,17 @@ "src": "4005:32:10" }, "returnParameters": { - "id": 2026, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2025, + "id": 2022, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4076:7:10", "stateVariable": false, "storageLocation": "default", @@ -1840,7 +1840,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2024, + "id": 2021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4076:7:10", @@ -1854,7 +1854,7 @@ ], "src": "4075:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3987:149:10", "stateMutability": "view", "virtual": true, @@ -1862,26 +1862,26 @@ }, { "baseFunctions": [ - 2544 + 2541 ], "body": { - "id": 2058, + "id": 2055, "nodeType": "Block", "src": "4533:108:10", "statements": [ { "assignments": [ - 2046 + 2043 ], "declarations": [ { "constant": false, - "id": 2046, + "id": 2043, "mutability": "mutable", "name": "owner", "nameLocation": "4551:5:10", "nodeType": "VariableDeclaration", - "scope": 2058, + "scope": 2055, "src": "4543:13:10", "stateVariable": false, "storageLocation": "default", @@ -1890,7 +1890,7 @@ "typeString": "address" }, "typeName": { - "id": 2045, + "id": 2042, "name": "address", "nodeType": "ElementaryTypeName", "src": "4543:7:10", @@ -1903,23 +1903,23 @@ "visibility": "internal" } ], - "id": 2049, + "id": 2046, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2047, + "id": 2044, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "4559:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2048, + "id": 2045, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,11 +1942,11 @@ "expression": { "arguments": [ { - "id": 2051, + "id": 2048, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, + "referencedDeclaration": 2043, "src": "4590:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1954,11 +1954,11 @@ } }, { - "id": 2052, + "id": 2049, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, + "referencedDeclaration": 2034, "src": "4597:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1966,11 +1966,11 @@ } }, { - "id": 2053, + "id": 2050, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2039, + "referencedDeclaration": 2036, "src": "4606:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1993,18 +1993,18 @@ "typeString": "uint256" } ], - "id": 2050, + "id": 2047, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "4581:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2054, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -2020,14 +2020,14 @@ "typeString": "tuple()" } }, - "id": 2055, + "id": 2052, "nodeType": "ExpressionStatement", "src": "4581:32:10" }, { "expression": { "hexValue": "74727565", - "id": 2056, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, @@ -2041,21 +2041,21 @@ }, "value": "true" }, - "functionReturnParameters": 2044, - "id": 2057, + "functionReturnParameters": 2041, + "id": 2054, "nodeType": "Return", "src": "4623:11:10" } ] }, "documentation": { - "id": 2035, + "id": 2032, "nodeType": "StructuredDocumentation", "src": "4142:297:10", "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "095ea7b3", - "id": 2059, + "id": 2056, "implemented": true, "kind": "function", "modifiers": [], @@ -2063,23 +2063,23 @@ "nameLocation": "4453:7:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2041, + "id": 2038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4509:8:10" }, "parameters": { - "id": 2040, + "id": 2037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2037, + "id": 2034, "mutability": "mutable", "name": "spender", "nameLocation": "4469:7:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4461:15:10", "stateVariable": false, "storageLocation": "default", @@ -2088,7 +2088,7 @@ "typeString": "address" }, "typeName": { - "id": 2036, + "id": 2033, "name": "address", "nodeType": "ElementaryTypeName", "src": "4461:7:10", @@ -2102,12 +2102,12 @@ }, { "constant": false, - "id": 2039, + "id": 2036, "mutability": "mutable", "name": "amount", "nameLocation": "4486:6:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4478:14:10", "stateVariable": false, "storageLocation": "default", @@ -2116,7 +2116,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2038, + "id": 2035, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4478:7:10", @@ -2131,17 +2131,17 @@ "src": "4460:33:10" }, "returnParameters": { - "id": 2044, + "id": 2041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2043, + "id": 2040, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4527:4:10", "stateVariable": false, "storageLocation": "default", @@ -2150,7 +2150,7 @@ "typeString": "bool" }, "typeName": { - "id": 2042, + "id": 2039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4527:4:10", @@ -2164,7 +2164,7 @@ ], "src": "4526:6:10" }, - "scope": 2479, + "scope": 2476, "src": "4444:197:10", "stateMutability": "nonpayable", "virtual": true, @@ -2172,26 +2172,26 @@ }, { "baseFunctions": [ - 2556 + 2553 ], "body": { - "id": 2091, + "id": 2088, "nodeType": "Block", "src": "5306:153:10", "statements": [ { "assignments": [ - 2073 + 2070 ], "declarations": [ { "constant": false, - "id": 2073, + "id": 2070, "mutability": "mutable", "name": "spender", "nameLocation": "5324:7:10", "nodeType": "VariableDeclaration", - "scope": 2091, + "scope": 2088, "src": "5316:15:10", "stateVariable": false, "storageLocation": "default", @@ -2200,7 +2200,7 @@ "typeString": "address" }, "typeName": { - "id": 2072, + "id": 2069, "name": "address", "nodeType": "ElementaryTypeName", "src": "5316:7:10", @@ -2213,23 +2213,23 @@ "visibility": "internal" } ], - "id": 2076, + "id": 2073, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2074, + "id": 2071, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5334:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2075, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,11 +2252,11 @@ "expression": { "arguments": [ { - "id": 2078, + "id": 2075, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5372:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2264,11 +2264,11 @@ } }, { - "id": 2079, + "id": 2076, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, + "referencedDeclaration": 2070, "src": "5378:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2276,11 +2276,11 @@ } }, { - "id": 2080, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5387:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2303,18 +2303,18 @@ "typeString": "uint256" } ], - "id": 2077, + "id": 2074, "name": "_spendAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2456, + "referencedDeclaration": 2453, "src": "5356:15:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2081, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -2330,7 +2330,7 @@ "typeString": "tuple()" } }, - "id": 2082, + "id": 2079, "nodeType": "ExpressionStatement", "src": "5356:38:10" }, @@ -2338,11 +2338,11 @@ "expression": { "arguments": [ { - "id": 2084, + "id": 2081, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5414:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2350,11 +2350,11 @@ } }, { - "id": 2085, + "id": 2082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, + "referencedDeclaration": 2061, "src": "5420:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2362,11 +2362,11 @@ } }, { - "id": 2086, + "id": 2083, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5424:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2389,18 +2389,18 @@ "typeString": "uint256" } ], - "id": 2083, + "id": 2080, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "5404:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2087, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, @@ -2416,14 +2416,14 @@ "typeString": "tuple()" } }, - "id": 2088, + "id": 2085, "nodeType": "ExpressionStatement", "src": "5404:27:10" }, { "expression": { "hexValue": "74727565", - "id": 2089, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": true, @@ -2437,21 +2437,21 @@ }, "value": "true" }, - "functionReturnParameters": 2071, - "id": 2090, + "functionReturnParameters": 2068, + "id": 2087, "nodeType": "Return", "src": "5441:11:10" } ] }, "documentation": { - "id": 2060, + "id": 2057, "nodeType": "StructuredDocumentation", "src": "4647:551:10", "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." }, "functionSelector": "23b872dd", - "id": 2092, + "id": 2089, "implemented": true, "kind": "function", "modifiers": [], @@ -2459,23 +2459,23 @@ "nameLocation": "5212:12:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2068, + "id": 2065, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5282:8:10" }, "parameters": { - "id": 2067, + "id": 2064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2062, + "id": 2059, "mutability": "mutable", "name": "from", "nameLocation": "5233:4:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5225:12:10", "stateVariable": false, "storageLocation": "default", @@ -2484,7 +2484,7 @@ "typeString": "address" }, "typeName": { - "id": 2061, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5225:7:10", @@ -2498,12 +2498,12 @@ }, { "constant": false, - "id": 2064, + "id": 2061, "mutability": "mutable", "name": "to", "nameLocation": "5247:2:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5239:10:10", "stateVariable": false, "storageLocation": "default", @@ -2512,7 +2512,7 @@ "typeString": "address" }, "typeName": { - "id": 2063, + "id": 2060, "name": "address", "nodeType": "ElementaryTypeName", "src": "5239:7:10", @@ -2526,12 +2526,12 @@ }, { "constant": false, - "id": 2066, + "id": 2063, "mutability": "mutable", "name": "amount", "nameLocation": "5259:6:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5251:14:10", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2065, + "id": 2062, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:10", @@ -2555,17 +2555,17 @@ "src": "5224:42:10" }, "returnParameters": { - "id": 2071, + "id": 2068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 2067, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5300:4:10", "stateVariable": false, "storageLocation": "default", @@ -2574,7 +2574,7 @@ "typeString": "bool" }, "typeName": { - "id": 2069, + "id": 2066, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5300:4:10", @@ -2588,7 +2588,7 @@ ], "src": "5299:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5203:256:10", "stateMutability": "nonpayable", "virtual": true, @@ -2596,23 +2596,23 @@ }, { "body": { - "id": 2120, + "id": 2117, "nodeType": "Block", "src": "5948:140:10", "statements": [ { "assignments": [ - 2103 + 2100 ], "declarations": [ { "constant": false, - "id": 2103, + "id": 2100, "mutability": "mutable", "name": "owner", "nameLocation": "5966:5:10", "nodeType": "VariableDeclaration", - "scope": 2120, + "scope": 2117, "src": "5958:13:10", "stateVariable": false, "storageLocation": "default", @@ -2621,7 +2621,7 @@ "typeString": "address" }, "typeName": { - "id": 2102, + "id": 2099, "name": "address", "nodeType": "ElementaryTypeName", "src": "5958:7:10", @@ -2634,23 +2634,23 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2103, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2104, + "id": 2101, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5974:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2105, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2673,11 +2673,11 @@ "expression": { "arguments": [ { - "id": 2108, + "id": 2105, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6005:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2685,11 +2685,11 @@ } }, { - "id": 2109, + "id": 2106, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6012:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2701,7 +2701,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2115, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -2709,11 +2709,11 @@ "leftExpression": { "arguments": [ { - "id": 2111, + "id": 2108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6031:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2721,11 +2721,11 @@ } }, { - "id": 2112, + "id": 2109, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6038:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2744,18 +2744,18 @@ "typeString": "address" } ], - "id": 2110, + "id": 2107, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6021:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2113, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -2774,11 +2774,11 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 2114, + "id": 2111, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2097, + "referencedDeclaration": 2094, "src": "6049:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2807,18 +2807,18 @@ "typeString": "uint256" } ], - "id": 2107, + "id": 2104, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "5996:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2116, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, @@ -2834,14 +2834,14 @@ "typeString": "tuple()" } }, - "id": 2117, + "id": 2114, "nodeType": "ExpressionStatement", "src": "5996:64:10" }, { "expression": { "hexValue": "74727565", - "id": 2118, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": true, @@ -2855,21 +2855,21 @@ }, "value": "true" }, - "functionReturnParameters": 2101, - "id": 2119, + "functionReturnParameters": 2098, + "id": 2116, "nodeType": "Return", "src": "6070:11:10" } ] }, "documentation": { - "id": 2093, + "id": 2090, "nodeType": "StructuredDocumentation", "src": "5465:384:10", "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "39509351", - "id": 2121, + "id": 2118, "implemented": true, "kind": "function", "modifiers": [], @@ -2877,17 +2877,17 @@ "nameLocation": "5863:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2098, + "id": 2095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2095, + "id": 2092, "mutability": "mutable", "name": "spender", "nameLocation": "5889:7:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5881:15:10", "stateVariable": false, "storageLocation": "default", @@ -2896,7 +2896,7 @@ "typeString": "address" }, "typeName": { - "id": 2094, + "id": 2091, "name": "address", "nodeType": "ElementaryTypeName", "src": "5881:7:10", @@ -2910,12 +2910,12 @@ }, { "constant": false, - "id": 2097, + "id": 2094, "mutability": "mutable", "name": "addedValue", "nameLocation": "5906:10:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5898:18:10", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2096, + "id": 2093, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5898:7:10", @@ -2939,17 +2939,17 @@ "src": "5880:37:10" }, "returnParameters": { - "id": 2101, + "id": 2098, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2100, + "id": 2097, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5942:4:10", "stateVariable": false, "storageLocation": "default", @@ -2958,7 +2958,7 @@ "typeString": "bool" }, "typeName": { - "id": 2099, + "id": 2096, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5942:4:10", @@ -2972,7 +2972,7 @@ ], "src": "5941:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5854:234:10", "stateMutability": "nonpayable", "virtual": true, @@ -2980,23 +2980,23 @@ }, { "body": { - "id": 2161, + "id": 2158, "nodeType": "Block", "src": "6674:328:10", "statements": [ { "assignments": [ - 2132 + 2129 ], "declarations": [ { "constant": false, - "id": 2132, + "id": 2129, "mutability": "mutable", "name": "owner", "nameLocation": "6692:5:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6684:13:10", "stateVariable": false, "storageLocation": "default", @@ -3005,7 +3005,7 @@ "typeString": "address" }, "typeName": { - "id": 2131, + "id": 2128, "name": "address", "nodeType": "ElementaryTypeName", "src": "6684:7:10", @@ -3018,23 +3018,23 @@ "visibility": "internal" } ], - "id": 2135, + "id": 2132, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2133, + "id": 2130, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "6700:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2134, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -3055,17 +3055,17 @@ }, { "assignments": [ - 2137 + 2134 ], "declarations": [ { "constant": false, - "id": 2137, + "id": 2134, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "6730:16:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6722:24:10", "stateVariable": false, "storageLocation": "default", @@ -3074,7 +3074,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2133, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6722:7:10", @@ -3086,15 +3086,15 @@ "visibility": "internal" } ], - "id": 2142, + "id": 2139, "initialValue": { "arguments": [ { - "id": 2139, + "id": 2136, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6759:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3102,11 +3102,11 @@ } }, { - "id": 2140, + "id": 2137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6766:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3125,18 +3125,18 @@ "typeString": "address" } ], - "id": 2138, + "id": 2135, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6749:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2141, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": false, @@ -3163,17 +3163,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2146, + "id": 2143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2144, + "id": 2141, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6792:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3183,11 +3183,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2145, + "id": 2142, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6812:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3202,7 +3202,7 @@ }, { "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 2147, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, @@ -3228,7 +3228,7 @@ "typeString": "literal_string \"ERC20: decreased allowance below zero\"" } ], - "id": 2143, + "id": 2140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3242,7 +3242,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2148, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -3258,12 +3258,12 @@ "typeString": "tuple()" } }, - "id": 2149, + "id": 2146, "nodeType": "ExpressionStatement", "src": "6784:85:10" }, { - "id": 2158, + "id": 2155, "nodeType": "UncheckedBlock", "src": "6879:95:10", "statements": [ @@ -3271,11 +3271,11 @@ "expression": { "arguments": [ { - "id": 2151, + "id": 2148, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6912:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3283,11 +3283,11 @@ } }, { - "id": 2152, + "id": 2149, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6919:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3299,17 +3299,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2155, + "id": 2152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2150, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6928:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3319,11 +3319,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2154, + "id": 2151, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6947:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3352,18 +3352,18 @@ "typeString": "uint256" } ], - "id": 2150, + "id": 2147, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "6903:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2156, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3379,7 +3379,7 @@ "typeString": "tuple()" } }, - "id": 2157, + "id": 2154, "nodeType": "ExpressionStatement", "src": "6903:60:10" } @@ -3388,7 +3388,7 @@ { "expression": { "hexValue": "74727565", - "id": 2159, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": true, @@ -3402,21 +3402,21 @@ }, "value": "true" }, - "functionReturnParameters": 2130, - "id": 2160, + "functionReturnParameters": 2127, + "id": 2157, "nodeType": "Return", "src": "6984:11:10" } ] }, "documentation": { - "id": 2122, + "id": 2119, "nodeType": "StructuredDocumentation", "src": "6094:476:10", "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." }, "functionSelector": "a457c2d7", - "id": 2162, + "id": 2159, "implemented": true, "kind": "function", "modifiers": [], @@ -3424,17 +3424,17 @@ "nameLocation": "6584:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2127, + "id": 2124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2124, + "id": 2121, "mutability": "mutable", "name": "spender", "nameLocation": "6610:7:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6602:15:10", "stateVariable": false, "storageLocation": "default", @@ -3443,7 +3443,7 @@ "typeString": "address" }, "typeName": { - "id": 2123, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", "src": "6602:7:10", @@ -3457,12 +3457,12 @@ }, { "constant": false, - "id": 2126, + "id": 2123, "mutability": "mutable", "name": "subtractedValue", "nameLocation": "6627:15:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6619:23:10", "stateVariable": false, "storageLocation": "default", @@ -3471,7 +3471,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2122, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6619:7:10", @@ -3486,17 +3486,17 @@ "src": "6601:42:10" }, "returnParameters": { - "id": 2130, + "id": 2127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2129, + "id": 2126, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6668:4:10", "stateVariable": false, "storageLocation": "default", @@ -3505,7 +3505,7 @@ "typeString": "bool" }, "typeName": { - "id": 2128, + "id": 2125, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6668:4:10", @@ -3519,7 +3519,7 @@ ], "src": "6667:6:10" }, - "scope": 2479, + "scope": 2476, "src": "6575:427:10", "stateMutability": "nonpayable", "virtual": true, @@ -3527,7 +3527,7 @@ }, { "body": { - "id": 2238, + "id": 2235, "nodeType": "Block", "src": "7534:710:10", "statements": [ @@ -3539,17 +3539,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2178, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2173, + "id": 2170, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7552:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3562,7 +3562,7 @@ "arguments": [ { "hexValue": "30", - "id": 2176, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -3584,7 +3584,7 @@ "typeString": "int_const 0" } ], - "id": 2175, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": true, @@ -3596,14 +3596,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2174, + "id": 2171, "name": "address", "nodeType": "ElementaryTypeName", "src": "7560:7:10", "typeDescriptions": {} } }, - "id": 2177, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": true, @@ -3627,7 +3627,7 @@ }, { "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 2179, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": true, @@ -3653,7 +3653,7 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 2172, + "id": 2169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3667,7 +3667,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2177, "isConstant": false, "isLValue": false, "isPure": false, @@ -3683,7 +3683,7 @@ "typeString": "tuple()" } }, - "id": 2181, + "id": 2178, "nodeType": "ExpressionStatement", "src": "7544:68:10" }, @@ -3695,17 +3695,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2188, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7630:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3718,7 +3718,7 @@ "arguments": [ { "hexValue": "30", - "id": 2186, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, @@ -3740,7 +3740,7 @@ "typeString": "int_const 0" } ], - "id": 2185, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": true, @@ -3752,14 +3752,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2184, + "id": 2181, "name": "address", "nodeType": "ElementaryTypeName", "src": "7636:7:10", "typeDescriptions": {} } }, - "id": 2187, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, @@ -3783,7 +3783,7 @@ }, { "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2189, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": true, @@ -3809,7 +3809,7 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 2182, + "id": 2179, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3823,7 +3823,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2190, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -3839,7 +3839,7 @@ "typeString": "tuple()" } }, - "id": 2191, + "id": 2188, "nodeType": "ExpressionStatement", "src": "7622:64:10" }, @@ -3847,11 +3847,11 @@ "expression": { "arguments": [ { - "id": 2193, + "id": 2190, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7718:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3859,11 +3859,11 @@ } }, { - "id": 2194, + "id": 2191, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7724:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3871,11 +3871,11 @@ } }, { - "id": 2195, + "id": 2192, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7728:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3898,18 +3898,18 @@ "typeString": "uint256" } ], - "id": 2192, + "id": 2189, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "7697:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2196, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, @@ -3925,23 +3925,23 @@ "typeString": "tuple()" } }, - "id": 2197, + "id": 2194, "nodeType": "ExpressionStatement", "src": "7697:38:10" }, { "assignments": [ - 2199 + 2196 ], "declarations": [ { "constant": false, - "id": 2199, + "id": 2196, "mutability": "mutable", "name": "fromBalance", "nameLocation": "7754:11:10", "nodeType": "VariableDeclaration", - "scope": 2238, + "scope": 2235, "src": "7746:19:10", "stateVariable": false, "storageLocation": "default", @@ -3950,7 +3950,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2198, + "id": 2195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:10", @@ -3962,27 +3962,27 @@ "visibility": "internal" } ], - "id": 2203, + "id": 2200, "initialValue": { "baseExpression": { - "id": 2200, + "id": 2197, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7768:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2202, + "id": 2199, "indexExpression": { - "id": 2201, + "id": 2198, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7778:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4011,17 +4011,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2207, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2205, + "id": 2202, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7801:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4031,11 +4031,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2206, + "id": 2203, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7816:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4050,7 +4050,7 @@ }, { "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 2208, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -4076,7 +4076,7 @@ "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" } ], - "id": 2204, + "id": 2201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4090,7 +4090,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, @@ -4106,42 +4106,42 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2207, "nodeType": "ExpressionStatement", "src": "7793:72:10" }, { - "id": 2225, + "id": 2222, "nodeType": "UncheckedBlock", "src": "7875:273:10", "statements": [ { "expression": { - "id": 2217, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2211, + "id": 2208, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2213, + "id": 2210, "indexExpression": { - "id": 2212, + "id": 2209, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7909:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4166,17 +4166,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2214, + "id": 2211, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7917:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4186,11 +4186,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2215, + "id": 2212, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7931:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4209,37 +4209,37 @@ "typeString": "uint256" } }, - "id": 2218, + "id": 2215, "nodeType": "ExpressionStatement", "src": "7899:38:10" }, { "expression": { - "id": 2223, + "id": 2220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2219, + "id": 2216, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8114:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2221, + "id": 2218, "indexExpression": { - "id": 2220, + "id": 2217, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8124:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4260,11 +4260,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2222, + "id": 2219, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8131:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4277,7 +4277,7 @@ "typeString": "uint256" } }, - "id": 2224, + "id": 2221, "nodeType": "ExpressionStatement", "src": "8114:23:10" } @@ -4287,11 +4287,11 @@ "eventCall": { "arguments": [ { - "id": 2227, + "id": 2224, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8172:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4299,11 +4299,11 @@ } }, { - "id": 2228, + "id": 2225, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8178:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4311,11 +4311,11 @@ } }, { - "id": 2229, + "id": 2226, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8182:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4338,18 +4338,18 @@ "typeString": "uint256" } ], - "id": 2226, + "id": 2223, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8163:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2230, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, @@ -4365,7 +4365,7 @@ "typeString": "tuple()" } }, - "id": 2231, + "id": 2228, "nodeType": "EmitStatement", "src": "8158:31:10" }, @@ -4373,11 +4373,11 @@ "expression": { "arguments": [ { - "id": 2233, + "id": 2230, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8220:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4385,11 +4385,11 @@ } }, { - "id": 2234, + "id": 2231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8226:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4397,11 +4397,11 @@ } }, { - "id": 2235, + "id": 2232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8230:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4424,18 +4424,18 @@ "typeString": "uint256" } ], - "id": 2232, + "id": 2229, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "8200:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2236, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -4451,19 +4451,19 @@ "typeString": "tuple()" } }, - "id": 2237, + "id": 2234, "nodeType": "ExpressionStatement", "src": "8200:37:10" } ] }, "documentation": { - "id": 2163, + "id": 2160, "nodeType": "StructuredDocumentation", "src": "7008:443:10", "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." }, - "id": 2239, + "id": 2236, "implemented": true, "kind": "function", "modifiers": [], @@ -4471,17 +4471,17 @@ "nameLocation": "7465:9:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 2167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 2162, "mutability": "mutable", "name": "from", "nameLocation": "7483:4:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7475:12:10", "stateVariable": false, "storageLocation": "default", @@ -4490,7 +4490,7 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "7475:7:10", @@ -4504,12 +4504,12 @@ }, { "constant": false, - "id": 2167, + "id": 2164, "mutability": "mutable", "name": "to", "nameLocation": "7497:2:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7489:10:10", "stateVariable": false, "storageLocation": "default", @@ -4518,7 +4518,7 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", "src": "7489:7:10", @@ -4532,12 +4532,12 @@ }, { "constant": false, - "id": 2169, + "id": 2166, "mutability": "mutable", "name": "amount", "nameLocation": "7509:6:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7501:14:10", "stateVariable": false, "storageLocation": "default", @@ -4546,7 +4546,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2168, + "id": 2165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7501:7:10", @@ -4561,12 +4561,12 @@ "src": "7474:42:10" }, "returnParameters": { - "id": 2171, + "id": 2168, "nodeType": "ParameterList", "parameters": [], "src": "7534:0:10" }, - "scope": 2479, + "scope": 2476, "src": "7456:788:10", "stateMutability": "nonpayable", "virtual": true, @@ -4574,7 +4574,7 @@ }, { "body": { - "id": 2295, + "id": 2292, "nodeType": "Block", "src": "8585:470:10", "statements": [ @@ -4586,17 +4586,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2253, + "id": 2250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2248, + "id": 2245, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8603:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4609,7 +4609,7 @@ "arguments": [ { "hexValue": "30", - "id": 2251, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": true, @@ -4631,7 +4631,7 @@ "typeString": "int_const 0" } ], - "id": 2250, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -4643,14 +4643,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2249, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", "src": "8614:7:10", "typeDescriptions": {} } }, - "id": 2252, + "id": 2249, "isConstant": false, "isLValue": false, "isPure": true, @@ -4674,7 +4674,7 @@ }, { "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2254, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, @@ -4700,7 +4700,7 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 2247, + "id": 2244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4714,7 +4714,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2255, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -4730,7 +4730,7 @@ "typeString": "tuple()" } }, - "id": 2256, + "id": 2253, "nodeType": "ExpressionStatement", "src": "8595:65:10" }, @@ -4741,7 +4741,7 @@ "arguments": [ { "hexValue": "30", - "id": 2260, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, @@ -4763,7 +4763,7 @@ "typeString": "int_const 0" } ], - "id": 2259, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -4775,14 +4775,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2258, + "id": 2255, "name": "address", "nodeType": "ElementaryTypeName", "src": "8692:7:10", "typeDescriptions": {} } }, - "id": 2261, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, @@ -4799,11 +4799,11 @@ } }, { - "id": 2262, + "id": 2259, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8704:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4811,11 +4811,11 @@ } }, { - "id": 2263, + "id": 2260, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8713:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4838,18 +4838,18 @@ "typeString": "uint256" } ], - "id": 2257, + "id": 2254, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "8671:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2264, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, @@ -4865,23 +4865,23 @@ "typeString": "tuple()" } }, - "id": 2265, + "id": 2262, "nodeType": "ExpressionStatement", "src": "8671:49:10" }, { "expression": { - "id": 2268, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2266, + "id": 2263, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "8731:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4891,11 +4891,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2267, + "id": 2264, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8747:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4908,42 +4908,42 @@ "typeString": "uint256" } }, - "id": 2269, + "id": 2266, "nodeType": "ExpressionStatement", "src": "8731:22:10" }, { - "id": 2276, + "id": 2273, "nodeType": "UncheckedBlock", "src": "8763:175:10", "statements": [ { "expression": { - "id": 2274, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2270, + "id": 2267, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2272, + "id": 2269, "indexExpression": { - "id": 2271, + "id": 2268, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8909:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4964,11 +4964,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2273, + "id": 2270, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8921:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4981,7 +4981,7 @@ "typeString": "uint256" } }, - "id": 2275, + "id": 2272, "nodeType": "ExpressionStatement", "src": "8899:28:10" } @@ -4994,7 +4994,7 @@ "arguments": [ { "hexValue": "30", - "id": 2280, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": true, @@ -5016,7 +5016,7 @@ "typeString": "int_const 0" } ], - "id": 2279, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": true, @@ -5028,14 +5028,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2278, + "id": 2275, "name": "address", "nodeType": "ElementaryTypeName", "src": "8961:7:10", "typeDescriptions": {} } }, - "id": 2281, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": true, @@ -5052,11 +5052,11 @@ } }, { - "id": 2282, + "id": 2279, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8973:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5064,11 +5064,11 @@ } }, { - "id": 2283, + "id": 2280, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8982:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5091,18 +5091,18 @@ "typeString": "uint256" } ], - "id": 2277, + "id": 2274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8952:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2284, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -5118,7 +5118,7 @@ "typeString": "tuple()" } }, - "id": 2285, + "id": 2282, "nodeType": "EmitStatement", "src": "8947:42:10" }, @@ -5129,7 +5129,7 @@ "arguments": [ { "hexValue": "30", - "id": 2289, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": true, @@ -5151,7 +5151,7 @@ "typeString": "int_const 0" } ], - "id": 2288, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": true, @@ -5163,14 +5163,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2287, + "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "9020:7:10", "typeDescriptions": {} } }, - "id": 2290, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, @@ -5187,11 +5187,11 @@ } }, { - "id": 2291, + "id": 2288, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "9032:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5199,11 +5199,11 @@ } }, { - "id": 2292, + "id": 2289, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "9041:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5226,18 +5226,18 @@ "typeString": "uint256" } ], - "id": 2286, + "id": 2283, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9000:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2293, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -5253,19 +5253,19 @@ "typeString": "tuple()" } }, - "id": 2294, + "id": 2291, "nodeType": "ExpressionStatement", "src": "9000:48:10" } ] }, "documentation": { - "id": 2240, + "id": 2237, "nodeType": "StructuredDocumentation", "src": "8250:265:10", "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." }, - "id": 2296, + "id": 2293, "implemented": true, "kind": "function", "modifiers": [], @@ -5273,17 +5273,17 @@ "nameLocation": "8529:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2245, + "id": 2242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2242, + "id": 2239, "mutability": "mutable", "name": "account", "nameLocation": "8543:7:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8535:15:10", "stateVariable": false, "storageLocation": "default", @@ -5292,7 +5292,7 @@ "typeString": "address" }, "typeName": { - "id": 2241, + "id": 2238, "name": "address", "nodeType": "ElementaryTypeName", "src": "8535:7:10", @@ -5306,12 +5306,12 @@ }, { "constant": false, - "id": 2244, + "id": 2241, "mutability": "mutable", "name": "amount", "nameLocation": "8560:6:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8552:14:10", "stateVariable": false, "storageLocation": "default", @@ -5320,7 +5320,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2243, + "id": 2240, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8552:7:10", @@ -5335,12 +5335,12 @@ "src": "8534:33:10" }, "returnParameters": { - "id": 2246, + "id": 2243, "nodeType": "ParameterList", "parameters": [], "src": "8585:0:10" }, - "scope": 2479, + "scope": 2476, "src": "8520:535:10", "stateMutability": "nonpayable", "virtual": true, @@ -5348,7 +5348,7 @@ }, { "body": { - "id": 2367, + "id": 2364, "nodeType": "Block", "src": "9440:594:10", "statements": [ @@ -5360,17 +5360,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2310, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2305, + "id": 2302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9458:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5383,7 +5383,7 @@ "arguments": [ { "hexValue": "30", - "id": 2308, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -5405,7 +5405,7 @@ "typeString": "int_const 0" } ], - "id": 2307, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": true, @@ -5417,14 +5417,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2306, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "9469:7:10", "typeDescriptions": {} } }, - "id": 2309, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, @@ -5448,7 +5448,7 @@ }, { "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 2311, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, @@ -5474,7 +5474,7 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 2304, + "id": 2301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5488,7 +5488,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2312, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -5504,7 +5504,7 @@ "typeString": "tuple()" } }, - "id": 2313, + "id": 2310, "nodeType": "ExpressionStatement", "src": "9450:67:10" }, @@ -5512,11 +5512,11 @@ "expression": { "arguments": [ { - "id": 2315, + "id": 2312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9549:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5527,7 +5527,7 @@ "arguments": [ { "hexValue": "30", - "id": 2318, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -5549,7 +5549,7 @@ "typeString": "int_const 0" } ], - "id": 2317, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -5561,14 +5561,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2316, + "id": 2313, "name": "address", "nodeType": "ElementaryTypeName", "src": "9558:7:10", "typeDescriptions": {} } }, - "id": 2319, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -5585,11 +5585,11 @@ } }, { - "id": 2320, + "id": 2317, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9570:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5612,18 +5612,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 2311, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "9528:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2321, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5639,23 +5639,23 @@ "typeString": "tuple()" } }, - "id": 2322, + "id": 2319, "nodeType": "ExpressionStatement", "src": "9528:49:10" }, { "assignments": [ - 2324 + 2321 ], "declarations": [ { "constant": false, - "id": 2324, + "id": 2321, "mutability": "mutable", "name": "accountBalance", "nameLocation": "9596:14:10", "nodeType": "VariableDeclaration", - "scope": 2367, + "scope": 2364, "src": "9588:22:10", "stateVariable": false, "storageLocation": "default", @@ -5664,7 +5664,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2323, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9588:7:10", @@ -5676,27 +5676,27 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2325, "initialValue": { "baseExpression": { - "id": 2325, + "id": 2322, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9613:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2327, + "id": 2324, "indexExpression": { - "id": 2326, + "id": 2323, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9623:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5725,17 +5725,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2332, + "id": 2329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2330, + "id": 2327, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9649:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5745,11 +5745,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2331, + "id": 2328, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9667:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5764,7 +5764,7 @@ }, { "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 2333, + "id": 2330, "isConstant": false, "isLValue": false, "isPure": true, @@ -5790,7 +5790,7 @@ "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" } ], - "id": 2329, + "id": 2326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5804,7 +5804,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, @@ -5820,42 +5820,42 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2332, "nodeType": "ExpressionStatement", "src": "9641:71:10" }, { - "id": 2348, + "id": 2345, "nodeType": "UncheckedBlock", "src": "9722:194:10", "statements": [ { "expression": { - "id": 2342, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2336, + "id": 2333, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9746:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2338, + "id": 2335, "indexExpression": { - "id": 2337, + "id": 2334, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9756:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5880,17 +5880,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2339, + "id": 2336, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9767:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5900,11 +5900,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2340, + "id": 2337, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9784:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5923,23 +5923,23 @@ "typeString": "uint256" } }, - "id": 2343, + "id": 2340, "nodeType": "ExpressionStatement", "src": "9746:44:10" }, { "expression": { - "id": 2346, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2344, + "id": 2341, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "9883:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5949,11 +5949,11 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 2345, + "id": 2342, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9899:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5966,7 +5966,7 @@ "typeString": "uint256" } }, - "id": 2347, + "id": 2344, "nodeType": "ExpressionStatement", "src": "9883:22:10" } @@ -5976,11 +5976,11 @@ "eventCall": { "arguments": [ { - "id": 2350, + "id": 2347, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9940:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5991,7 +5991,7 @@ "arguments": [ { "hexValue": "30", - "id": 2353, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, @@ -6013,7 +6013,7 @@ "typeString": "int_const 0" } ], - "id": 2352, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": true, @@ -6025,14 +6025,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2351, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", "src": "9949:7:10", "typeDescriptions": {} } }, - "id": 2354, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": true, @@ -6049,11 +6049,11 @@ } }, { - "id": 2355, + "id": 2352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9961:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6076,18 +6076,18 @@ "typeString": "uint256" } ], - "id": 2349, + "id": 2346, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "9931:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2356, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6103,7 +6103,7 @@ "typeString": "tuple()" } }, - "id": 2357, + "id": 2354, "nodeType": "EmitStatement", "src": "9926:42:10" }, @@ -6111,11 +6111,11 @@ "expression": { "arguments": [ { - "id": 2359, + "id": 2356, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9999:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6126,7 +6126,7 @@ "arguments": [ { "hexValue": "30", - "id": 2362, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -6148,7 +6148,7 @@ "typeString": "int_const 0" } ], - "id": 2361, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, @@ -6160,14 +6160,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2360, + "id": 2357, "name": "address", "nodeType": "ElementaryTypeName", "src": "10008:7:10", "typeDescriptions": {} } }, - "id": 2363, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -6184,11 +6184,11 @@ } }, { - "id": 2364, + "id": 2361, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "10020:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6211,18 +6211,18 @@ "typeString": "uint256" } ], - "id": 2358, + "id": 2355, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9979:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2365, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -6238,19 +6238,19 @@ "typeString": "tuple()" } }, - "id": 2366, + "id": 2363, "nodeType": "ExpressionStatement", "src": "9979:48:10" } ] }, "documentation": { - "id": 2297, + "id": 2294, "nodeType": "StructuredDocumentation", "src": "9061:309:10", "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." }, - "id": 2368, + "id": 2365, "implemented": true, "kind": "function", "modifiers": [], @@ -6258,17 +6258,17 @@ "nameLocation": "9384:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2302, + "id": 2299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2299, + "id": 2296, "mutability": "mutable", "name": "account", "nameLocation": "9398:7:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9390:15:10", "stateVariable": false, "storageLocation": "default", @@ -6277,7 +6277,7 @@ "typeString": "address" }, "typeName": { - "id": 2298, + "id": 2295, "name": "address", "nodeType": "ElementaryTypeName", "src": "9390:7:10", @@ -6291,12 +6291,12 @@ }, { "constant": false, - "id": 2301, + "id": 2298, "mutability": "mutable", "name": "amount", "nameLocation": "9415:6:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9407:14:10", "stateVariable": false, "storageLocation": "default", @@ -6305,7 +6305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2300, + "id": 2297, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9407:7:10", @@ -6320,12 +6320,12 @@ "src": "9389:33:10" }, "returnParameters": { - "id": 2303, + "id": 2300, "nodeType": "ParameterList", "parameters": [], "src": "9440:0:10" }, - "scope": 2479, + "scope": 2476, "src": "9375:659:10", "stateMutability": "nonpayable", "virtual": true, @@ -6333,7 +6333,7 @@ }, { "body": { - "id": 2412, + "id": 2409, "nodeType": "Block", "src": "10540:257:10", "statements": [ @@ -6345,17 +6345,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2384, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2379, + "id": 2376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10558:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6368,7 +6368,7 @@ "arguments": [ { "hexValue": "30", - "id": 2382, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": true, @@ -6390,7 +6390,7 @@ "typeString": "int_const 0" } ], - "id": 2381, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, @@ -6402,14 +6402,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2380, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "10567:7:10", "typeDescriptions": {} } }, - "id": 2383, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, @@ -6433,7 +6433,7 @@ }, { "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 2385, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, @@ -6459,7 +6459,7 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 2378, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6473,7 +6473,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2386, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -6489,7 +6489,7 @@ "typeString": "tuple()" } }, - "id": 2387, + "id": 2384, "nodeType": "ExpressionStatement", "src": "10550:68:10" }, @@ -6501,17 +6501,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2394, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2389, + "id": 2386, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10636:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6524,7 +6524,7 @@ "arguments": [ { "hexValue": "30", - "id": 2392, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, @@ -6546,7 +6546,7 @@ "typeString": "int_const 0" } ], - "id": 2391, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, @@ -6558,14 +6558,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2390, + "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "10647:7:10", "typeDescriptions": {} } }, - "id": 2393, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, @@ -6589,7 +6589,7 @@ }, { "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 2395, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, @@ -6615,7 +6615,7 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 2388, + "id": 2385, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6629,7 +6629,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2396, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, @@ -6645,13 +6645,13 @@ "typeString": "tuple()" } }, - "id": 2397, + "id": 2394, "nodeType": "ExpressionStatement", "src": "10628:68:10" }, { "expression": { - "id": 2404, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6659,24 +6659,24 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2398, + "id": 2395, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "10707:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2401, + "id": 2398, "indexExpression": { - "id": 2399, + "id": 2396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10719:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6694,13 +6694,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2402, + "id": 2399, "indexExpression": { - "id": 2400, + "id": 2397, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10726:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6721,11 +6721,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2403, + "id": 2400, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10737:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6738,7 +6738,7 @@ "typeString": "uint256" } }, - "id": 2405, + "id": 2402, "nodeType": "ExpressionStatement", "src": "10707:36:10" }, @@ -6746,11 +6746,11 @@ "eventCall": { "arguments": [ { - "id": 2407, + "id": 2404, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10767:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6758,11 +6758,11 @@ } }, { - "id": 2408, + "id": 2405, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10774:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6770,11 +6770,11 @@ } }, { - "id": 2409, + "id": 2406, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10783:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6797,18 +6797,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2403, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, + "referencedDeclaration": 2497, "src": "10758:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2410, + "id": 2407, "isConstant": false, "isLValue": false, "isPure": false, @@ -6824,19 +6824,19 @@ "typeString": "tuple()" } }, - "id": 2411, + "id": 2408, "nodeType": "EmitStatement", "src": "10753:37:10" } ] }, "documentation": { - "id": 2369, + "id": 2366, "nodeType": "StructuredDocumentation", "src": "10040:412:10", "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." }, - "id": 2413, + "id": 2410, "implemented": true, "kind": "function", "modifiers": [], @@ -6844,17 +6844,17 @@ "nameLocation": "10466:8:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2376, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2371, + "id": 2368, "mutability": "mutable", "name": "owner", "nameLocation": "10483:5:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10475:13:10", "stateVariable": false, "storageLocation": "default", @@ -6863,7 +6863,7 @@ "typeString": "address" }, "typeName": { - "id": 2370, + "id": 2367, "name": "address", "nodeType": "ElementaryTypeName", "src": "10475:7:10", @@ -6877,12 +6877,12 @@ }, { "constant": false, - "id": 2373, + "id": 2370, "mutability": "mutable", "name": "spender", "nameLocation": "10498:7:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10490:15:10", "stateVariable": false, "storageLocation": "default", @@ -6891,7 +6891,7 @@ "typeString": "address" }, "typeName": { - "id": 2372, + "id": 2369, "name": "address", "nodeType": "ElementaryTypeName", "src": "10490:7:10", @@ -6905,12 +6905,12 @@ }, { "constant": false, - "id": 2375, + "id": 2372, "mutability": "mutable", "name": "amount", "nameLocation": "10515:6:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10507:14:10", "stateVariable": false, "storageLocation": "default", @@ -6919,7 +6919,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2374, + "id": 2371, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10507:7:10", @@ -6934,12 +6934,12 @@ "src": "10474:48:10" }, "returnParameters": { - "id": 2377, + "id": 2374, "nodeType": "ParameterList", "parameters": [], "src": "10540:0:10" }, - "scope": 2479, + "scope": 2476, "src": "10457:340:10", "stateMutability": "nonpayable", "virtual": true, @@ -6947,23 +6947,23 @@ }, { "body": { - "id": 2455, + "id": 2452, "nodeType": "Block", "src": "11168:321:10", "statements": [ { "assignments": [ - 2424 + 2421 ], "declarations": [ { "constant": false, - "id": 2424, + "id": 2421, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "11186:16:10", "nodeType": "VariableDeclaration", - "scope": 2455, + "scope": 2452, "src": "11178:24:10", "stateVariable": false, "storageLocation": "default", @@ -6972,7 +6972,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2423, + "id": 2420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11178:7:10", @@ -6984,15 +6984,15 @@ "visibility": "internal" } ], - "id": 2429, + "id": 2426, "initialValue": { "arguments": [ { - "id": 2426, + "id": 2423, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11215:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7000,11 +7000,11 @@ } }, { - "id": 2427, + "id": 2424, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11222:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7023,18 +7023,18 @@ "typeString": "address" } ], - "id": 2425, + "id": 2422, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "11205:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2428, + "id": 2425, "isConstant": false, "isLValue": false, "isPure": false, @@ -7059,17 +7059,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2430, + "id": 2427, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11244:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7082,7 +7082,7 @@ "expression": { "arguments": [ { - "id": 2433, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, @@ -7094,7 +7094,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 2432, + "id": 2429, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11269:7:10", @@ -7109,7 +7109,7 @@ "typeString": "type(uint256)" } ], - "id": 2431, + "id": 2428, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -7120,7 +7120,7 @@ "typeString": "function () pure" } }, - "id": 2434, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": true, @@ -7136,7 +7136,7 @@ "typeString": "type(uint256)" } }, - "id": 2435, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -7156,11 +7156,11 @@ "typeString": "bool" } }, - "id": 2454, + "id": 2451, "nodeType": "IfStatement", "src": "11240:243:10", "trueBody": { - "id": 2453, + "id": 2450, "nodeType": "Block", "src": "11283:200:10", "statements": [ @@ -7172,17 +7172,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2440, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2438, + "id": 2435, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11305:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7192,11 +7192,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2439, + "id": 2436, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11325:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7211,7 +7211,7 @@ }, { "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", - "id": 2441, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, @@ -7237,7 +7237,7 @@ "typeString": "literal_string \"ERC20: insufficient allowance\"" } ], - "id": 2437, + "id": 2434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7251,7 +7251,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2442, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -7267,12 +7267,12 @@ "typeString": "tuple()" } }, - "id": 2443, + "id": 2440, "nodeType": "ExpressionStatement", "src": "11297:68:10" }, { - "id": 2452, + "id": 2449, "nodeType": "UncheckedBlock", "src": "11379:94:10", "statements": [ @@ -7280,11 +7280,11 @@ "expression": { "arguments": [ { - "id": 2445, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11416:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7292,11 +7292,11 @@ } }, { - "id": 2446, + "id": 2443, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11423:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7308,17 +7308,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2449, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2447, + "id": 2444, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11432:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7328,11 +7328,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2448, + "id": 2445, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11451:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7361,18 +7361,18 @@ "typeString": "uint256" } ], - "id": 2444, + "id": 2441, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "11407:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2450, + "id": 2447, "isConstant": false, "isLValue": false, "isPure": false, @@ -7388,7 +7388,7 @@ "typeString": "tuple()" } }, - "id": 2451, + "id": 2448, "nodeType": "ExpressionStatement", "src": "11407:51:10" } @@ -7400,12 +7400,12 @@ ] }, "documentation": { - "id": 2414, + "id": 2411, "nodeType": "StructuredDocumentation", "src": "10803:270:10", "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." }, - "id": 2456, + "id": 2453, "implemented": true, "kind": "function", "modifiers": [], @@ -7413,17 +7413,17 @@ "nameLocation": "11087:15:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2421, + "id": 2418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2416, + "id": 2413, "mutability": "mutable", "name": "owner", "nameLocation": "11111:5:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11103:13:10", "stateVariable": false, "storageLocation": "default", @@ -7432,7 +7432,7 @@ "typeString": "address" }, "typeName": { - "id": 2415, + "id": 2412, "name": "address", "nodeType": "ElementaryTypeName", "src": "11103:7:10", @@ -7446,12 +7446,12 @@ }, { "constant": false, - "id": 2418, + "id": 2415, "mutability": "mutable", "name": "spender", "nameLocation": "11126:7:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11118:15:10", "stateVariable": false, "storageLocation": "default", @@ -7460,7 +7460,7 @@ "typeString": "address" }, "typeName": { - "id": 2417, + "id": 2414, "name": "address", "nodeType": "ElementaryTypeName", "src": "11118:7:10", @@ -7474,12 +7474,12 @@ }, { "constant": false, - "id": 2420, + "id": 2417, "mutability": "mutable", "name": "amount", "nameLocation": "11143:6:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11135:14:10", "stateVariable": false, "storageLocation": "default", @@ -7488,7 +7488,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2419, + "id": 2416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11135:7:10", @@ -7503,12 +7503,12 @@ "src": "11102:48:10" }, "returnParameters": { - "id": 2422, + "id": 2419, "nodeType": "ParameterList", "parameters": [], "src": "11168:0:10" }, - "scope": 2479, + "scope": 2476, "src": "11078:411:10", "stateMutability": "nonpayable", "virtual": true, @@ -7516,18 +7516,18 @@ }, { "body": { - "id": 2466, + "id": 2463, "nodeType": "Block", "src": "12162:2:10", "statements": [] }, "documentation": { - "id": 2457, + "id": 2454, "nodeType": "StructuredDocumentation", "src": "11495:573:10", "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2467, + "id": 2464, "implemented": true, "kind": "function", "modifiers": [], @@ -7535,17 +7535,17 @@ "nameLocation": "12082:20:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2464, + "id": 2461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2459, + "id": 2456, "mutability": "mutable", "name": "from", "nameLocation": "12111:4:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12103:12:10", "stateVariable": false, "storageLocation": "default", @@ -7554,7 +7554,7 @@ "typeString": "address" }, "typeName": { - "id": 2458, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", "src": "12103:7:10", @@ -7568,12 +7568,12 @@ }, { "constant": false, - "id": 2461, + "id": 2458, "mutability": "mutable", "name": "to", "nameLocation": "12125:2:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12117:10:10", "stateVariable": false, "storageLocation": "default", @@ -7582,7 +7582,7 @@ "typeString": "address" }, "typeName": { - "id": 2460, + "id": 2457, "name": "address", "nodeType": "ElementaryTypeName", "src": "12117:7:10", @@ -7596,12 +7596,12 @@ }, { "constant": false, - "id": 2463, + "id": 2460, "mutability": "mutable", "name": "amount", "nameLocation": "12137:6:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12129:14:10", "stateVariable": false, "storageLocation": "default", @@ -7610,7 +7610,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2462, + "id": 2459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12129:7:10", @@ -7625,12 +7625,12 @@ "src": "12102:42:10" }, "returnParameters": { - "id": 2465, + "id": 2462, "nodeType": "ParameterList", "parameters": [], "src": "12162:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12073:91:10", "stateMutability": "nonpayable", "virtual": true, @@ -7638,18 +7638,18 @@ }, { "body": { - "id": 2477, + "id": 2474, "nodeType": "Block", "src": "12840:2:10", "statements": [] }, "documentation": { - "id": 2468, + "id": 2465, "nodeType": "StructuredDocumentation", "src": "12170:577:10", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2478, + "id": 2475, "implemented": true, "kind": "function", "modifiers": [], @@ -7657,17 +7657,17 @@ "nameLocation": "12761:19:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2475, + "id": 2472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2470, + "id": 2467, "mutability": "mutable", "name": "from", "nameLocation": "12789:4:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12781:12:10", "stateVariable": false, "storageLocation": "default", @@ -7676,7 +7676,7 @@ "typeString": "address" }, "typeName": { - "id": 2469, + "id": 2466, "name": "address", "nodeType": "ElementaryTypeName", "src": "12781:7:10", @@ -7690,12 +7690,12 @@ }, { "constant": false, - "id": 2472, + "id": 2469, "mutability": "mutable", "name": "to", "nameLocation": "12803:2:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12795:10:10", "stateVariable": false, "storageLocation": "default", @@ -7704,7 +7704,7 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2468, "name": "address", "nodeType": "ElementaryTypeName", "src": "12795:7:10", @@ -7718,12 +7718,12 @@ }, { "constant": false, - "id": 2474, + "id": 2471, "mutability": "mutable", "name": "amount", "nameLocation": "12815:6:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12807:14:10", "stateVariable": false, "storageLocation": "default", @@ -7732,7 +7732,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2473, + "id": 2470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12807:7:10", @@ -7747,19 +7747,19 @@ "src": "12780:42:10" }, "returnParameters": { - "id": 2476, + "id": 2473, "nodeType": "ParameterList", "parameters": [], "src": "12840:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12752:90:10", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2480, + "scope": 2477, "src": "1532:11312:10", "usedErrors": [] } @@ -7770,24 +7770,24 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ], "ERC20": [ - 2479 + 2476 ], "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2480, + "id": 2477, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1894, + "id": 1891, "literals": [ "solidity", "^", @@ -7800,11 +7800,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1895, + "id": 1892, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2558, + "scope": 2477, + "sourceUnit": 2555, "src": "130:22:10", "symbolAliases": [], "unitAlias": "" @@ -7812,11 +7812,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", - "id": 1896, + "id": 1893, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2583, + "scope": 2477, + "sourceUnit": 2580, "src": "153:41:10", "symbolAliases": [], "unitAlias": "" @@ -7824,11 +7824,11 @@ { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", - "id": 1897, + "id": 1894, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2613, + "scope": 2477, + "sourceUnit": 2610, "src": "195:33:10", "symbolAliases": [], "unitAlias": "" @@ -7838,46 +7838,46 @@ "baseContracts": [ { "baseName": { - "id": 1899, + "id": 1896, "name": "Context", "nameLocations": [ "1550:7:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2612, + "referencedDeclaration": 2609, "src": "1550:7:10" }, - "id": 1900, + "id": 1897, "nodeType": "InheritanceSpecifier", "src": "1550:7:10" }, { "baseName": { - "id": 1901, + "id": 1898, "name": "IERC20", "nameLocations": [ "1559:6:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "1559:6:10" }, - "id": 1902, + "id": 1899, "nodeType": "InheritanceSpecifier", "src": "1559:6:10" }, { "baseName": { - "id": 1903, + "id": 1900, "name": "IERC20Metadata", "nameLocations": [ "1567:14:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2582, + "referencedDeclaration": 2579, "src": "1567:14:10" }, - "id": 1904, + "id": 1901, "nodeType": "InheritanceSpecifier", "src": "1567:14:10" } @@ -7886,18 +7886,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1898, + "id": 1895, "nodeType": "StructuredDocumentation", "src": "230:1301:10", "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." }, "fullyImplemented": true, - "id": 2479, + "id": 2476, "linearizedBaseContracts": [ - 2479, - 2582, - 2557, - 2612 + 2476, + 2579, + 2554, + 2609 ], "name": "ERC20", "nameLocation": "1541:5:10", @@ -7905,12 +7905,12 @@ "nodes": [ { "constant": false, - "id": 1908, + "id": 1905, "mutability": "mutable", "name": "_balances", "nameLocation": "1624:9:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1588:45:10", "stateVariable": true, "storageLocation": "default", @@ -7919,11 +7919,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 1907, + "id": 1904, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1905, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "1596:7:10", @@ -7941,7 +7941,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1906, + "id": 1903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:10", @@ -7955,12 +7955,12 @@ }, { "constant": false, - "id": 1914, + "id": 1911, "mutability": "mutable", "name": "_allowances", "nameLocation": "1696:11:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1640:67:10", "stateVariable": true, "storageLocation": "default", @@ -7969,11 +7969,11 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 1913, + "id": 1910, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1909, + "id": 1906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1648:7:10", @@ -7991,11 +7991,11 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1912, + "id": 1909, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1910, + "id": 1907, "name": "address", "nodeType": "ElementaryTypeName", "src": "1667:7:10", @@ -8013,7 +8013,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1911, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1678:7:10", @@ -8028,12 +8028,12 @@ }, { "constant": false, - "id": 1916, + "id": 1913, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1730:12:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1714:28:10", "stateVariable": true, "storageLocation": "default", @@ -8042,7 +8042,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1915, + "id": 1912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1714:7:10", @@ -8055,12 +8055,12 @@ }, { "constant": false, - "id": 1918, + "id": 1915, "mutability": "mutable", "name": "_name", "nameLocation": "1764:5:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1749:20:10", "stateVariable": true, "storageLocation": "default", @@ -8069,7 +8069,7 @@ "typeString": "string" }, "typeName": { - "id": 1917, + "id": 1914, "name": "string", "nodeType": "ElementaryTypeName", "src": "1749:6:10", @@ -8082,12 +8082,12 @@ }, { "constant": false, - "id": 1920, + "id": 1917, "mutability": "mutable", "name": "_symbol", "nameLocation": "1790:7:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1775:22:10", "stateVariable": true, "storageLocation": "default", @@ -8096,7 +8096,7 @@ "typeString": "string" }, "typeName": { - "id": 1919, + "id": 1916, "name": "string", "nodeType": "ElementaryTypeName", "src": "1775:6:10", @@ -8109,23 +8109,23 @@ }, { "body": { - "id": 1936, + "id": 1933, "nodeType": "Block", "src": "2036:57:10", "statements": [ { "expression": { - "id": 1930, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1928, + "id": 1925, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2046:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -8135,11 +8135,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1929, + "id": 1926, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1920, "src": "2054:5:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8152,23 +8152,23 @@ "typeString": "string storage ref" } }, - "id": 1931, + "id": 1928, "nodeType": "ExpressionStatement", "src": "2046:13:10" }, { "expression": { - "id": 1934, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1932, + "id": 1929, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2069:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -8178,11 +8178,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1933, + "id": 1930, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1922, "src": "2079:7:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8195,19 +8195,19 @@ "typeString": "string storage ref" } }, - "id": 1935, + "id": 1932, "nodeType": "ExpressionStatement", "src": "2069:17:10" } ] }, "documentation": { - "id": 1921, + "id": 1918, "nodeType": "StructuredDocumentation", "src": "1804:171:10", "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." }, - "id": 1937, + "id": 1934, "implemented": true, "kind": "constructor", "modifiers": [], @@ -8215,17 +8215,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1926, + "id": 1923, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1923, + "id": 1920, "mutability": "mutable", "name": "name_", "nameLocation": "2006:5:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "1992:19:10", "stateVariable": false, "storageLocation": "memory", @@ -8234,7 +8234,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1919, "name": "string", "nodeType": "ElementaryTypeName", "src": "1992:6:10", @@ -8247,12 +8247,12 @@ }, { "constant": false, - "id": 1925, + "id": 1922, "mutability": "mutable", "name": "symbol_", "nameLocation": "2027:7:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "2013:21:10", "stateVariable": false, "storageLocation": "memory", @@ -8261,7 +8261,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1921, "name": "string", "nodeType": "ElementaryTypeName", "src": "2013:6:10", @@ -8276,12 +8276,12 @@ "src": "1991:44:10" }, "returnParameters": { - "id": 1927, + "id": 1924, "nodeType": "ParameterList", "parameters": [], "src": "2036:0:10" }, - "scope": 2479, + "scope": 2476, "src": "1980:113:10", "stateMutability": "nonpayable", "virtual": false, @@ -8289,41 +8289,41 @@ }, { "baseFunctions": [ - 2569 + 2566 ], "body": { - "id": 1946, + "id": 1943, "nodeType": "Block", "src": "2227:29:10", "statements": [ { "expression": { - "id": 1944, + "id": 1941, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2244:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1943, - "id": 1945, + "functionReturnParameters": 1940, + "id": 1942, "nodeType": "Return", "src": "2237:12:10" } ] }, "documentation": { - "id": 1938, + "id": 1935, "nodeType": "StructuredDocumentation", "src": "2099:54:10", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 1947, + "id": 1944, "implemented": true, "kind": "function", "modifiers": [], @@ -8331,29 +8331,29 @@ "nameLocation": "2167:4:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1940, + "id": 1937, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2194:8:10" }, "parameters": { - "id": 1939, + "id": 1936, "nodeType": "ParameterList", "parameters": [], "src": "2171:2:10" }, "returnParameters": { - "id": 1943, + "id": 1940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1942, + "id": 1939, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1947, + "scope": 1944, "src": "2212:13:10", "stateVariable": false, "storageLocation": "memory", @@ -8362,7 +8362,7 @@ "typeString": "string" }, "typeName": { - "id": 1941, + "id": 1938, "name": "string", "nodeType": "ElementaryTypeName", "src": "2212:6:10", @@ -8376,7 +8376,7 @@ ], "src": "2211:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2158:98:10", "stateMutability": "view", "virtual": true, @@ -8384,41 +8384,41 @@ }, { "baseFunctions": [ - 2575 + 2572 ], "body": { - "id": 1956, + "id": 1953, "nodeType": "Block", "src": "2440:31:10", "statements": [ { "expression": { - "id": 1954, + "id": 1951, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2457:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1953, - "id": 1955, + "functionReturnParameters": 1950, + "id": 1952, "nodeType": "Return", "src": "2450:14:10" } ] }, "documentation": { - "id": 1948, + "id": 1945, "nodeType": "StructuredDocumentation", "src": "2262:102:10", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." }, "functionSelector": "95d89b41", - "id": 1957, + "id": 1954, "implemented": true, "kind": "function", "modifiers": [], @@ -8426,29 +8426,29 @@ "nameLocation": "2378:6:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1950, + "id": 1947, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2407:8:10" }, "parameters": { - "id": 1949, + "id": 1946, "nodeType": "ParameterList", "parameters": [], "src": "2384:2:10" }, "returnParameters": { - "id": 1953, + "id": 1950, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1952, + "id": 1949, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1957, + "scope": 1954, "src": "2425:13:10", "stateVariable": false, "storageLocation": "memory", @@ -8457,7 +8457,7 @@ "typeString": "string" }, "typeName": { - "id": 1951, + "id": 1948, "name": "string", "nodeType": "ElementaryTypeName", "src": "2425:6:10", @@ -8471,7 +8471,7 @@ ], "src": "2424:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2369:102:10", "stateMutability": "view", "virtual": true, @@ -8479,17 +8479,17 @@ }, { "baseFunctions": [ - 2581 + 2578 ], "body": { - "id": 1966, + "id": 1963, "nodeType": "Block", "src": "3169:26:10", "statements": [ { "expression": { "hexValue": "3138", - "id": 1964, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, @@ -8503,21 +8503,21 @@ }, "value": "18" }, - "functionReturnParameters": 1963, - "id": 1965, + "functionReturnParameters": 1960, + "id": 1962, "nodeType": "Return", "src": "3179:9:10" } ] }, "documentation": { - "id": 1958, + "id": 1955, "nodeType": "StructuredDocumentation", "src": "2477:622:10", "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." }, "functionSelector": "313ce567", - "id": 1967, + "id": 1964, "implemented": true, "kind": "function", "modifiers": [], @@ -8525,29 +8525,29 @@ "nameLocation": "3113:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1960, + "id": 1957, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3144:8:10" }, "parameters": { - "id": 1959, + "id": 1956, "nodeType": "ParameterList", "parameters": [], "src": "3121:2:10" }, "returnParameters": { - "id": 1963, + "id": 1960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1962, + "id": 1959, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1967, + "scope": 1964, "src": "3162:5:10", "stateVariable": false, "storageLocation": "default", @@ -8556,7 +8556,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1961, + "id": 1958, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3162:5:10", @@ -8570,7 +8570,7 @@ ], "src": "3161:7:10" }, - "scope": 2479, + "scope": 2476, "src": "3104:91:10", "stateMutability": "view", "virtual": true, @@ -8578,41 +8578,41 @@ }, { "baseFunctions": [ - 2506 + 2503 ], "body": { - "id": 1976, + "id": 1973, "nodeType": "Block", "src": "3325:36:10", "statements": [ { "expression": { - "id": 1974, + "id": 1971, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "3342:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1973, - "id": 1975, + "functionReturnParameters": 1970, + "id": 1972, "nodeType": "Return", "src": "3335:19:10" } ] }, "documentation": { - "id": 1968, + "id": 1965, "nodeType": "StructuredDocumentation", "src": "3201:49:10", "text": " @dev See {IERC20-totalSupply}." }, "functionSelector": "18160ddd", - "id": 1977, + "id": 1974, "implemented": true, "kind": "function", "modifiers": [], @@ -8620,29 +8620,29 @@ "nameLocation": "3264:11:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1970, + "id": 1967, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3298:8:10" }, "parameters": { - "id": 1969, + "id": 1966, "nodeType": "ParameterList", "parameters": [], "src": "3275:2:10" }, "returnParameters": { - "id": 1973, + "id": 1970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 1969, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1977, + "scope": 1974, "src": "3316:7:10", "stateVariable": false, "storageLocation": "default", @@ -8651,7 +8651,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1971, + "id": 1968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3316:7:10", @@ -8665,7 +8665,7 @@ ], "src": "3315:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3255:106:10", "stateMutability": "view", "virtual": true, @@ -8673,34 +8673,34 @@ }, { "baseFunctions": [ - 2514 + 2511 ], "body": { - "id": 1990, + "id": 1987, "nodeType": "Block", "src": "3502:42:10", "statements": [ { "expression": { "baseExpression": { - "id": 1986, + "id": 1983, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "3519:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1988, + "id": 1985, "indexExpression": { - "id": 1987, + "id": 1984, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, + "referencedDeclaration": 1977, "src": "3529:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8718,21 +8718,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1985, - "id": 1989, + "functionReturnParameters": 1982, + "id": 1986, "nodeType": "Return", "src": "3512:25:10" } ] }, "documentation": { - "id": 1978, + "id": 1975, "nodeType": "StructuredDocumentation", "src": "3367:47:10", "text": " @dev See {IERC20-balanceOf}." }, "functionSelector": "70a08231", - "id": 1991, + "id": 1988, "implemented": true, "kind": "function", "modifiers": [], @@ -8740,23 +8740,23 @@ "nameLocation": "3428:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1982, + "id": 1979, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3475:8:10" }, "parameters": { - "id": 1981, + "id": 1978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1980, + "id": 1977, "mutability": "mutable", "name": "account", "nameLocation": "3446:7:10", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3438:15:10", "stateVariable": false, "storageLocation": "default", @@ -8765,7 +8765,7 @@ "typeString": "address" }, "typeName": { - "id": 1979, + "id": 1976, "name": "address", "nodeType": "ElementaryTypeName", "src": "3438:7:10", @@ -8781,17 +8781,17 @@ "src": "3437:17:10" }, "returnParameters": { - "id": 1985, + "id": 1982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 1981, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3493:7:10", "stateVariable": false, "storageLocation": "default", @@ -8800,7 +8800,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1983, + "id": 1980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3493:7:10", @@ -8814,7 +8814,7 @@ ], "src": "3492:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3419:125:10", "stateMutability": "view", "virtual": true, @@ -8822,26 +8822,26 @@ }, { "baseFunctions": [ - 2524 + 2521 ], "body": { - "id": 2015, + "id": 2012, "nodeType": "Block", "src": "3825:104:10", "statements": [ { "assignments": [ - 2003 + 2000 ], "declarations": [ { "constant": false, - "id": 2003, + "id": 2000, "mutability": "mutable", "name": "owner", "nameLocation": "3843:5:10", "nodeType": "VariableDeclaration", - "scope": 2015, + "scope": 2012, "src": "3835:13:10", "stateVariable": false, "storageLocation": "default", @@ -8850,7 +8850,7 @@ "typeString": "address" }, "typeName": { - "id": 2002, + "id": 1999, "name": "address", "nodeType": "ElementaryTypeName", "src": "3835:7:10", @@ -8863,23 +8863,23 @@ "visibility": "internal" } ], - "id": 2006, + "id": 2003, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2004, + "id": 2001, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "3851:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2005, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, @@ -8902,11 +8902,11 @@ "expression": { "arguments": [ { - "id": 2008, + "id": 2005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2003, + "referencedDeclaration": 2000, "src": "3883:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8914,11 +8914,11 @@ } }, { - "id": 2009, + "id": 2006, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1994, + "referencedDeclaration": 1991, "src": "3890:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8926,11 +8926,11 @@ } }, { - "id": 2010, + "id": 2007, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1996, + "referencedDeclaration": 1993, "src": "3894:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8953,18 +8953,18 @@ "typeString": "uint256" } ], - "id": 2007, + "id": 2004, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "3873:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2011, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -8980,14 +8980,14 @@ "typeString": "tuple()" } }, - "id": 2012, + "id": 2009, "nodeType": "ExpressionStatement", "src": "3873:28:10" }, { "expression": { "hexValue": "74727565", - "id": 2013, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": true, @@ -9001,21 +9001,21 @@ }, "value": "true" }, - "functionReturnParameters": 2001, - "id": 2014, + "functionReturnParameters": 1998, + "id": 2011, "nodeType": "Return", "src": "3911:11:10" } ] }, "documentation": { - "id": 1992, + "id": 1989, "nodeType": "StructuredDocumentation", "src": "3550:185:10", "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." }, "functionSelector": "a9059cbb", - "id": 2016, + "id": 2013, "implemented": true, "kind": "function", "modifiers": [], @@ -9023,23 +9023,23 @@ "nameLocation": "3749:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1998, + "id": 1995, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3801:8:10" }, "parameters": { - "id": 1997, + "id": 1994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1994, + "id": 1991, "mutability": "mutable", "name": "to", "nameLocation": "3766:2:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3758:10:10", "stateVariable": false, "storageLocation": "default", @@ -9048,7 +9048,7 @@ "typeString": "address" }, "typeName": { - "id": 1993, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", "src": "3758:7:10", @@ -9062,12 +9062,12 @@ }, { "constant": false, - "id": 1996, + "id": 1993, "mutability": "mutable", "name": "amount", "nameLocation": "3778:6:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3770:14:10", "stateVariable": false, "storageLocation": "default", @@ -9076,7 +9076,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1995, + "id": 1992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3770:7:10", @@ -9091,17 +9091,17 @@ "src": "3757:28:10" }, "returnParameters": { - "id": 2001, + "id": 1998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2000, + "id": 1997, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3819:4:10", "stateVariable": false, "storageLocation": "default", @@ -9110,7 +9110,7 @@ "typeString": "bool" }, "typeName": { - "id": 1999, + "id": 1996, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3819:4:10", @@ -9124,7 +9124,7 @@ ], "src": "3818:6:10" }, - "scope": 2479, + "scope": 2476, "src": "3740:189:10", "stateMutability": "nonpayable", "virtual": true, @@ -9132,10 +9132,10 @@ }, { "baseFunctions": [ - 2534 + 2531 ], "body": { - "id": 2033, + "id": 2030, "nodeType": "Block", "src": "4085:51:10", "statements": [ @@ -9143,24 +9143,24 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 2027, + "id": 2024, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "4102:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2029, + "id": 2026, "indexExpression": { - "id": 2028, + "id": 2025, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 2016, "src": "4114:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9178,13 +9178,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2031, + "id": 2028, "indexExpression": { - "id": 2030, + "id": 2027, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, + "referencedDeclaration": 2018, "src": "4121:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9202,21 +9202,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2026, - "id": 2032, + "functionReturnParameters": 2023, + "id": 2029, "nodeType": "Return", "src": "4095:34:10" } ] }, "documentation": { - "id": 2017, + "id": 2014, "nodeType": "StructuredDocumentation", "src": "3935:47:10", "text": " @dev See {IERC20-allowance}." }, "functionSelector": "dd62ed3e", - "id": 2034, + "id": 2031, "implemented": true, "kind": "function", "modifiers": [], @@ -9224,23 +9224,23 @@ "nameLocation": "3996:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2023, + "id": 2020, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4058:8:10" }, "parameters": { - "id": 2022, + "id": 2019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2019, + "id": 2016, "mutability": "mutable", "name": "owner", "nameLocation": "4014:5:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4006:13:10", "stateVariable": false, "storageLocation": "default", @@ -9249,7 +9249,7 @@ "typeString": "address" }, "typeName": { - "id": 2018, + "id": 2015, "name": "address", "nodeType": "ElementaryTypeName", "src": "4006:7:10", @@ -9263,12 +9263,12 @@ }, { "constant": false, - "id": 2021, + "id": 2018, "mutability": "mutable", "name": "spender", "nameLocation": "4029:7:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4021:15:10", "stateVariable": false, "storageLocation": "default", @@ -9277,7 +9277,7 @@ "typeString": "address" }, "typeName": { - "id": 2020, + "id": 2017, "name": "address", "nodeType": "ElementaryTypeName", "src": "4021:7:10", @@ -9293,17 +9293,17 @@ "src": "4005:32:10" }, "returnParameters": { - "id": 2026, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2025, + "id": 2022, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4076:7:10", "stateVariable": false, "storageLocation": "default", @@ -9312,7 +9312,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2024, + "id": 2021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4076:7:10", @@ -9326,7 +9326,7 @@ ], "src": "4075:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3987:149:10", "stateMutability": "view", "virtual": true, @@ -9334,26 +9334,26 @@ }, { "baseFunctions": [ - 2544 + 2541 ], "body": { - "id": 2058, + "id": 2055, "nodeType": "Block", "src": "4533:108:10", "statements": [ { "assignments": [ - 2046 + 2043 ], "declarations": [ { "constant": false, - "id": 2046, + "id": 2043, "mutability": "mutable", "name": "owner", "nameLocation": "4551:5:10", "nodeType": "VariableDeclaration", - "scope": 2058, + "scope": 2055, "src": "4543:13:10", "stateVariable": false, "storageLocation": "default", @@ -9362,7 +9362,7 @@ "typeString": "address" }, "typeName": { - "id": 2045, + "id": 2042, "name": "address", "nodeType": "ElementaryTypeName", "src": "4543:7:10", @@ -9375,23 +9375,23 @@ "visibility": "internal" } ], - "id": 2049, + "id": 2046, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2047, + "id": 2044, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "4559:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2048, + "id": 2045, "isConstant": false, "isLValue": false, "isPure": false, @@ -9414,11 +9414,11 @@ "expression": { "arguments": [ { - "id": 2051, + "id": 2048, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, + "referencedDeclaration": 2043, "src": "4590:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9426,11 +9426,11 @@ } }, { - "id": 2052, + "id": 2049, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, + "referencedDeclaration": 2034, "src": "4597:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9438,11 +9438,11 @@ } }, { - "id": 2053, + "id": 2050, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2039, + "referencedDeclaration": 2036, "src": "4606:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9465,18 +9465,18 @@ "typeString": "uint256" } ], - "id": 2050, + "id": 2047, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "4581:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2054, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -9492,14 +9492,14 @@ "typeString": "tuple()" } }, - "id": 2055, + "id": 2052, "nodeType": "ExpressionStatement", "src": "4581:32:10" }, { "expression": { "hexValue": "74727565", - "id": 2056, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, @@ -9513,21 +9513,21 @@ }, "value": "true" }, - "functionReturnParameters": 2044, - "id": 2057, + "functionReturnParameters": 2041, + "id": 2054, "nodeType": "Return", "src": "4623:11:10" } ] }, "documentation": { - "id": 2035, + "id": 2032, "nodeType": "StructuredDocumentation", "src": "4142:297:10", "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "095ea7b3", - "id": 2059, + "id": 2056, "implemented": true, "kind": "function", "modifiers": [], @@ -9535,23 +9535,23 @@ "nameLocation": "4453:7:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2041, + "id": 2038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4509:8:10" }, "parameters": { - "id": 2040, + "id": 2037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2037, + "id": 2034, "mutability": "mutable", "name": "spender", "nameLocation": "4469:7:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4461:15:10", "stateVariable": false, "storageLocation": "default", @@ -9560,7 +9560,7 @@ "typeString": "address" }, "typeName": { - "id": 2036, + "id": 2033, "name": "address", "nodeType": "ElementaryTypeName", "src": "4461:7:10", @@ -9574,12 +9574,12 @@ }, { "constant": false, - "id": 2039, + "id": 2036, "mutability": "mutable", "name": "amount", "nameLocation": "4486:6:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4478:14:10", "stateVariable": false, "storageLocation": "default", @@ -9588,7 +9588,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2038, + "id": 2035, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4478:7:10", @@ -9603,17 +9603,17 @@ "src": "4460:33:10" }, "returnParameters": { - "id": 2044, + "id": 2041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2043, + "id": 2040, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4527:4:10", "stateVariable": false, "storageLocation": "default", @@ -9622,7 +9622,7 @@ "typeString": "bool" }, "typeName": { - "id": 2042, + "id": 2039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4527:4:10", @@ -9636,7 +9636,7 @@ ], "src": "4526:6:10" }, - "scope": 2479, + "scope": 2476, "src": "4444:197:10", "stateMutability": "nonpayable", "virtual": true, @@ -9644,26 +9644,26 @@ }, { "baseFunctions": [ - 2556 + 2553 ], "body": { - "id": 2091, + "id": 2088, "nodeType": "Block", "src": "5306:153:10", "statements": [ { "assignments": [ - 2073 + 2070 ], "declarations": [ { "constant": false, - "id": 2073, + "id": 2070, "mutability": "mutable", "name": "spender", "nameLocation": "5324:7:10", "nodeType": "VariableDeclaration", - "scope": 2091, + "scope": 2088, "src": "5316:15:10", "stateVariable": false, "storageLocation": "default", @@ -9672,7 +9672,7 @@ "typeString": "address" }, "typeName": { - "id": 2072, + "id": 2069, "name": "address", "nodeType": "ElementaryTypeName", "src": "5316:7:10", @@ -9685,23 +9685,23 @@ "visibility": "internal" } ], - "id": 2076, + "id": 2073, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2074, + "id": 2071, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5334:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2075, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": false, @@ -9724,11 +9724,11 @@ "expression": { "arguments": [ { - "id": 2078, + "id": 2075, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5372:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9736,11 +9736,11 @@ } }, { - "id": 2079, + "id": 2076, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, + "referencedDeclaration": 2070, "src": "5378:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9748,11 +9748,11 @@ } }, { - "id": 2080, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5387:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9775,18 +9775,18 @@ "typeString": "uint256" } ], - "id": 2077, + "id": 2074, "name": "_spendAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2456, + "referencedDeclaration": 2453, "src": "5356:15:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2081, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -9802,7 +9802,7 @@ "typeString": "tuple()" } }, - "id": 2082, + "id": 2079, "nodeType": "ExpressionStatement", "src": "5356:38:10" }, @@ -9810,11 +9810,11 @@ "expression": { "arguments": [ { - "id": 2084, + "id": 2081, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5414:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9822,11 +9822,11 @@ } }, { - "id": 2085, + "id": 2082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, + "referencedDeclaration": 2061, "src": "5420:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9834,11 +9834,11 @@ } }, { - "id": 2086, + "id": 2083, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5424:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9861,18 +9861,18 @@ "typeString": "uint256" } ], - "id": 2083, + "id": 2080, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "5404:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2087, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, @@ -9888,14 +9888,14 @@ "typeString": "tuple()" } }, - "id": 2088, + "id": 2085, "nodeType": "ExpressionStatement", "src": "5404:27:10" }, { "expression": { "hexValue": "74727565", - "id": 2089, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": true, @@ -9909,21 +9909,21 @@ }, "value": "true" }, - "functionReturnParameters": 2071, - "id": 2090, + "functionReturnParameters": 2068, + "id": 2087, "nodeType": "Return", "src": "5441:11:10" } ] }, "documentation": { - "id": 2060, + "id": 2057, "nodeType": "StructuredDocumentation", "src": "4647:551:10", "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." }, "functionSelector": "23b872dd", - "id": 2092, + "id": 2089, "implemented": true, "kind": "function", "modifiers": [], @@ -9931,23 +9931,23 @@ "nameLocation": "5212:12:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2068, + "id": 2065, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5282:8:10" }, "parameters": { - "id": 2067, + "id": 2064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2062, + "id": 2059, "mutability": "mutable", "name": "from", "nameLocation": "5233:4:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5225:12:10", "stateVariable": false, "storageLocation": "default", @@ -9956,7 +9956,7 @@ "typeString": "address" }, "typeName": { - "id": 2061, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5225:7:10", @@ -9970,12 +9970,12 @@ }, { "constant": false, - "id": 2064, + "id": 2061, "mutability": "mutable", "name": "to", "nameLocation": "5247:2:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5239:10:10", "stateVariable": false, "storageLocation": "default", @@ -9984,7 +9984,7 @@ "typeString": "address" }, "typeName": { - "id": 2063, + "id": 2060, "name": "address", "nodeType": "ElementaryTypeName", "src": "5239:7:10", @@ -9998,12 +9998,12 @@ }, { "constant": false, - "id": 2066, + "id": 2063, "mutability": "mutable", "name": "amount", "nameLocation": "5259:6:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5251:14:10", "stateVariable": false, "storageLocation": "default", @@ -10012,7 +10012,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2065, + "id": 2062, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:10", @@ -10027,17 +10027,17 @@ "src": "5224:42:10" }, "returnParameters": { - "id": 2071, + "id": 2068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 2067, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5300:4:10", "stateVariable": false, "storageLocation": "default", @@ -10046,7 +10046,7 @@ "typeString": "bool" }, "typeName": { - "id": 2069, + "id": 2066, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5300:4:10", @@ -10060,7 +10060,7 @@ ], "src": "5299:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5203:256:10", "stateMutability": "nonpayable", "virtual": true, @@ -10068,23 +10068,23 @@ }, { "body": { - "id": 2120, + "id": 2117, "nodeType": "Block", "src": "5948:140:10", "statements": [ { "assignments": [ - 2103 + 2100 ], "declarations": [ { "constant": false, - "id": 2103, + "id": 2100, "mutability": "mutable", "name": "owner", "nameLocation": "5966:5:10", "nodeType": "VariableDeclaration", - "scope": 2120, + "scope": 2117, "src": "5958:13:10", "stateVariable": false, "storageLocation": "default", @@ -10093,7 +10093,7 @@ "typeString": "address" }, "typeName": { - "id": 2102, + "id": 2099, "name": "address", "nodeType": "ElementaryTypeName", "src": "5958:7:10", @@ -10106,23 +10106,23 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2103, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2104, + "id": 2101, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5974:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2105, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -10145,11 +10145,11 @@ "expression": { "arguments": [ { - "id": 2108, + "id": 2105, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6005:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10157,11 +10157,11 @@ } }, { - "id": 2109, + "id": 2106, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6012:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10173,7 +10173,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2115, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -10181,11 +10181,11 @@ "leftExpression": { "arguments": [ { - "id": 2111, + "id": 2108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6031:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10193,11 +10193,11 @@ } }, { - "id": 2112, + "id": 2109, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6038:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10216,18 +10216,18 @@ "typeString": "address" } ], - "id": 2110, + "id": 2107, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6021:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2113, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -10246,11 +10246,11 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 2114, + "id": 2111, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2097, + "referencedDeclaration": 2094, "src": "6049:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10279,18 +10279,18 @@ "typeString": "uint256" } ], - "id": 2107, + "id": 2104, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "5996:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2116, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, @@ -10306,14 +10306,14 @@ "typeString": "tuple()" } }, - "id": 2117, + "id": 2114, "nodeType": "ExpressionStatement", "src": "5996:64:10" }, { "expression": { "hexValue": "74727565", - "id": 2118, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": true, @@ -10327,21 +10327,21 @@ }, "value": "true" }, - "functionReturnParameters": 2101, - "id": 2119, + "functionReturnParameters": 2098, + "id": 2116, "nodeType": "Return", "src": "6070:11:10" } ] }, "documentation": { - "id": 2093, + "id": 2090, "nodeType": "StructuredDocumentation", "src": "5465:384:10", "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "39509351", - "id": 2121, + "id": 2118, "implemented": true, "kind": "function", "modifiers": [], @@ -10349,17 +10349,17 @@ "nameLocation": "5863:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2098, + "id": 2095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2095, + "id": 2092, "mutability": "mutable", "name": "spender", "nameLocation": "5889:7:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5881:15:10", "stateVariable": false, "storageLocation": "default", @@ -10368,7 +10368,7 @@ "typeString": "address" }, "typeName": { - "id": 2094, + "id": 2091, "name": "address", "nodeType": "ElementaryTypeName", "src": "5881:7:10", @@ -10382,12 +10382,12 @@ }, { "constant": false, - "id": 2097, + "id": 2094, "mutability": "mutable", "name": "addedValue", "nameLocation": "5906:10:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5898:18:10", "stateVariable": false, "storageLocation": "default", @@ -10396,7 +10396,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2096, + "id": 2093, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5898:7:10", @@ -10411,17 +10411,17 @@ "src": "5880:37:10" }, "returnParameters": { - "id": 2101, + "id": 2098, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2100, + "id": 2097, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5942:4:10", "stateVariable": false, "storageLocation": "default", @@ -10430,7 +10430,7 @@ "typeString": "bool" }, "typeName": { - "id": 2099, + "id": 2096, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5942:4:10", @@ -10444,7 +10444,7 @@ ], "src": "5941:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5854:234:10", "stateMutability": "nonpayable", "virtual": true, @@ -10452,23 +10452,23 @@ }, { "body": { - "id": 2161, + "id": 2158, "nodeType": "Block", "src": "6674:328:10", "statements": [ { "assignments": [ - 2132 + 2129 ], "declarations": [ { "constant": false, - "id": 2132, + "id": 2129, "mutability": "mutable", "name": "owner", "nameLocation": "6692:5:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6684:13:10", "stateVariable": false, "storageLocation": "default", @@ -10477,7 +10477,7 @@ "typeString": "address" }, "typeName": { - "id": 2131, + "id": 2128, "name": "address", "nodeType": "ElementaryTypeName", "src": "6684:7:10", @@ -10490,23 +10490,23 @@ "visibility": "internal" } ], - "id": 2135, + "id": 2132, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2133, + "id": 2130, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "6700:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2134, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -10527,17 +10527,17 @@ }, { "assignments": [ - 2137 + 2134 ], "declarations": [ { "constant": false, - "id": 2137, + "id": 2134, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "6730:16:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6722:24:10", "stateVariable": false, "storageLocation": "default", @@ -10546,7 +10546,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2133, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6722:7:10", @@ -10558,15 +10558,15 @@ "visibility": "internal" } ], - "id": 2142, + "id": 2139, "initialValue": { "arguments": [ { - "id": 2139, + "id": 2136, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6759:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10574,11 +10574,11 @@ } }, { - "id": 2140, + "id": 2137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6766:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10597,18 +10597,18 @@ "typeString": "address" } ], - "id": 2138, + "id": 2135, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6749:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2141, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": false, @@ -10635,17 +10635,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2146, + "id": 2143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2144, + "id": 2141, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6792:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10655,11 +10655,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2145, + "id": 2142, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6812:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10674,7 +10674,7 @@ }, { "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 2147, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, @@ -10700,7 +10700,7 @@ "typeString": "literal_string \"ERC20: decreased allowance below zero\"" } ], - "id": 2143, + "id": 2140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10714,7 +10714,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2148, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -10730,12 +10730,12 @@ "typeString": "tuple()" } }, - "id": 2149, + "id": 2146, "nodeType": "ExpressionStatement", "src": "6784:85:10" }, { - "id": 2158, + "id": 2155, "nodeType": "UncheckedBlock", "src": "6879:95:10", "statements": [ @@ -10743,11 +10743,11 @@ "expression": { "arguments": [ { - "id": 2151, + "id": 2148, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6912:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10755,11 +10755,11 @@ } }, { - "id": 2152, + "id": 2149, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6919:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10771,17 +10771,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2155, + "id": 2152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2150, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6928:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10791,11 +10791,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2154, + "id": 2151, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6947:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10824,18 +10824,18 @@ "typeString": "uint256" } ], - "id": 2150, + "id": 2147, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "6903:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2156, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -10851,7 +10851,7 @@ "typeString": "tuple()" } }, - "id": 2157, + "id": 2154, "nodeType": "ExpressionStatement", "src": "6903:60:10" } @@ -10860,7 +10860,7 @@ { "expression": { "hexValue": "74727565", - "id": 2159, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": true, @@ -10874,21 +10874,21 @@ }, "value": "true" }, - "functionReturnParameters": 2130, - "id": 2160, + "functionReturnParameters": 2127, + "id": 2157, "nodeType": "Return", "src": "6984:11:10" } ] }, "documentation": { - "id": 2122, + "id": 2119, "nodeType": "StructuredDocumentation", "src": "6094:476:10", "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." }, "functionSelector": "a457c2d7", - "id": 2162, + "id": 2159, "implemented": true, "kind": "function", "modifiers": [], @@ -10896,17 +10896,17 @@ "nameLocation": "6584:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2127, + "id": 2124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2124, + "id": 2121, "mutability": "mutable", "name": "spender", "nameLocation": "6610:7:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6602:15:10", "stateVariable": false, "storageLocation": "default", @@ -10915,7 +10915,7 @@ "typeString": "address" }, "typeName": { - "id": 2123, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", "src": "6602:7:10", @@ -10929,12 +10929,12 @@ }, { "constant": false, - "id": 2126, + "id": 2123, "mutability": "mutable", "name": "subtractedValue", "nameLocation": "6627:15:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6619:23:10", "stateVariable": false, "storageLocation": "default", @@ -10943,7 +10943,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2122, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6619:7:10", @@ -10958,17 +10958,17 @@ "src": "6601:42:10" }, "returnParameters": { - "id": 2130, + "id": 2127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2129, + "id": 2126, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6668:4:10", "stateVariable": false, "storageLocation": "default", @@ -10977,7 +10977,7 @@ "typeString": "bool" }, "typeName": { - "id": 2128, + "id": 2125, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6668:4:10", @@ -10991,7 +10991,7 @@ ], "src": "6667:6:10" }, - "scope": 2479, + "scope": 2476, "src": "6575:427:10", "stateMutability": "nonpayable", "virtual": true, @@ -10999,7 +10999,7 @@ }, { "body": { - "id": 2238, + "id": 2235, "nodeType": "Block", "src": "7534:710:10", "statements": [ @@ -11011,17 +11011,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2178, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2173, + "id": 2170, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7552:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11034,7 +11034,7 @@ "arguments": [ { "hexValue": "30", - "id": 2176, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -11056,7 +11056,7 @@ "typeString": "int_const 0" } ], - "id": 2175, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": true, @@ -11068,14 +11068,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2174, + "id": 2171, "name": "address", "nodeType": "ElementaryTypeName", "src": "7560:7:10", "typeDescriptions": {} } }, - "id": 2177, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": true, @@ -11099,7 +11099,7 @@ }, { "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 2179, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": true, @@ -11125,7 +11125,7 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 2172, + "id": 2169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11139,7 +11139,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2177, "isConstant": false, "isLValue": false, "isPure": false, @@ -11155,7 +11155,7 @@ "typeString": "tuple()" } }, - "id": 2181, + "id": 2178, "nodeType": "ExpressionStatement", "src": "7544:68:10" }, @@ -11167,17 +11167,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2188, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7630:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11190,7 +11190,7 @@ "arguments": [ { "hexValue": "30", - "id": 2186, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, @@ -11212,7 +11212,7 @@ "typeString": "int_const 0" } ], - "id": 2185, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": true, @@ -11224,14 +11224,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2184, + "id": 2181, "name": "address", "nodeType": "ElementaryTypeName", "src": "7636:7:10", "typeDescriptions": {} } }, - "id": 2187, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, @@ -11255,7 +11255,7 @@ }, { "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2189, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": true, @@ -11281,7 +11281,7 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 2182, + "id": 2179, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11295,7 +11295,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2190, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -11311,7 +11311,7 @@ "typeString": "tuple()" } }, - "id": 2191, + "id": 2188, "nodeType": "ExpressionStatement", "src": "7622:64:10" }, @@ -11319,11 +11319,11 @@ "expression": { "arguments": [ { - "id": 2193, + "id": 2190, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7718:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11331,11 +11331,11 @@ } }, { - "id": 2194, + "id": 2191, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7724:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11343,11 +11343,11 @@ } }, { - "id": 2195, + "id": 2192, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7728:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11370,18 +11370,18 @@ "typeString": "uint256" } ], - "id": 2192, + "id": 2189, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "7697:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2196, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, @@ -11397,23 +11397,23 @@ "typeString": "tuple()" } }, - "id": 2197, + "id": 2194, "nodeType": "ExpressionStatement", "src": "7697:38:10" }, { "assignments": [ - 2199 + 2196 ], "declarations": [ { "constant": false, - "id": 2199, + "id": 2196, "mutability": "mutable", "name": "fromBalance", "nameLocation": "7754:11:10", "nodeType": "VariableDeclaration", - "scope": 2238, + "scope": 2235, "src": "7746:19:10", "stateVariable": false, "storageLocation": "default", @@ -11422,7 +11422,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2198, + "id": 2195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:10", @@ -11434,27 +11434,27 @@ "visibility": "internal" } ], - "id": 2203, + "id": 2200, "initialValue": { "baseExpression": { - "id": 2200, + "id": 2197, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7768:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2202, + "id": 2199, "indexExpression": { - "id": 2201, + "id": 2198, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7778:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11483,17 +11483,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2207, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2205, + "id": 2202, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7801:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11503,11 +11503,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2206, + "id": 2203, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7816:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11522,7 +11522,7 @@ }, { "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 2208, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -11548,7 +11548,7 @@ "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" } ], - "id": 2204, + "id": 2201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11562,7 +11562,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, @@ -11578,42 +11578,42 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2207, "nodeType": "ExpressionStatement", "src": "7793:72:10" }, { - "id": 2225, + "id": 2222, "nodeType": "UncheckedBlock", "src": "7875:273:10", "statements": [ { "expression": { - "id": 2217, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2211, + "id": 2208, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2213, + "id": 2210, "indexExpression": { - "id": 2212, + "id": 2209, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7909:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11638,17 +11638,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2214, + "id": 2211, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7917:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11658,11 +11658,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2215, + "id": 2212, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7931:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11681,37 +11681,37 @@ "typeString": "uint256" } }, - "id": 2218, + "id": 2215, "nodeType": "ExpressionStatement", "src": "7899:38:10" }, { "expression": { - "id": 2223, + "id": 2220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2219, + "id": 2216, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8114:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2221, + "id": 2218, "indexExpression": { - "id": 2220, + "id": 2217, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8124:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11732,11 +11732,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2222, + "id": 2219, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8131:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11749,7 +11749,7 @@ "typeString": "uint256" } }, - "id": 2224, + "id": 2221, "nodeType": "ExpressionStatement", "src": "8114:23:10" } @@ -11759,11 +11759,11 @@ "eventCall": { "arguments": [ { - "id": 2227, + "id": 2224, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8172:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11771,11 +11771,11 @@ } }, { - "id": 2228, + "id": 2225, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8178:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11783,11 +11783,11 @@ } }, { - "id": 2229, + "id": 2226, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8182:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11810,18 +11810,18 @@ "typeString": "uint256" } ], - "id": 2226, + "id": 2223, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8163:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2230, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, @@ -11837,7 +11837,7 @@ "typeString": "tuple()" } }, - "id": 2231, + "id": 2228, "nodeType": "EmitStatement", "src": "8158:31:10" }, @@ -11845,11 +11845,11 @@ "expression": { "arguments": [ { - "id": 2233, + "id": 2230, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8220:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11857,11 +11857,11 @@ } }, { - "id": 2234, + "id": 2231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8226:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11869,11 +11869,11 @@ } }, { - "id": 2235, + "id": 2232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8230:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11896,18 +11896,18 @@ "typeString": "uint256" } ], - "id": 2232, + "id": 2229, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "8200:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2236, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -11923,19 +11923,19 @@ "typeString": "tuple()" } }, - "id": 2237, + "id": 2234, "nodeType": "ExpressionStatement", "src": "8200:37:10" } ] }, "documentation": { - "id": 2163, + "id": 2160, "nodeType": "StructuredDocumentation", "src": "7008:443:10", "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." }, - "id": 2239, + "id": 2236, "implemented": true, "kind": "function", "modifiers": [], @@ -11943,17 +11943,17 @@ "nameLocation": "7465:9:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 2167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 2162, "mutability": "mutable", "name": "from", "nameLocation": "7483:4:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7475:12:10", "stateVariable": false, "storageLocation": "default", @@ -11962,7 +11962,7 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "7475:7:10", @@ -11976,12 +11976,12 @@ }, { "constant": false, - "id": 2167, + "id": 2164, "mutability": "mutable", "name": "to", "nameLocation": "7497:2:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7489:10:10", "stateVariable": false, "storageLocation": "default", @@ -11990,7 +11990,7 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", "src": "7489:7:10", @@ -12004,12 +12004,12 @@ }, { "constant": false, - "id": 2169, + "id": 2166, "mutability": "mutable", "name": "amount", "nameLocation": "7509:6:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7501:14:10", "stateVariable": false, "storageLocation": "default", @@ -12018,7 +12018,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2168, + "id": 2165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7501:7:10", @@ -12033,12 +12033,12 @@ "src": "7474:42:10" }, "returnParameters": { - "id": 2171, + "id": 2168, "nodeType": "ParameterList", "parameters": [], "src": "7534:0:10" }, - "scope": 2479, + "scope": 2476, "src": "7456:788:10", "stateMutability": "nonpayable", "virtual": true, @@ -12046,7 +12046,7 @@ }, { "body": { - "id": 2295, + "id": 2292, "nodeType": "Block", "src": "8585:470:10", "statements": [ @@ -12058,17 +12058,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2253, + "id": 2250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2248, + "id": 2245, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8603:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12081,7 +12081,7 @@ "arguments": [ { "hexValue": "30", - "id": 2251, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": true, @@ -12103,7 +12103,7 @@ "typeString": "int_const 0" } ], - "id": 2250, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -12115,14 +12115,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2249, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", "src": "8614:7:10", "typeDescriptions": {} } }, - "id": 2252, + "id": 2249, "isConstant": false, "isLValue": false, "isPure": true, @@ -12146,7 +12146,7 @@ }, { "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2254, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, @@ -12172,7 +12172,7 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 2247, + "id": 2244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12186,7 +12186,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2255, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -12202,7 +12202,7 @@ "typeString": "tuple()" } }, - "id": 2256, + "id": 2253, "nodeType": "ExpressionStatement", "src": "8595:65:10" }, @@ -12213,7 +12213,7 @@ "arguments": [ { "hexValue": "30", - "id": 2260, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, @@ -12235,7 +12235,7 @@ "typeString": "int_const 0" } ], - "id": 2259, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -12247,14 +12247,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2258, + "id": 2255, "name": "address", "nodeType": "ElementaryTypeName", "src": "8692:7:10", "typeDescriptions": {} } }, - "id": 2261, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, @@ -12271,11 +12271,11 @@ } }, { - "id": 2262, + "id": 2259, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8704:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12283,11 +12283,11 @@ } }, { - "id": 2263, + "id": 2260, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8713:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12310,18 +12310,18 @@ "typeString": "uint256" } ], - "id": 2257, + "id": 2254, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "8671:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2264, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, @@ -12337,23 +12337,23 @@ "typeString": "tuple()" } }, - "id": 2265, + "id": 2262, "nodeType": "ExpressionStatement", "src": "8671:49:10" }, { "expression": { - "id": 2268, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2266, + "id": 2263, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "8731:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12363,11 +12363,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2267, + "id": 2264, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8747:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12380,42 +12380,42 @@ "typeString": "uint256" } }, - "id": 2269, + "id": 2266, "nodeType": "ExpressionStatement", "src": "8731:22:10" }, { - "id": 2276, + "id": 2273, "nodeType": "UncheckedBlock", "src": "8763:175:10", "statements": [ { "expression": { - "id": 2274, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2270, + "id": 2267, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2272, + "id": 2269, "indexExpression": { - "id": 2271, + "id": 2268, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8909:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12436,11 +12436,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2273, + "id": 2270, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8921:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12453,7 +12453,7 @@ "typeString": "uint256" } }, - "id": 2275, + "id": 2272, "nodeType": "ExpressionStatement", "src": "8899:28:10" } @@ -12466,7 +12466,7 @@ "arguments": [ { "hexValue": "30", - "id": 2280, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": true, @@ -12488,7 +12488,7 @@ "typeString": "int_const 0" } ], - "id": 2279, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": true, @@ -12500,14 +12500,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2278, + "id": 2275, "name": "address", "nodeType": "ElementaryTypeName", "src": "8961:7:10", "typeDescriptions": {} } }, - "id": 2281, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": true, @@ -12524,11 +12524,11 @@ } }, { - "id": 2282, + "id": 2279, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8973:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12536,11 +12536,11 @@ } }, { - "id": 2283, + "id": 2280, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8982:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12563,18 +12563,18 @@ "typeString": "uint256" } ], - "id": 2277, + "id": 2274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8952:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2284, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -12590,7 +12590,7 @@ "typeString": "tuple()" } }, - "id": 2285, + "id": 2282, "nodeType": "EmitStatement", "src": "8947:42:10" }, @@ -12601,7 +12601,7 @@ "arguments": [ { "hexValue": "30", - "id": 2289, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": true, @@ -12623,7 +12623,7 @@ "typeString": "int_const 0" } ], - "id": 2288, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": true, @@ -12635,14 +12635,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2287, + "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "9020:7:10", "typeDescriptions": {} } }, - "id": 2290, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, @@ -12659,11 +12659,11 @@ } }, { - "id": 2291, + "id": 2288, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "9032:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12671,11 +12671,11 @@ } }, { - "id": 2292, + "id": 2289, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "9041:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12698,18 +12698,18 @@ "typeString": "uint256" } ], - "id": 2286, + "id": 2283, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9000:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2293, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -12725,19 +12725,19 @@ "typeString": "tuple()" } }, - "id": 2294, + "id": 2291, "nodeType": "ExpressionStatement", "src": "9000:48:10" } ] }, "documentation": { - "id": 2240, + "id": 2237, "nodeType": "StructuredDocumentation", "src": "8250:265:10", "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." }, - "id": 2296, + "id": 2293, "implemented": true, "kind": "function", "modifiers": [], @@ -12745,17 +12745,17 @@ "nameLocation": "8529:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2245, + "id": 2242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2242, + "id": 2239, "mutability": "mutable", "name": "account", "nameLocation": "8543:7:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8535:15:10", "stateVariable": false, "storageLocation": "default", @@ -12764,7 +12764,7 @@ "typeString": "address" }, "typeName": { - "id": 2241, + "id": 2238, "name": "address", "nodeType": "ElementaryTypeName", "src": "8535:7:10", @@ -12778,12 +12778,12 @@ }, { "constant": false, - "id": 2244, + "id": 2241, "mutability": "mutable", "name": "amount", "nameLocation": "8560:6:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8552:14:10", "stateVariable": false, "storageLocation": "default", @@ -12792,7 +12792,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2243, + "id": 2240, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8552:7:10", @@ -12807,12 +12807,12 @@ "src": "8534:33:10" }, "returnParameters": { - "id": 2246, + "id": 2243, "nodeType": "ParameterList", "parameters": [], "src": "8585:0:10" }, - "scope": 2479, + "scope": 2476, "src": "8520:535:10", "stateMutability": "nonpayable", "virtual": true, @@ -12820,7 +12820,7 @@ }, { "body": { - "id": 2367, + "id": 2364, "nodeType": "Block", "src": "9440:594:10", "statements": [ @@ -12832,17 +12832,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2310, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2305, + "id": 2302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9458:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12855,7 +12855,7 @@ "arguments": [ { "hexValue": "30", - "id": 2308, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -12877,7 +12877,7 @@ "typeString": "int_const 0" } ], - "id": 2307, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": true, @@ -12889,14 +12889,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2306, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "9469:7:10", "typeDescriptions": {} } }, - "id": 2309, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, @@ -12920,7 +12920,7 @@ }, { "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 2311, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, @@ -12946,7 +12946,7 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 2304, + "id": 2301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12960,7 +12960,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2312, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -12976,7 +12976,7 @@ "typeString": "tuple()" } }, - "id": 2313, + "id": 2310, "nodeType": "ExpressionStatement", "src": "9450:67:10" }, @@ -12984,11 +12984,11 @@ "expression": { "arguments": [ { - "id": 2315, + "id": 2312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9549:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12999,7 +12999,7 @@ "arguments": [ { "hexValue": "30", - "id": 2318, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -13021,7 +13021,7 @@ "typeString": "int_const 0" } ], - "id": 2317, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -13033,14 +13033,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2316, + "id": 2313, "name": "address", "nodeType": "ElementaryTypeName", "src": "9558:7:10", "typeDescriptions": {} } }, - "id": 2319, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -13057,11 +13057,11 @@ } }, { - "id": 2320, + "id": 2317, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9570:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13084,18 +13084,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 2311, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "9528:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2321, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -13111,23 +13111,23 @@ "typeString": "tuple()" } }, - "id": 2322, + "id": 2319, "nodeType": "ExpressionStatement", "src": "9528:49:10" }, { "assignments": [ - 2324 + 2321 ], "declarations": [ { "constant": false, - "id": 2324, + "id": 2321, "mutability": "mutable", "name": "accountBalance", "nameLocation": "9596:14:10", "nodeType": "VariableDeclaration", - "scope": 2367, + "scope": 2364, "src": "9588:22:10", "stateVariable": false, "storageLocation": "default", @@ -13136,7 +13136,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2323, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9588:7:10", @@ -13148,27 +13148,27 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2325, "initialValue": { "baseExpression": { - "id": 2325, + "id": 2322, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9613:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2327, + "id": 2324, "indexExpression": { - "id": 2326, + "id": 2323, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9623:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13197,17 +13197,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2332, + "id": 2329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2330, + "id": 2327, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9649:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13217,11 +13217,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2331, + "id": 2328, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9667:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13236,7 +13236,7 @@ }, { "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 2333, + "id": 2330, "isConstant": false, "isLValue": false, "isPure": true, @@ -13262,7 +13262,7 @@ "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" } ], - "id": 2329, + "id": 2326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13276,7 +13276,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, @@ -13292,42 +13292,42 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2332, "nodeType": "ExpressionStatement", "src": "9641:71:10" }, { - "id": 2348, + "id": 2345, "nodeType": "UncheckedBlock", "src": "9722:194:10", "statements": [ { "expression": { - "id": 2342, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2336, + "id": 2333, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9746:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2338, + "id": 2335, "indexExpression": { - "id": 2337, + "id": 2334, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9756:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13352,17 +13352,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2339, + "id": 2336, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9767:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13372,11 +13372,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2340, + "id": 2337, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9784:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13395,23 +13395,23 @@ "typeString": "uint256" } }, - "id": 2343, + "id": 2340, "nodeType": "ExpressionStatement", "src": "9746:44:10" }, { "expression": { - "id": 2346, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2344, + "id": 2341, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "9883:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13421,11 +13421,11 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 2345, + "id": 2342, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9899:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13438,7 +13438,7 @@ "typeString": "uint256" } }, - "id": 2347, + "id": 2344, "nodeType": "ExpressionStatement", "src": "9883:22:10" } @@ -13448,11 +13448,11 @@ "eventCall": { "arguments": [ { - "id": 2350, + "id": 2347, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9940:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13463,7 +13463,7 @@ "arguments": [ { "hexValue": "30", - "id": 2353, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, @@ -13485,7 +13485,7 @@ "typeString": "int_const 0" } ], - "id": 2352, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": true, @@ -13497,14 +13497,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2351, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", "src": "9949:7:10", "typeDescriptions": {} } }, - "id": 2354, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": true, @@ -13521,11 +13521,11 @@ } }, { - "id": 2355, + "id": 2352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9961:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13548,18 +13548,18 @@ "typeString": "uint256" } ], - "id": 2349, + "id": 2346, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "9931:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2356, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -13575,7 +13575,7 @@ "typeString": "tuple()" } }, - "id": 2357, + "id": 2354, "nodeType": "EmitStatement", "src": "9926:42:10" }, @@ -13583,11 +13583,11 @@ "expression": { "arguments": [ { - "id": 2359, + "id": 2356, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9999:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13598,7 +13598,7 @@ "arguments": [ { "hexValue": "30", - "id": 2362, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -13620,7 +13620,7 @@ "typeString": "int_const 0" } ], - "id": 2361, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, @@ -13632,14 +13632,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2360, + "id": 2357, "name": "address", "nodeType": "ElementaryTypeName", "src": "10008:7:10", "typeDescriptions": {} } }, - "id": 2363, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -13656,11 +13656,11 @@ } }, { - "id": 2364, + "id": 2361, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "10020:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13683,18 +13683,18 @@ "typeString": "uint256" } ], - "id": 2358, + "id": 2355, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9979:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2365, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -13710,19 +13710,19 @@ "typeString": "tuple()" } }, - "id": 2366, + "id": 2363, "nodeType": "ExpressionStatement", "src": "9979:48:10" } ] }, "documentation": { - "id": 2297, + "id": 2294, "nodeType": "StructuredDocumentation", "src": "9061:309:10", "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." }, - "id": 2368, + "id": 2365, "implemented": true, "kind": "function", "modifiers": [], @@ -13730,17 +13730,17 @@ "nameLocation": "9384:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2302, + "id": 2299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2299, + "id": 2296, "mutability": "mutable", "name": "account", "nameLocation": "9398:7:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9390:15:10", "stateVariable": false, "storageLocation": "default", @@ -13749,7 +13749,7 @@ "typeString": "address" }, "typeName": { - "id": 2298, + "id": 2295, "name": "address", "nodeType": "ElementaryTypeName", "src": "9390:7:10", @@ -13763,12 +13763,12 @@ }, { "constant": false, - "id": 2301, + "id": 2298, "mutability": "mutable", "name": "amount", "nameLocation": "9415:6:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9407:14:10", "stateVariable": false, "storageLocation": "default", @@ -13777,7 +13777,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2300, + "id": 2297, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9407:7:10", @@ -13792,12 +13792,12 @@ "src": "9389:33:10" }, "returnParameters": { - "id": 2303, + "id": 2300, "nodeType": "ParameterList", "parameters": [], "src": "9440:0:10" }, - "scope": 2479, + "scope": 2476, "src": "9375:659:10", "stateMutability": "nonpayable", "virtual": true, @@ -13805,7 +13805,7 @@ }, { "body": { - "id": 2412, + "id": 2409, "nodeType": "Block", "src": "10540:257:10", "statements": [ @@ -13817,17 +13817,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2384, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2379, + "id": 2376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10558:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13840,7 +13840,7 @@ "arguments": [ { "hexValue": "30", - "id": 2382, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": true, @@ -13862,7 +13862,7 @@ "typeString": "int_const 0" } ], - "id": 2381, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, @@ -13874,14 +13874,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2380, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "10567:7:10", "typeDescriptions": {} } }, - "id": 2383, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, @@ -13905,7 +13905,7 @@ }, { "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 2385, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, @@ -13931,7 +13931,7 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 2378, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13945,7 +13945,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2386, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -13961,7 +13961,7 @@ "typeString": "tuple()" } }, - "id": 2387, + "id": 2384, "nodeType": "ExpressionStatement", "src": "10550:68:10" }, @@ -13973,17 +13973,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2394, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2389, + "id": 2386, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10636:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13996,7 +13996,7 @@ "arguments": [ { "hexValue": "30", - "id": 2392, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, @@ -14018,7 +14018,7 @@ "typeString": "int_const 0" } ], - "id": 2391, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, @@ -14030,14 +14030,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2390, + "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "10647:7:10", "typeDescriptions": {} } }, - "id": 2393, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, @@ -14061,7 +14061,7 @@ }, { "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 2395, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, @@ -14087,7 +14087,7 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 2388, + "id": 2385, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14101,7 +14101,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2396, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, @@ -14117,13 +14117,13 @@ "typeString": "tuple()" } }, - "id": 2397, + "id": 2394, "nodeType": "ExpressionStatement", "src": "10628:68:10" }, { "expression": { - "id": 2404, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -14131,24 +14131,24 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2398, + "id": 2395, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "10707:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2401, + "id": 2398, "indexExpression": { - "id": 2399, + "id": 2396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10719:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14166,13 +14166,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2402, + "id": 2399, "indexExpression": { - "id": 2400, + "id": 2397, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10726:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14193,11 +14193,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2403, + "id": 2400, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10737:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14210,7 +14210,7 @@ "typeString": "uint256" } }, - "id": 2405, + "id": 2402, "nodeType": "ExpressionStatement", "src": "10707:36:10" }, @@ -14218,11 +14218,11 @@ "eventCall": { "arguments": [ { - "id": 2407, + "id": 2404, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10767:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14230,11 +14230,11 @@ } }, { - "id": 2408, + "id": 2405, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10774:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14242,11 +14242,11 @@ } }, { - "id": 2409, + "id": 2406, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10783:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14269,18 +14269,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2403, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, + "referencedDeclaration": 2497, "src": "10758:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2410, + "id": 2407, "isConstant": false, "isLValue": false, "isPure": false, @@ -14296,19 +14296,19 @@ "typeString": "tuple()" } }, - "id": 2411, + "id": 2408, "nodeType": "EmitStatement", "src": "10753:37:10" } ] }, "documentation": { - "id": 2369, + "id": 2366, "nodeType": "StructuredDocumentation", "src": "10040:412:10", "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." }, - "id": 2413, + "id": 2410, "implemented": true, "kind": "function", "modifiers": [], @@ -14316,17 +14316,17 @@ "nameLocation": "10466:8:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2376, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2371, + "id": 2368, "mutability": "mutable", "name": "owner", "nameLocation": "10483:5:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10475:13:10", "stateVariable": false, "storageLocation": "default", @@ -14335,7 +14335,7 @@ "typeString": "address" }, "typeName": { - "id": 2370, + "id": 2367, "name": "address", "nodeType": "ElementaryTypeName", "src": "10475:7:10", @@ -14349,12 +14349,12 @@ }, { "constant": false, - "id": 2373, + "id": 2370, "mutability": "mutable", "name": "spender", "nameLocation": "10498:7:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10490:15:10", "stateVariable": false, "storageLocation": "default", @@ -14363,7 +14363,7 @@ "typeString": "address" }, "typeName": { - "id": 2372, + "id": 2369, "name": "address", "nodeType": "ElementaryTypeName", "src": "10490:7:10", @@ -14377,12 +14377,12 @@ }, { "constant": false, - "id": 2375, + "id": 2372, "mutability": "mutable", "name": "amount", "nameLocation": "10515:6:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10507:14:10", "stateVariable": false, "storageLocation": "default", @@ -14391,7 +14391,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2374, + "id": 2371, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10507:7:10", @@ -14406,12 +14406,12 @@ "src": "10474:48:10" }, "returnParameters": { - "id": 2377, + "id": 2374, "nodeType": "ParameterList", "parameters": [], "src": "10540:0:10" }, - "scope": 2479, + "scope": 2476, "src": "10457:340:10", "stateMutability": "nonpayable", "virtual": true, @@ -14419,23 +14419,23 @@ }, { "body": { - "id": 2455, + "id": 2452, "nodeType": "Block", "src": "11168:321:10", "statements": [ { "assignments": [ - 2424 + 2421 ], "declarations": [ { "constant": false, - "id": 2424, + "id": 2421, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "11186:16:10", "nodeType": "VariableDeclaration", - "scope": 2455, + "scope": 2452, "src": "11178:24:10", "stateVariable": false, "storageLocation": "default", @@ -14444,7 +14444,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2423, + "id": 2420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11178:7:10", @@ -14456,15 +14456,15 @@ "visibility": "internal" } ], - "id": 2429, + "id": 2426, "initialValue": { "arguments": [ { - "id": 2426, + "id": 2423, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11215:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14472,11 +14472,11 @@ } }, { - "id": 2427, + "id": 2424, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11222:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14495,18 +14495,18 @@ "typeString": "address" } ], - "id": 2425, + "id": 2422, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "11205:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2428, + "id": 2425, "isConstant": false, "isLValue": false, "isPure": false, @@ -14531,17 +14531,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2430, + "id": 2427, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11244:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14554,7 +14554,7 @@ "expression": { "arguments": [ { - "id": 2433, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, @@ -14566,7 +14566,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 2432, + "id": 2429, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11269:7:10", @@ -14581,7 +14581,7 @@ "typeString": "type(uint256)" } ], - "id": 2431, + "id": 2428, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -14592,7 +14592,7 @@ "typeString": "function () pure" } }, - "id": 2434, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": true, @@ -14608,7 +14608,7 @@ "typeString": "type(uint256)" } }, - "id": 2435, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -14628,11 +14628,11 @@ "typeString": "bool" } }, - "id": 2454, + "id": 2451, "nodeType": "IfStatement", "src": "11240:243:10", "trueBody": { - "id": 2453, + "id": 2450, "nodeType": "Block", "src": "11283:200:10", "statements": [ @@ -14644,17 +14644,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2440, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2438, + "id": 2435, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11305:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14664,11 +14664,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2439, + "id": 2436, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11325:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14683,7 +14683,7 @@ }, { "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", - "id": 2441, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, @@ -14709,7 +14709,7 @@ "typeString": "literal_string \"ERC20: insufficient allowance\"" } ], - "id": 2437, + "id": 2434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14723,7 +14723,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2442, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -14739,12 +14739,12 @@ "typeString": "tuple()" } }, - "id": 2443, + "id": 2440, "nodeType": "ExpressionStatement", "src": "11297:68:10" }, { - "id": 2452, + "id": 2449, "nodeType": "UncheckedBlock", "src": "11379:94:10", "statements": [ @@ -14752,11 +14752,11 @@ "expression": { "arguments": [ { - "id": 2445, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11416:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14764,11 +14764,11 @@ } }, { - "id": 2446, + "id": 2443, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11423:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14780,17 +14780,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2449, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2447, + "id": 2444, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11432:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14800,11 +14800,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2448, + "id": 2445, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11451:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14833,18 +14833,18 @@ "typeString": "uint256" } ], - "id": 2444, + "id": 2441, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "11407:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2450, + "id": 2447, "isConstant": false, "isLValue": false, "isPure": false, @@ -14860,7 +14860,7 @@ "typeString": "tuple()" } }, - "id": 2451, + "id": 2448, "nodeType": "ExpressionStatement", "src": "11407:51:10" } @@ -14872,12 +14872,12 @@ ] }, "documentation": { - "id": 2414, + "id": 2411, "nodeType": "StructuredDocumentation", "src": "10803:270:10", "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." }, - "id": 2456, + "id": 2453, "implemented": true, "kind": "function", "modifiers": [], @@ -14885,17 +14885,17 @@ "nameLocation": "11087:15:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2421, + "id": 2418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2416, + "id": 2413, "mutability": "mutable", "name": "owner", "nameLocation": "11111:5:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11103:13:10", "stateVariable": false, "storageLocation": "default", @@ -14904,7 +14904,7 @@ "typeString": "address" }, "typeName": { - "id": 2415, + "id": 2412, "name": "address", "nodeType": "ElementaryTypeName", "src": "11103:7:10", @@ -14918,12 +14918,12 @@ }, { "constant": false, - "id": 2418, + "id": 2415, "mutability": "mutable", "name": "spender", "nameLocation": "11126:7:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11118:15:10", "stateVariable": false, "storageLocation": "default", @@ -14932,7 +14932,7 @@ "typeString": "address" }, "typeName": { - "id": 2417, + "id": 2414, "name": "address", "nodeType": "ElementaryTypeName", "src": "11118:7:10", @@ -14946,12 +14946,12 @@ }, { "constant": false, - "id": 2420, + "id": 2417, "mutability": "mutable", "name": "amount", "nameLocation": "11143:6:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11135:14:10", "stateVariable": false, "storageLocation": "default", @@ -14960,7 +14960,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2419, + "id": 2416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11135:7:10", @@ -14975,12 +14975,12 @@ "src": "11102:48:10" }, "returnParameters": { - "id": 2422, + "id": 2419, "nodeType": "ParameterList", "parameters": [], "src": "11168:0:10" }, - "scope": 2479, + "scope": 2476, "src": "11078:411:10", "stateMutability": "nonpayable", "virtual": true, @@ -14988,18 +14988,18 @@ }, { "body": { - "id": 2466, + "id": 2463, "nodeType": "Block", "src": "12162:2:10", "statements": [] }, "documentation": { - "id": 2457, + "id": 2454, "nodeType": "StructuredDocumentation", "src": "11495:573:10", "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2467, + "id": 2464, "implemented": true, "kind": "function", "modifiers": [], @@ -15007,17 +15007,17 @@ "nameLocation": "12082:20:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2464, + "id": 2461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2459, + "id": 2456, "mutability": "mutable", "name": "from", "nameLocation": "12111:4:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12103:12:10", "stateVariable": false, "storageLocation": "default", @@ -15026,7 +15026,7 @@ "typeString": "address" }, "typeName": { - "id": 2458, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", "src": "12103:7:10", @@ -15040,12 +15040,12 @@ }, { "constant": false, - "id": 2461, + "id": 2458, "mutability": "mutable", "name": "to", "nameLocation": "12125:2:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12117:10:10", "stateVariable": false, "storageLocation": "default", @@ -15054,7 +15054,7 @@ "typeString": "address" }, "typeName": { - "id": 2460, + "id": 2457, "name": "address", "nodeType": "ElementaryTypeName", "src": "12117:7:10", @@ -15068,12 +15068,12 @@ }, { "constant": false, - "id": 2463, + "id": 2460, "mutability": "mutable", "name": "amount", "nameLocation": "12137:6:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12129:14:10", "stateVariable": false, "storageLocation": "default", @@ -15082,7 +15082,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2462, + "id": 2459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12129:7:10", @@ -15097,12 +15097,12 @@ "src": "12102:42:10" }, "returnParameters": { - "id": 2465, + "id": 2462, "nodeType": "ParameterList", "parameters": [], "src": "12162:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12073:91:10", "stateMutability": "nonpayable", "virtual": true, @@ -15110,18 +15110,18 @@ }, { "body": { - "id": 2477, + "id": 2474, "nodeType": "Block", "src": "12840:2:10", "statements": [] }, "documentation": { - "id": 2468, + "id": 2465, "nodeType": "StructuredDocumentation", "src": "12170:577:10", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2478, + "id": 2475, "implemented": true, "kind": "function", "modifiers": [], @@ -15129,17 +15129,17 @@ "nameLocation": "12761:19:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2475, + "id": 2472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2470, + "id": 2467, "mutability": "mutable", "name": "from", "nameLocation": "12789:4:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12781:12:10", "stateVariable": false, "storageLocation": "default", @@ -15148,7 +15148,7 @@ "typeString": "address" }, "typeName": { - "id": 2469, + "id": 2466, "name": "address", "nodeType": "ElementaryTypeName", "src": "12781:7:10", @@ -15162,12 +15162,12 @@ }, { "constant": false, - "id": 2472, + "id": 2469, "mutability": "mutable", "name": "to", "nameLocation": "12803:2:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12795:10:10", "stateVariable": false, "storageLocation": "default", @@ -15176,7 +15176,7 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2468, "name": "address", "nodeType": "ElementaryTypeName", "src": "12795:7:10", @@ -15190,12 +15190,12 @@ }, { "constant": false, - "id": 2474, + "id": 2471, "mutability": "mutable", "name": "amount", "nameLocation": "12815:6:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12807:14:10", "stateVariable": false, "storageLocation": "default", @@ -15204,7 +15204,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2473, + "id": 2470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12807:7:10", @@ -15219,19 +15219,19 @@ "src": "12780:42:10" }, "returnParameters": { - "id": 2476, + "id": 2473, "nodeType": "ParameterList", "parameters": [], "src": "12840:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12752:90:10", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2480, + "scope": 2477, "src": "1532:11312:10", "usedErrors": [] } @@ -15244,5 +15244,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.579Z" + "updatedAt": "2024-06-27T12:24:25.269Z" } \ No newline at end of file diff --git a/build/contracts/Gateway.json b/build/contracts/Gateway.json index 6524ab8..078fa58 100644 --- a/build/contracts/Gateway.json +++ b/build/contracts/Gateway.json @@ -628,38 +628,38 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61389f80620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b610159600480360381019061015491906125bc565b610352565b005b6101756004803603810190610170919061263c565b61061a565b005b61017f610685565b60405161018c9190612684565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126d5565b6106b0565b6040516101c69190612684565b60405180910390f35b6101e960048036038101906101e49190612715565b610b45565b6040516101f69190612684565b60405180910390f35b61021960048036038101906102149190612742565b610ba1565b604051610226919061288f565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061293c565b610e46565b6040516102609190612a0d565b60405180910390f35b6102716113b1565b005b61027b611501565b005b610285611513565b6040516102929190612a37565b60405180910390f35b6102a361153d565b6040516102b1929190612a70565b60405180910390f35b6102d460048036038101906102cf9190612a99565b611562565b005b6102de6116e7565b6040516102eb9190612a37565b60405180910390f35b61030e60048036038101906103099190612aec565b611711565b60405161031b9190612684565b60405180910390f35b61033e60048036038101906103399190612715565b611d5d565b005b610348611e0a565b610350611e88565b565b61035a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612bb0565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c42565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cd4565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611e0a565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cf4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611e0a565b6106ae6000611eeb565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d5b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612dc7565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e33565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e9f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ebf565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612f14565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f70565b6109f49190612fa4565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f70565b6040518363ffffffff1660e01b8152600401610abe929190612ebf565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612f14565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fd8565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612435565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611f1c565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613065565b60405180910390fd5b610e4381611eeb565b50565b6000610e50611f24565b610e5d8989868989611f6e565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130d1565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f70565b6040518463ffffffff1660e01b8152600401610eeb939291906130f1565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612f14565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613128565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ebf565b6040516020818303038152906040528051906020012090506000609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff166097546110209190612f70565b609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a61104c9190613170565b61105691906131e1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff168152602001828b61111e9190612fa4565b81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161139c95949392919061329a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113e25750600160008054906101000a900460ff1660ff16105b8061140f57506113f130612121565b15801561140e5750600160008054906101000a900460ff1660ff16145b5b61144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061335a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561148b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061149d612144565b6114a561219d565b80156114fe5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114f591906133c2565b60405180910390a15b50565b611509611e0a565b6115116121f6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61156a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612bb0565b60405180910390fd5b60018114806115e85750600281145b611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613429565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116e25780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116d99190612fd8565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612d5b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612dc7565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561186b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186290612e33565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118ed9190613449565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611c1557600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b3e5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a69929190612ebf565b6020604051808303816000875af1158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac9190612f14565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b600060ff60008781526020019081526020016000206004015414611c14578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600401546040518363ffffffff1660e01b8152600401611bcf929190612ebf565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190612f14565b505b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611c469190613170565b611c5091906131e1565b90508060ff60008881526020019081526020016000206007016000828254611c789190612fa4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cba929190612ebf565b6020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612f14565b508473ffffffffffffffffffffffffffffffffffffffff16867f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8987604051611d479291906134ba565b60405180910390a3600192505050949350505050565b611d65611e0a565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611dc5611513565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611e12611f1c565b73ffffffffffffffffffffffffffffffffffffffff16611e30611513565b73ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061352f565b60405180910390fd5b565b611e90612259565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed4611f1c565b604051611ee19190612a37565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611f19816122a2565b50565b600033905090565b611f2c610685565b15611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f639061359b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613607565b60405180910390fd5b60008403612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906136df565b60405180910390fd5b6000811461211a57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121109061374b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218a906137dd565b60405180910390fd5b61219b612368565b565b600060019054906101000a900460ff166121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e3906137dd565b60405180910390fd5b6121f46123c9565b565b6121fe611f24565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612242611f1c565b60405161224f9190612a37565b60405180910390a1565b612261610685565b6122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790613849565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff166123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae906137dd565b60405180910390fd5b6123c76123c2611f1c565b611eeb565b565b600060019054906101000a900460ff16612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906137dd565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61255c81612532565b811461256757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125958261256a565b9050919050565b6000813590506125ab81612553565b6125b48161258a565b905092915050565b600080604083850312156125d3576125d26124f2565b5b60006125e18582860161251d565b92505060206125f28582860161259c565b9150509250929050565b600067ffffffffffffffff82169050919050565b612619816125fc565b811461262457600080fd5b50565b60008135905061263681612610565b92915050565b600060208284031215612652576126516124f2565b5b600061266084828501612627565b91505092915050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6000819050919050565b6126b28161269f565b81146126bd57600080fd5b50565b6000813590506126cf816126a9565b92915050565b600080604083850312156126ec576126eb6124f2565b5b60006126fa858286016126c0565b925050602061270b8582860161251d565b9150509250929050565b60006020828403121561272b5761272a6124f2565b5b60006127398482850161259c565b91505092915050565b600060208284031215612758576127576124f2565b5b60006127668482850161251d565b91505092915050565b6127788161258a565b82525050565b6127878161269f565b82525050565b61279681612669565b82525050565b60006bffffffffffffffffffffffff82169050919050565b6127bd8161279c565b82525050565b610140820160008201516127da600085018261276f565b5060208201516127ed602085018261276f565b506040820151612800604085018261276f565b506060820151612813606085018261277e565b506080820151612826608085018261277e565b5060a082015161283960a085018261278d565b5060c082015161284c60c085018261278d565b5060e082015161285f60e085018261276f565b506101008201516128746101008501826127b4565b5061012082015161288961012085018261277e565b50505050565b6000610140820190506128a560008301846127c3565b92915050565b6128b48161279c565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128fc576128fb6128d7565b5b8235905067ffffffffffffffff811115612919576129186128dc565b5b602083019150836001820283011115612935576129346128e1565b5b9250929050565b60008060008060008060008060e0898b03121561295c5761295b6124f2565b5b600061296a8b828c0161259c565b985050602061297b8b828c016126c0565b975050604061298c8b828c016128c2565b965050606061299d8b828c0161259c565b95505060806129ae8b828c016126c0565b94505060a06129bf8b828c0161259c565b93505060c089013567ffffffffffffffff8111156129e0576129df6124f7565b5b6129ec8b828c016128e6565b92509250509295985092959890939650565b612a07816124fc565b82525050565b6000602082019050612a2260008301846129fe565b92915050565b612a318161258a565b82525050565b6000602082019050612a4c6000830184612a28565b92915050565b612a5b816125fc565b82525050565b612a6a8161269f565b82525050565b6000604082019050612a856000830185612a52565b612a926020830184612a61565b9392505050565b600080600060608486031215612ab257612ab16124f2565b5b6000612ac08682870161251d565b9350506020612ad18682870161259c565b9250506040612ae2868287016126c0565b9150509250925092565b60008060008060808587031215612b0657612b056124f2565b5b6000612b148782880161251d565b9450506020612b258782880161251d565b9350506040612b368782880161259c565b9250506060612b4787828801612627565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b9a601583612b53565b9150612ba582612b64565b602082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602583612b53565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612cbe602783612b53565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b6000602082019050612d096000830184612a52565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d45600e83612b53565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612db1600e83612b53565b9150612dbc82612d7b565b602082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612e1d600d83612b53565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e89601583612b53565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000604082019050612ed46000830185612a28565b612ee16020830184612a61565b9392505050565b612ef181612669565b8114612efc57600080fd5b50565b600081519050612f0e81612ee8565b92915050565b600060208284031215612f2a57612f296124f2565b5b6000612f3884828501612eff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f7b8261269f565b9150612f868361269f565b9250828201905080821115612f9e57612f9d612f41565b5b92915050565b6000612faf8261269f565b9150612fba8361269f565b9250828203905081811115612fd257612fd1612f41565b5b92915050565b6000602082019050612fed6000830184612a61565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061304f602983612b53565b915061305a82612ff3565b604082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b60006130bb601283612b53565b91506130c682613085565b602082019050919050565b600060208201905081810360008301526130ea816130ae565b9050919050565b60006060820190506131066000830186612a28565b6131136020830185612a28565b6131206040830184612a61565b949350505050565b60006131338261269f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361316557613164612f41565b5b600182019050919050565b600061317b8261269f565b91506131868361269f565b92508282026131948161269f565b915082820484148315176131ab576131aa612f41565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ec8261269f565b91506131f78361269f565b925082613207576132066131b2565b5b828204905092915050565b6000819050919050565b600061323761323261322d8461279c565b613212565b61269f565b9050919050565b6132478161321c565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132798385612b53565b935061328683858461324d565b61328f8361325c565b840190509392505050565b60006080820190506132af6000830188612a61565b6132bc60208301876129fe565b6132c9604083018661323e565b81810360608301526132dc81848661326d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613344602e83612b53565b915061334f826132e8565b604082019050919050565b6000602082019050818103600083015261337381613337565b9050919050565b6000819050919050565b600060ff82169050919050565b60006133ac6133a76133a28461337a565b613212565b613384565b9050919050565b6133bc81613391565b82525050565b60006020820190506133d760008301846133b3565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000613413601783612b53565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b60006134548261279c565b915061345f8361279c565b925082820390506bffffffffffffffffffffffff81111561348357613482612f41565b5b92915050565b60006134a461349f61349a846125fc565b613212565b61279c565b9050919050565b6134b481613489565b82525050565b60006040820190506134cf60008301856129fe565b6134dc60208301846134ab565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613519602083612b53565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613585601083612b53565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135f1601183612b53565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061365d600c83612b53565b915061366882613627565b602082019050919050565b6000602082019050818103600083015261368c81613650565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136c9601083612b53565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613735601983612b53565b9150613740826136ff565b602082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137c7602b83612b53565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613833601483612b53565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b905091905056fea26474726f6e58221220a0b5d1d23c5807c0b800878d8b512f00901dabc450a8ba5180118337893af2a464736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b610159600480360381019061015491906125bc565b610352565b005b6101756004803603810190610170919061263c565b61061a565b005b61017f610685565b60405161018c9190612684565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126d5565b6106b0565b6040516101c69190612684565b60405180910390f35b6101e960048036038101906101e49190612715565b610b45565b6040516101f69190612684565b60405180910390f35b61021960048036038101906102149190612742565b610ba1565b604051610226919061288f565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061293c565b610e46565b6040516102609190612a0d565b60405180910390f35b6102716113b1565b005b61027b611501565b005b610285611513565b6040516102929190612a37565b60405180910390f35b6102a361153d565b6040516102b1929190612a70565b60405180910390f35b6102d460048036038101906102cf9190612a99565b611562565b005b6102de6116e7565b6040516102eb9190612a37565b60405180910390f35b61030e60048036038101906103099190612aec565b611711565b60405161031b9190612684565b60405180910390f35b61033e60048036038101906103399190612715565b611d5d565b005b610348611e0a565b610350611e88565b565b61035a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612bb0565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c42565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cd4565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611e0a565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cf4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611e0a565b6106ae6000611eeb565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d5b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612dc7565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e33565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e9f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ebf565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612f14565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f70565b6109f49190612fa4565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f70565b6040518363ffffffff1660e01b8152600401610abe929190612ebf565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612f14565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fd8565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612435565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611f1c565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613065565b60405180910390fd5b610e4381611eeb565b50565b6000610e50611f24565b610e5d8989868989611f6e565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130d1565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f70565b6040518463ffffffff1660e01b8152600401610eeb939291906130f1565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612f14565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613128565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ebf565b6040516020818303038152906040528051906020012090506000609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff166097546110209190612f70565b609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a61104c9190613170565b61105691906131e1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff168152602001828b61111e9190612fa4565b81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161139c95949392919061329a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113e25750600160008054906101000a900460ff1660ff16105b8061140f57506113f130612121565b15801561140e5750600160008054906101000a900460ff1660ff16145b5b61144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061335a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561148b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061149d612144565b6114a561219d565b80156114fe5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114f591906133c2565b60405180910390a15b50565b611509611e0a565b6115116121f6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61156a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612bb0565b60405180910390fd5b60018114806115e85750600281145b611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613429565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116e25780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116d99190612fd8565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612d5b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612dc7565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561186b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186290612e33565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118ed9190613449565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611c1557600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b3e5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a69929190612ebf565b6020604051808303816000875af1158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac9190612f14565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b600060ff60008781526020019081526020016000206004015414611c14578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600401546040518363ffffffff1660e01b8152600401611bcf929190612ebf565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190612f14565b505b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611c469190613170565b611c5091906131e1565b90508060ff60008881526020019081526020016000206007016000828254611c789190612fa4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cba929190612ebf565b6020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612f14565b508473ffffffffffffffffffffffffffffffffffffffff16867f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8987604051611d479291906134ba565b60405180910390a3600192505050949350505050565b611d65611e0a565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611dc5611513565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611e12611f1c565b73ffffffffffffffffffffffffffffffffffffffff16611e30611513565b73ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061352f565b60405180910390fd5b565b611e90612259565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed4611f1c565b604051611ee19190612a37565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611f19816122a2565b50565b600033905090565b611f2c610685565b15611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f639061359b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613607565b60405180910390fd5b60008403612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906136df565b60405180910390fd5b6000811461211a57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121109061374b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218a906137dd565b60405180910390fd5b61219b612368565b565b600060019054906101000a900460ff166121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e3906137dd565b60405180910390fd5b6121f46123c9565b565b6121fe611f24565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612242611f1c565b60405161224f9190612a37565b60405180910390a1565b612261610685565b6122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790613849565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff166123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae906137dd565b60405180910390fd5b6123c76123c2611f1c565b611eeb565b565b600060019054906101000a900460ff16612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906137dd565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61255c81612532565b811461256757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125958261256a565b9050919050565b6000813590506125ab81612553565b6125b48161258a565b905092915050565b600080604083850312156125d3576125d26124f2565b5b60006125e18582860161251d565b92505060206125f28582860161259c565b9150509250929050565b600067ffffffffffffffff82169050919050565b612619816125fc565b811461262457600080fd5b50565b60008135905061263681612610565b92915050565b600060208284031215612652576126516124f2565b5b600061266084828501612627565b91505092915050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6000819050919050565b6126b28161269f565b81146126bd57600080fd5b50565b6000813590506126cf816126a9565b92915050565b600080604083850312156126ec576126eb6124f2565b5b60006126fa858286016126c0565b925050602061270b8582860161251d565b9150509250929050565b60006020828403121561272b5761272a6124f2565b5b60006127398482850161259c565b91505092915050565b600060208284031215612758576127576124f2565b5b60006127668482850161251d565b91505092915050565b6127788161258a565b82525050565b6127878161269f565b82525050565b61279681612669565b82525050565b60006bffffffffffffffffffffffff82169050919050565b6127bd8161279c565b82525050565b610140820160008201516127da600085018261276f565b5060208201516127ed602085018261276f565b506040820151612800604085018261276f565b506060820151612813606085018261277e565b506080820151612826608085018261277e565b5060a082015161283960a085018261278d565b5060c082015161284c60c085018261278d565b5060e082015161285f60e085018261276f565b506101008201516128746101008501826127b4565b5061012082015161288961012085018261277e565b50505050565b6000610140820190506128a560008301846127c3565b92915050565b6128b48161279c565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128fc576128fb6128d7565b5b8235905067ffffffffffffffff811115612919576129186128dc565b5b602083019150836001820283011115612935576129346128e1565b5b9250929050565b60008060008060008060008060e0898b03121561295c5761295b6124f2565b5b600061296a8b828c0161259c565b985050602061297b8b828c016126c0565b975050604061298c8b828c016128c2565b965050606061299d8b828c0161259c565b95505060806129ae8b828c016126c0565b94505060a06129bf8b828c0161259c565b93505060c089013567ffffffffffffffff8111156129e0576129df6124f7565b5b6129ec8b828c016128e6565b92509250509295985092959890939650565b612a07816124fc565b82525050565b6000602082019050612a2260008301846129fe565b92915050565b612a318161258a565b82525050565b6000602082019050612a4c6000830184612a28565b92915050565b612a5b816125fc565b82525050565b612a6a8161269f565b82525050565b6000604082019050612a856000830185612a52565b612a926020830184612a61565b9392505050565b600080600060608486031215612ab257612ab16124f2565b5b6000612ac08682870161251d565b9350506020612ad18682870161259c565b9250506040612ae2868287016126c0565b9150509250925092565b60008060008060808587031215612b0657612b056124f2565b5b6000612b148782880161251d565b9450506020612b258782880161251d565b9350506040612b368782880161259c565b9250506060612b4787828801612627565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b9a601583612b53565b9150612ba582612b64565b602082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602583612b53565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612cbe602783612b53565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b6000602082019050612d096000830184612a52565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d45600e83612b53565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612db1600e83612b53565b9150612dbc82612d7b565b602082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612e1d600d83612b53565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e89601583612b53565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000604082019050612ed46000830185612a28565b612ee16020830184612a61565b9392505050565b612ef181612669565b8114612efc57600080fd5b50565b600081519050612f0e81612ee8565b92915050565b600060208284031215612f2a57612f296124f2565b5b6000612f3884828501612eff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f7b8261269f565b9150612f868361269f565b9250828201905080821115612f9e57612f9d612f41565b5b92915050565b6000612faf8261269f565b9150612fba8361269f565b9250828203905081811115612fd257612fd1612f41565b5b92915050565b6000602082019050612fed6000830184612a61565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061304f602983612b53565b915061305a82612ff3565b604082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b60006130bb601283612b53565b91506130c682613085565b602082019050919050565b600060208201905081810360008301526130ea816130ae565b9050919050565b60006060820190506131066000830186612a28565b6131136020830185612a28565b6131206040830184612a61565b949350505050565b60006131338261269f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361316557613164612f41565b5b600182019050919050565b600061317b8261269f565b91506131868361269f565b92508282026131948161269f565b915082820484148315176131ab576131aa612f41565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ec8261269f565b91506131f78361269f565b925082613207576132066131b2565b5b828204905092915050565b6000819050919050565b600061323761323261322d8461279c565b613212565b61269f565b9050919050565b6132478161321c565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132798385612b53565b935061328683858461324d565b61328f8361325c565b840190509392505050565b60006080820190506132af6000830188612a61565b6132bc60208301876129fe565b6132c9604083018661323e565b81810360608301526132dc81848661326d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613344602e83612b53565b915061334f826132e8565b604082019050919050565b6000602082019050818103600083015261337381613337565b9050919050565b6000819050919050565b600060ff82169050919050565b60006133ac6133a76133a28461337a565b613212565b613384565b9050919050565b6133bc81613391565b82525050565b60006020820190506133d760008301846133b3565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000613413601783612b53565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b60006134548261279c565b915061345f8361279c565b925082820390506bffffffffffffffffffffffff81111561348357613482612f41565b5b92915050565b60006134a461349f61349a846125fc565b613212565b61279c565b9050919050565b6134b481613489565b82525050565b60006040820190506134cf60008301856129fe565b6134dc60208301846134ab565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613519602083612b53565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613585601083612b53565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135f1601183612b53565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061365d600c83612b53565b915061366882613627565b602082019050919050565b6000602082019050818103600083015261368c81613650565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136c9601083612b53565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613735601983612b53565b9150613740826136ff565b602082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137c7602b83612b53565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613833601483612b53565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b905091905056fea26474726f6e58221220a0b5d1d23c5807c0b800878d8b512f00901dabc450a8ba5180118337893af2a464736f6c63430008120033", - "sourceMap": "390:6893:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6893;;5939:280:6;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:14:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6893:0:-;;;;;;;", - "deployedSourceMap": "390:6893:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:5;;;:::i;:::-;;5669:926:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6984:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6828:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:4;;;:::i;:::-;;1709:1369:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7172:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4135:1495:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:5;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:7:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5669:926:0:-;5750:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5820:5:::1;:15;5826:8;5820:15;;;;;;;;;;;:27;;;;;;;;;;;;5819:28;5811:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5879:5;:15;5885:8;5879:15;;;;;;;;;;;:26;;;;;;;;;;;;5878:27;5870:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5966:4;5935:5;:15;5941:8;5935:15;;;;;;;;;;;:27;;;:35;;5927:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6049:5;:15;6055:8;6049:15;;;;;;;;;;;:21;;;;;;;;;;;;6042:38;;;6081:15;;;;;;;;;;;6098:4;6042:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6161:4;6132:5;:15;6138:8;6132:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6198:1;6169:5;:15;6175:8;6169:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6238:20;6316:4;6286:5;:15;6292:8;6286:15;;;;;;;;;;;:27;;;6261:5;:15;6267:8;6261:15;;;;;;;;;;;:22;;;:52;;;;:::i;:::-;:59;;;;:::i;:::-;6238:82;;6397:5;:15;6403:8;6397:15;;;;;;;;;;;:21;;;;;;;;;;;;6390:38;;;6433:5;:15;6439:8;6433:15;;;;;;;;;;;:29;;;;;;;;;;;;6482:5;:15;6488:8;6482:15;;;;;;;;;;;:25;;;6467:12;:40;;;;:::i;:::-;6390:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6566:8;6546:29;6560:4;6546:29;;;;;;:::i;:::-;;;;;;;;6587:4;6580:11;;;5669:926:::0;;;;:::o;6984:142::-;7049:4;7092:1;7063:17;:25;7081:6;7063:25;;;;;;;;;;;;;;;;:30;7059:47;;7102:4;7095:11;;;;7059:47;7117:5;7110:12;;6984:142;;;;:::o;6828:107::-;6891:12;;:::i;:::-;6916:5;:15;6922:8;6916:15;;;;;;;;;;;6909:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:107;;;:::o;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1369:0:-;1928:15;1503:19:7;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2562:18;;;;;;;;;;;2552:28;;:7;;:28;;;;:::i;:::-;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:63;;;;:::i;:::-;2495:86;;2602:298;;;;;;;;2621:10;2602:298;;;;;;2643:6;2602:298;;;;;;2674:19;2602:298;;;;;;2709:10;2602:298;;;;2737:12;2602:298;;;;2767:5;2602:298;;;;;;2789:5;2602:298;;;;;;2814:14;2602:298;;;;;;2852:7;;2602:298;;;;;;;;2883:12;2873:7;:22;;;;:::i;:::-;2602:298;;::::0;2585:5:::1;:14;2591:7;2585:14;;;;;;;;;;;:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2994:5;:14;3000:7;2994:14;;;;;;;;;;;:21;;;2983:6;2940:134;;2957:5;:14;2963:7;2957:14;;;;;;;;;;;:21;;;;;;;;;;;;2940:134;;;3020:12;3037:7;3049:5;3059:11;;2940:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1133;1709:1369:::0;;;;;;;;;;:::o;795:114::-;3279:19:6;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:5;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7172:109:0:-;7220:6;7228:7;7249:18;;;;;;;;;;;7269:7;;7241:36;;;;7172:109;;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4135:1495:0:-;4287:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4357:5:::1;:15;4363:8;4357:15;;;;;;;;;;;:27;;;;;;;;;;;;4356:28;4348:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4416:5;:15;4422:8;4416:15;;;;;;;;;;;:26;;;;;;;;;;;;4415:27;4407:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4497:13;4513:5;:15;4519:8;4513:15;;;;;;;;;;;:21;;;;;;;;;;;;4497:37;;4631:14;4601:44;;:5;:15;4607:8;4601:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4684:1;4654:5;:15;4660:8;4654:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4650:604:::1;;4767:4;4737:5;:15;4743:8;4737:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4810:1;4781:5;:15;4787:8;4781:15;;;;;;;;;;;:25;;;:30;4777:321;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:21;;;;;;;;;;;;4846:38;;;4891:5;:15;4897:8;4891:15;;;;;;;;;;;:34;;;;;;;;;;;;4932:5;:15;4938:8;4932:15;;;;;;;;;;;:25;;;4846:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5061:5;:15;5067:8;5061:15;;;;;;;;;;;:25;;;5020:5;:15;5026:8;5020:15;;;;;;;;;;;:34;;;;;;;;;;;;4993:99;;;;;;;;;;;;4777:321;5138:1;5107:5;:15;5113:8;5107:15;;;;;;;;;;;:27;;;:32;5103:147;;5183:5;5176:22;;;5199:15;;;;;;;;;;;5216:5;:15;5222:8;5216:15;;;;;;;;;;;:27;;;5176:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5103:147;4650:604;5294:31;5372:7;;5354:14;5329:39;;:5;:15;5335:8;5329:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5328:51;;;;:::i;:::-;5294:85;;5409:23;5383:5;:15;5389:8;5383:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5443:5;5436:22;;;5459:18;5479:23;5436:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5575:18;5537:73;;5565:8;5537:73;5550:13;5595:14;5537:73;;;;;;;:::i;:::-;;;;;;;;5622:4;5615:11;;;;4135:1495:::0;;;;;;:::o;1436:178:4:-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:7:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2031:106:7:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3471:427:0:-;3663:1;3634:17;:25;3652:6;3634:25;;;;;;;;;;;;;;;;:30;3626:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3709:1;3698:7;:12;3690:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3765:1;3739:28;;:14;:28;;;3731:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3811:1;3797:10;:15;3793:102;;3858:1;3827:33;;:19;:33;;;3819:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3793:102;3471:427;;;;;:::o;1423:320:8:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:4:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:4::1;:24;:26::i;:::-;889:100::o:0;1084:97:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:7::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:5::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:7::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:14:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:191;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21253:1;21250;21246:9;21239:16;;21274:3;21271:1;21268:10;21265:36;;;21281:18;;:::i;:::-;21265:36;21117:191;;;;:::o;21314:194::-;21354:4;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21408:20;21426:1;21408:20;:::i;:::-;21403:25;;21452:1;21449;21445:9;21437:17;;21476:1;21470:4;21467:11;21464:37;;;21481:18;;:::i;:::-;21464:37;21314:194;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", - "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / (MAX_BPS + protocolFeePercent);\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount - _protocolFee\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (order[_orderId].protocolFee != 0) {\n\t\t\t\t// transfer protocol fee\n\t\t\t\tIERC20(token).transfer(treasuryAddress, order[_orderId].protocolFee);\n\t\t\t}\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61388080620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", + "sourceMap": "390:6914:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6914;;5939:280:6;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:14:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6914:0:-;;;;;;;", + "deployedSourceMap": "390:6914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:5;;;:::i;:::-;;5690:926:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7005:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6849:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:4;;;:::i;:::-;;1709:1331:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7193:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:1554:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:5;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:7:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5690:926:0:-;5771:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:5:::1;:15;5847:8;5841:15;;;;;;;;;;;:27;;;;;;;;;;;;5840:28;5832:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:5;:15;5906:8;5900:15;;;;;;;;;;;:26;;;;;;;;;;;;5899:27;5891:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5987:4;5956:5;:15;5962:8;5956:15;;;;;;;;;;;:27;;;:35;;5948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:5;:15;6076:8;6070:15;;;;;;;;;;;:21;;;;;;;;;;;;6063:38;;;6102:15;;;;;;;;;;;6119:4;6063:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6182:4;6153:5;:15;6159:8;6153:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6219:1;6190:5;:15;6196:8;6190:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6259:20;6337:4;6307:5;:15;6313:8;6307:15;;;;;;;;;;;:27;;;6282:5;:15;6288:8;6282:15;;;;;;;;;;;:22;;;:52;;;;:::i;:::-;:59;;;;:::i;:::-;6259:82;;6418:5;:15;6424:8;6418:15;;;;;;;;;;;:21;;;;;;;;;;;;6411:38;;;6454:5;:15;6460:8;6454:15;;;;;;;;;;;:29;;;;;;;;;;;;6503:5;:15;6509:8;6503:15;;;;;;;;;;;:25;;;6488:12;:40;;;;:::i;:::-;6411:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6587:8;6567:29;6581:4;6567:29;;;;;;:::i;:::-;;;;;;;;6608:4;6601:11;;;5690:926:::0;;;;:::o;7005:142::-;7070:4;7113:1;7084:17;:25;7102:6;7084:25;;;;;;;;;;;;;;;;:30;7080:47;;7123:4;7116:11;;;;7080:47;7138:5;7131:12;;7005:142;;;;:::o;6849:107::-;6912:12;;:::i;:::-;6937:5;:15;6943:8;6937:15;;;;;;;;;;;6930:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:107;;;:::o;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1331:0:-;1928:15;1503:19:7;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2551:7;;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:40;;;;:::i;:::-;2495:63;;2579:283;;;;;;;;2598:10;2579:283;;;;;;2620:6;2579:283;;;;;;2651:19;2579:283;;;;;;2686:10;2579:283;;;;2714:12;2579:283;;;;2744:5;2579:283;;;;;;2766:5;2579:283;;;;;;2791:14;2579:283;;;;;;2829:7;;2579:283;;;;;;;;2850:7;2579:283;;::::0;2562:5:::1;:14;2568:7;2562:14;;;;;;;;;;;:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;:14;2962:7;2956:14;;;;;;;;;;;:21;;;2945:6;2902:134;;2919:5;:14;2925:7;2919:14;;;;;;;;;;;:21;;;;;;;;;;;;2902:134;;;2982:12;2999:7;3011:5;3021:11;;2902:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1095;1709:1331:::0;;;;;;;;;;:::o;795:114::-;3279:19:6;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:5;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7193:109:0:-;7241:6;7249:7;7270:18;;;;;;;;;;;7290:7;;7262:36;;;;7193:109;;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4097:1554:0:-;4249:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:5:::1;:15;4325:8;4319:15;;;;;;;;;;;:27;;;;;;;;;;;;4318:28;4310:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:5;:15;4384:8;4378:15;;;;;;;;;;;:26;;;;;;;;;;;;4377:27;4369:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:13;4475:5;:15;4481:8;4475:15;;;;;;;;;;;:21;;;;;;;;;;;;4459:37;;4593:14;4563:44;;:5;:15;4569:8;4563:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4646:1;4616:5;:15;4622:8;4616:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4612:453:::1;;4729:4;4699:5;:15;4705:8;4699:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4772:1;4743:5;:15;4749:8;4743:15;;;;;;;;;;;:25;;;:30;4739:321;;4815:5;:15;4821:8;4815:15;;;;;;;;;;;:21;;;;;;;;;;;;4808:38;;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:34;;;;;;;;;;;;4894:5;:15;4900:8;4894:15;;;;;;;;;;;:25;;;4808:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5023:5;:15;5029:8;5023:15;;;;;;;;;;;:25;;;4982:5;:15;4988:8;4982:15;;;;;;;;;;;:34;;;;;;;;;;;;4955:99;;;;;;;;;;;;4739:321;4612:453;5105:31;5183:7;;5165:14;5140:39;;:5;:15;5146:8;5140:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5139:51;;;;:::i;:::-;5105:85;;5220:23;5194:5;:15;5200:8;5194:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5248:19;5319:7;;5297:18;;;;;;;;;;;5271:44;;:23;:44;;;;:::i;:::-;5270:56;;;;:::i;:::-;5248:78;;5357:11;5330:38;;;;;:::i;:::-;;;5407:5;5400:22;;;5423:15;;;;;;;;;;;5440:11;5400:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5464:5;5457:22;;;5480:18;5500:23;5457:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5596:18;5558:73;;5586:8;5558:73;5571:13;5616:14;5558:73;;;;;;;:::i;:::-;;;;;;;;5643:4;5636:11;;;;;4097:1554:::0;;;;;;:::o;1436:178:4:-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:7:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2031:106:7:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3433:427:0:-;3625:1;3596:17;:25;3614:6;3596:25;;;;;;;;;;;;;;;;:30;3588:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:1;3660:7;:12;3652:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:1;3701:28;;:14;:28;;;3693:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3773:1;3759:10;:15;3755:102;;3820:1;3789:33;;:19;:33;;;3781:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3755:102;3433:427;;;;;:::o;1423:320:8:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:4:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:4::1;:24;:26::i;:::-;889:100::o:0;1084:97:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:7::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:5::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:7::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:14:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:191;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21253:1;21250;21246:9;21239:16;;21274:3;21271:1;21268:10;21265:36;;;21281:18;;:::i;:::-;21265:36;21117:191;;;;:::o;21314:194::-;21354:4;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21408:20;21426:1;21408:20;:::i;:::-;21403:25;;21452:1;21449;21445:9;21437:17;;21476:1;21470:4;21467:11;21464:37;;;21481:18;;:::i;:::-;21464:37;21314:194;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\n\t\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\n\t\tliquidityProviderAmount -= protocolFee;\n\n\t\t// transfer protocol fee\n\t\tIERC20(token).transfer(treasuryAddress, protocolFee);\n\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Gateway": [ - 582 + 579 ], "GatewaySettingManager": [ - 766 + 763 ], "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 583, + "id": 580, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -680,20 +680,20 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 1512, + "scope": 580, + "sourceUnit": 1509, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "file": "./GatewaySettingManager.sol", "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 767, + "scope": 580, + "sourceUnit": 764, "src": "145:66:0", "symbolAliases": [ { @@ -702,7 +702,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "153:21:0", "typeDescriptions": {} }, @@ -712,13 +712,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "file": "./interfaces/IGateway.sol", "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 905, + "scope": 580, + "sourceUnit": 902, "src": "212:59:0", "symbolAliases": [ { @@ -727,7 +727,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "220:8:0", "typeDescriptions": {} }, @@ -739,7 +739,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "230:6:0", "typeDescriptions": {} }, @@ -759,7 +759,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "410:8:0" }, "id": 10, @@ -774,7 +774,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "420:21:0" }, "id": 12, @@ -789,7 +789,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1511, + "referencedDeclaration": 1508, "src": "443:19:0" }, "id": 14, @@ -807,16 +807,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 582, + "id": 579, "linearizedBaseContracts": [ - 582, - 1511, - 766, - 1081, - 1214, - 1892, - 1383, - 904 + 579, + 1508, + 763, + 1078, + 1211, + 1889, + 1380, + 901 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -884,7 +884,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 582, + "scope": 579, "src": "466:73:0", "visibility": "public" }, @@ -895,12 +895,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -920,7 +920,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -935,13 +935,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -955,7 +955,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -1005,7 +1005,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -1065,7 +1065,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1364, + "referencedDeclaration": 1361, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1119,7 +1119,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 582, + "scope": 579, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -1143,7 +1143,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, + "referencedDeclaration": 586, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1187,7 +1187,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, + "referencedDeclaration": 998, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1223,7 +1223,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1415, + "referencedDeclaration": 1412, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1273,7 +1273,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1285, + "referencedDeclaration": 1282, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -1295,7 +1295,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 582, + "scope": 579, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -1354,7 +1354,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1471,7 +1471,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, + "referencedDeclaration": 1486, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1521,7 +1521,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -1543,7 +1543,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 582, + "scope": 579, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -1564,7 +1564,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1505, + "referencedDeclaration": 1502, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1614,7 +1614,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -1636,7 +1636,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 582, + "scope": 579, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -1644,12 +1644,12 @@ }, { "baseFunctions": [ - 854 + 851 ], "body": { - "id": 217, + "id": 212, "nodeType": "Block", - "src": "1945:1133:0", + "src": "1945:1095:0", "statements": [ { "expression": { @@ -1742,7 +1742,7 @@ "name": "_handler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 274, + "referencedDeclaration": 269, "src": "1979:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -1980,7 +1980,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } } @@ -1988,7 +1988,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } ], @@ -2111,10 +2111,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, @@ -2130,7 +2130,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, @@ -2142,7 +2142,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2556, + "referencedDeclaration": 2553, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -2456,7 +2456,7 @@ "name": "_protocolFee", "nameLocation": "2503:12:0", "nodeType": "VariableDeclaration", - "scope": 217, + "scope": 212, "src": "2495:20:0", "stateVariable": false, "storageLocation": "default", @@ -2477,13 +2477,13 @@ "visibility": "internal" } ], - "id": 177, + "id": 174, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -2519,7 +2519,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -2549,100 +2549,54 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 172, - "name": "MAX_BPS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2552:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 173, - "name": "protocolFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2562:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2552:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 175, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2551:30:0", + "id": 172, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2518:63:0", + "src": "2518:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2495:86:0" + "src": "2495:63:0" }, { "expression": { - "id": 199, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 178, + "id": 175, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2585:5:0", + "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 180, + "id": 177, "indexExpression": { - "id": 179, + "id": 176, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2591:7:0", + "src": "2568:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2653,9 +2607,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2585:14:0", + "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -2665,74 +2619,74 @@ "arguments": [ { "expression": { - "id": 182, + "id": 179, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2621:3:0", + "src": "2598:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2625:6:0", + "memberLocation": "2602:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2621:10:0", + "src": "2598:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 184, + "id": 181, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2643:6:0", + "src": "2620:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 185, + "id": 182, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99, - "src": "2674:19:0", + "src": "2651:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 186, + "id": 183, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, - "src": "2709:10:0", + "src": "2686:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 187, + "id": 184, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "2737:12:0", + "src": "2714:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2740,14 +2694,14 @@ }, { "hexValue": "66616c7365", - "id": 188, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:5:0", + "src": "2744:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2756,14 +2710,14 @@ }, { "hexValue": "66616c7365", - "id": 189, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2789:5:0", + "src": "2766:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2771,12 +2725,12 @@ "value": "false" }, { - "id": 190, + "id": 187, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, - "src": "2814:14:0", + "src": "2791:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2785,12 +2739,12 @@ { "arguments": [ { - "id": 193, + "id": 190, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2852:7:0", + "referencedDeclaration": 586, + "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2804,26 +2758,26 @@ "typeString": "uint256" } ], - "id": 192, + "id": 189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 191, + "id": 188, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": {} } }, - "id": 194, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -2832,7 +2786,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2845:15:0", + "src": "2822:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -2840,42 +2794,12 @@ } }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 195, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2873:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 196, - "name": "_protocolFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2883:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2873:22:0", + "id": 192, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2850:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2925,34 +2849,34 @@ "typeString": "uint256" } ], - "id": 181, + "id": 178, "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "2602:5:0", + "referencedDeclaration": 831, + "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$834_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, - "id": 198, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2613:6:0", - "2636:5:0", - "2654:18:0", - "2698:9:0", - "2724:11:0", - "2754:11:0", - "2777:10:0", - "2799:13:0", - "2833:10:0", - "2865:6:0" + "2590:6:0", + "2613:5:0", + "2631:18:0", + "2675:9:0", + "2701:11:0", + "2731:11:0", + "2754:10:0", + "2776:13:0", + "2810:10:0", + "2842:6:0" ], "names": [ "sender", @@ -2967,22 +2891,22 @@ "amount" ], "nodeType": "FunctionCall", - "src": "2602:298:0", + "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order memory" } }, - "src": "2585:315:0", + "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 200, + "id": 195, "nodeType": "ExpressionStatement", - "src": "2585:315:0" + "src": "2562:300:0" }, { "eventCall": { @@ -2990,25 +2914,25 @@ { "expression": { "baseExpression": { - "id": 202, + "id": 197, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2957:5:0", + "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 204, + "id": 199, "indexExpression": { - "id": 203, + "id": 198, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2963:7:0", + "src": "2925:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3019,34 +2943,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2957:14:0", + "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 205, + "id": 200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2972:6:0", + "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "2957:21:0", + "referencedDeclaration": 812, + "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 206, + "id": 201, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2983:6:0", + "src": "2945:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3055,25 +2979,25 @@ { "expression": { "baseExpression": { - "id": 207, + "id": 202, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2994:5:0", + "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 209, + "id": 204, "indexExpression": { - "id": 208, + "id": 203, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3000:7:0", + "src": "2962:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3084,70 +3008,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2994:14:0", + "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 210, + "id": 205, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3009:6:0", + "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "2994:21:0", + "referencedDeclaration": 830, + "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 211, + "id": 206, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "3020:12:0", + "src": "2982:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 212, + "id": 207, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3037:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 213, + "id": 208, "name": "_rate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, - "src": "3049:5:0", + "src": "3011:5:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, { - "id": 214, + "id": 209, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, - "src": "3059:11:0", + "src": "3021:11:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -3185,18 +3109,18 @@ "typeString": "string calldata" } ], - "id": 201, + "id": 196, "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "2940:12:0", + "referencedDeclaration": 785, + "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes32,uint256,string memory)" } }, - "id": 215, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -3205,16 +3129,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2940:134:0", + "src": "2902:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 216, + "id": 211, "nodeType": "EmitStatement", - "src": "2935:139:0" + "src": "2897:139:0" } ] }, @@ -3225,7 +3149,7 @@ "text": "@dev See {createOrder-IGateway}. " }, "functionSelector": "809804f7", - "id": 218, + "id": 213, "implemented": true, "kind": "function", "modifiers": [ @@ -3239,7 +3163,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -3260,7 +3184,7 @@ "name": "_token", "nameLocation": "1741:6:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1733:14:0", "stateVariable": false, "storageLocation": "default", @@ -3288,7 +3212,7 @@ "name": "_amount", "nameLocation": "1759:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1751:15:0", "stateVariable": false, "storageLocation": "default", @@ -3315,7 +3239,7 @@ "name": "_rate", "nameLocation": "1777:5:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1770:12:0", "stateVariable": false, "storageLocation": "default", @@ -3342,7 +3266,7 @@ "name": "_senderFeeRecipient", "nameLocation": "1794:19:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1786:27:0", "stateVariable": false, "storageLocation": "default", @@ -3370,7 +3294,7 @@ "name": "_senderFee", "nameLocation": "1825:10:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1817:18:0", "stateVariable": false, "storageLocation": "default", @@ -3397,7 +3321,7 @@ "name": "_refundAddress", "nameLocation": "1847:14:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1839:22:0", "stateVariable": false, "storageLocation": "default", @@ -3425,7 +3349,7 @@ "name": "messageHash", "nameLocation": "1881:11:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1865:27:0", "stateVariable": false, "storageLocation": "calldata", @@ -3459,7 +3383,7 @@ "name": "orderId", "nameLocation": "1936:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1928:15:0", "stateVariable": false, "storageLocation": "default", @@ -3482,17 +3406,17 @@ ], "src": "1927:17:0" }, - "scope": 582, - "src": "1709:1369:0", + "scope": 579, + "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 273, + "id": 268, "nodeType": "Block", - "src": "3622:276:0", + "src": "3584:276:0", "statements": [ { "expression": { @@ -3502,32 +3426,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 237, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 233, + "id": 228, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "3634:17:0", + "referencedDeclaration": 596, + "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 235, + "id": 230, "indexExpression": { - "id": 234, + "id": 229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3652:6:0", + "referencedDeclaration": 216, + "src": "3614:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3538,7 +3462,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3634:25:0", + "src": "3596:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3548,21 +3472,21 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 236, + "id": 231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:1:0", + "src": "3625:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3634:30:0", + "src": "3596:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3570,14 +3494,14 @@ }, { "hexValue": "546f6b656e4e6f74537570706f72746564", - "id": 238, + "id": 233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3666:19:0", + "src": "3628:19:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1", "typeString": "literal_string \"TokenNotSupported\"" @@ -3596,7 +3520,7 @@ "typeString": "literal_string \"TokenNotSupported\"" } ], - "id": 232, + "id": 227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3604,13 +3528,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3626:7:0", + "src": "3588:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 239, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -3619,16 +3543,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3626:60:0", + "src": "3588:60:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 240, + "id": 235, "nodeType": "ExpressionStatement", - "src": "3626:60:0" + "src": "3588:60:0" }, { "expression": { @@ -3638,18 +3562,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 244, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 242, + "id": 237, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "3698:7:0", + "referencedDeclaration": 218, + "src": "3660:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3659,21 +3583,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 243, + "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:1:0", + "src": "3671:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3698:12:0", + "src": "3660:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3681,14 +3605,14 @@ }, { "hexValue": "416d6f756e7449735a65726f", - "id": 245, + "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:14:0", + "src": "3674:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2", "typeString": "literal_string \"AmountIsZero\"" @@ -3707,7 +3631,7 @@ "typeString": "literal_string \"AmountIsZero\"" } ], - "id": 241, + "id": 236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3715,13 +3639,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3690:7:0", + "src": "3652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 246, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,16 +3654,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3690:37:0", + "src": "3652:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 247, + "id": 242, "nodeType": "ExpressionStatement", - "src": "3690:37:0" + "src": "3652:37:0" }, { "expression": { @@ -3749,18 +3673,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 254, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 249, + "id": 244, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3739:14:0", + "referencedDeclaration": 220, + "src": "3701:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3772,14 +3696,14 @@ "arguments": [ { "hexValue": "30", - "id": 252, + "id": 247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3765:1:0", + "src": "3727:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3794,26 +3718,26 @@ "typeString": "int_const 0" } ], - "id": 251, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 250, + "id": 245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": {} } }, - "id": 253, + "id": 248, "isConstant": false, "isLValue": false, "isPure": true, @@ -3822,14 +3746,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3757:10:0", + "src": "3719:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3739:28:0", + "src": "3701:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3837,14 +3761,14 @@ }, { "hexValue": "5468726f775a65726f41646472657373", - "id": 255, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3769:18:0", + "src": "3731:18:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7", "typeString": "literal_string \"ThrowZeroAddress\"" @@ -3863,7 +3787,7 @@ "typeString": "literal_string \"ThrowZeroAddress\"" } ], - "id": 248, + "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3871,13 +3795,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3731:7:0", + "src": "3693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 256, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -3886,16 +3810,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3731:57:0", + "src": "3693:57:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 257, + "id": 252, "nodeType": "ExpressionStatement", - "src": "3731:57:0" + "src": "3693:57:0" }, { "condition": { @@ -3903,18 +3827,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 258, + "id": 253, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "3797:10:0", + "referencedDeclaration": 224, + "src": "3759:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3924,33 +3848,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 259, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3811:1:0", + "src": "3773:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3797:15:0", + "src": "3759:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 272, + "id": 267, "nodeType": "IfStatement", - "src": "3793:102:0", + "src": "3755:102:0", "trueBody": { - "id": 271, + "id": 266, "nodeType": "Block", - "src": "3814:81:0", + "src": "3776:81:0", "statements": [ { "expression": { @@ -3960,18 +3884,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 262, + "id": 257, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3827:19:0", + "referencedDeclaration": 222, + "src": "3789:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3983,14 +3907,14 @@ "arguments": [ { "hexValue": "30", - "id": 265, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:1:0", + "src": "3820:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4005,26 +3929,26 @@ "typeString": "int_const 0" } ], - "id": 264, + "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 263, + "id": 258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": {} } }, - "id": 266, + "id": 261, "isConstant": false, "isLValue": false, "isPure": true, @@ -4033,14 +3957,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3850:10:0", + "src": "3812:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3827:33:0", + "src": "3789:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4048,14 +3972,14 @@ }, { "hexValue": "496e76616c696453656e646572466565526563697069656e74", - "id": 268, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3862:27:0", + "src": "3824:27:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8", "typeString": "literal_string \"InvalidSenderFeeRecipient\"" @@ -4074,7 +3998,7 @@ "typeString": "literal_string \"InvalidSenderFeeRecipient\"" } ], - "id": 261, + "id": 256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4082,13 +4006,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3819:7:0", + "src": "3781:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 269, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -4097,16 +4021,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3819:71:0", + "src": "3781:71:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 270, + "id": 265, "nodeType": "ExpressionStatement", - "src": "3819:71:0" + "src": "3781:71:0" } ] } @@ -4114,31 +4038,31 @@ ] }, "documentation": { - "id": 219, + "id": 214, "nodeType": "StructuredDocumentation", - "src": "3081:388:0", + "src": "3043:388:0", "text": " @dev Internal function to handle order creation.\n @param _token The address of the token being traded.\n @param _amount The amount of tokens being traded.\n @param _refundAddress The address to refund the tokens in case of cancellation.\n @param _senderFeeRecipient The address of the recipient for the sender fee.\n @param _senderFee The amount of the sender fee." }, - "id": 274, + "id": 269, "implemented": true, "kind": "function", "modifiers": [], "name": "_handler", - "nameLocation": "3480:8:0", + "nameLocation": "3442:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 221, + "id": 216, "mutability": "mutable", "name": "_token", - "nameLocation": "3500:6:0", + "nameLocation": "3462:6:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3492:14:0", + "scope": 269, + "src": "3454:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4146,10 +4070,10 @@ "typeString": "address" }, "typeName": { - "id": 220, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3492:7:0", + "src": "3454:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4160,13 +4084,13 @@ }, { "constant": false, - "id": 223, + "id": 218, "mutability": "mutable", "name": "_amount", - "nameLocation": "3518:7:0", + "nameLocation": "3480:7:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3510:15:0", + "scope": 269, + "src": "3472:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4174,10 +4098,10 @@ "typeString": "uint256" }, "typeName": { - "id": 222, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3510:7:0", + "src": "3472:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4187,13 +4111,13 @@ }, { "constant": false, - "id": 225, + "id": 220, "mutability": "mutable", "name": "_refundAddress", - "nameLocation": "3537:14:0", + "nameLocation": "3499:14:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3529:22:0", + "scope": 269, + "src": "3491:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4201,10 +4125,10 @@ "typeString": "address" }, "typeName": { - "id": 224, + "id": 219, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3529:7:0", + "src": "3491:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4215,13 +4139,13 @@ }, { "constant": false, - "id": 227, + "id": 222, "mutability": "mutable", "name": "_senderFeeRecipient", - "nameLocation": "3563:19:0", + "nameLocation": "3525:19:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3555:27:0", + "scope": 269, + "src": "3517:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4229,10 +4153,10 @@ "typeString": "address" }, "typeName": { - "id": 226, + "id": 221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3555:7:0", + "src": "3517:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4243,13 +4167,13 @@ }, { "constant": false, - "id": 229, + "id": 224, "mutability": "mutable", "name": "_senderFee", - "nameLocation": "3594:10:0", + "nameLocation": "3556:10:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3586:18:0", + "scope": 269, + "src": "3548:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4257,10 +4181,10 @@ "typeString": "uint256" }, "typeName": { - "id": 228, + "id": 223, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3586:7:0", + "src": "3548:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4269,34 +4193,34 @@ "visibility": "internal" } ], - "src": "3488:119:0" + "src": "3450:119:0" }, "returnParameters": { - "id": 231, + "id": 226, "nodeType": "ParameterList", "parameters": [], - "src": "3622:0:0" + "src": "3584:0:0" }, - "scope": 582, - "src": "3471:427:0", + "scope": 579, + "src": "3433:427:0", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ - 868 + 865 ], "body": { - "id": 428, + "id": 425, "nodeType": "Block", - "src": "4293:1337:0", + "src": "4255:1396:0", "statements": [ { "expression": { "arguments": [ { - "id": 295, + "id": 290, "isConstant": false, "isLValue": false, "isPure": false, @@ -4304,29 +4228,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4356:28:0", + "src": "4318:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 291, + "id": 286, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4357:5:0", + "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 293, + "id": 288, "indexExpression": { - "id": 292, + "id": 287, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4363:8:0", + "referencedDeclaration": 274, + "src": "4325:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4337,22 +4261,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4357:15:0", + "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 294, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4373:11:0", + "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4357:27:0", + "referencedDeclaration": 822, + "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4365,14 +4289,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 296, + "id": 291, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4386:16:0", + "src": "4348:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -4391,7 +4315,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 290, + "id": 285, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4399,13 +4323,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4348:7:0", + "src": "4310:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 297, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -4414,22 +4338,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4348:55:0", + "src": "4310:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 298, + "id": 293, "nodeType": "ExpressionStatement", - "src": "4348:55:0" + "src": "4310:55:0" }, { "expression": { "arguments": [ { - "id": 304, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -4437,29 +4361,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4415:27:0", + "src": "4377:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 300, + "id": 295, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4416:5:0", + "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 302, + "id": 297, "indexExpression": { - "id": 301, + "id": 296, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4422:8:0", + "referencedDeclaration": 274, + "src": "4384:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4470,22 +4394,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4416:15:0", + "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 303, + "id": 298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4432:10:0", + "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "4416:26:0", + "referencedDeclaration": 824, + "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4498,14 +4422,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 305, + "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4444:15:0", + "src": "4406:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -4524,7 +4448,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 299, + "id": 294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4532,13 +4456,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4407:7:0", + "src": "4369:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 301, "isConstant": false, "isLValue": false, "isPure": false, @@ -4547,31 +4471,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4407:53:0", + "src": "4369:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 302, "nodeType": "ExpressionStatement", - "src": "4407:53:0" + "src": "4369:53:0" }, { "assignments": [ - 309 + 304 ], "declarations": [ { "constant": false, - "id": 309, + "id": 304, "mutability": "mutable", "name": "token", - "nameLocation": "4505:5:0", + "nameLocation": "4467:5:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "4497:13:0", + "scope": 425, + "src": "4459:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4579,10 +4503,10 @@ "typeString": "address" }, "typeName": { - "id": 308, + "id": 303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4497:7:0", + "src": "4459:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4592,29 +4516,29 @@ "visibility": "internal" } ], - "id": 314, + "id": 309, "initialValue": { "expression": { "baseExpression": { - "id": 310, + "id": 305, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4513:5:0", + "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 312, + "id": 307, "indexExpression": { - "id": 311, + "id": 306, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4519:8:0", + "referencedDeclaration": 274, + "src": "4481:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4625,33 +4549,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4513:15:0", + "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 313, + "id": 308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4529:5:0", + "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4513:21:0", + "referencedDeclaration": 814, + "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4497:37:0" + "src": "4459:37:0" }, { "expression": { - "id": 320, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, @@ -4659,25 +4583,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 315, + "id": 310, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4601:5:0", + "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 317, + "id": 312, "indexExpression": { - "id": 316, + "id": 311, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4607:8:0", + "referencedDeclaration": 274, + "src": "4569:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4688,22 +4612,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4601:15:0", + "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 318, + "id": 313, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4617:10:0", + "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4601:26:0", + "referencedDeclaration": 828, + "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -4712,26 +4636,26 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 319, + "id": 314, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4631:14:0", + "referencedDeclaration": 278, + "src": "4593:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "4601:44:0", + "src": "4563:44:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 321, + "id": 316, "nodeType": "ExpressionStatement", - "src": "4601:44:0" + "src": "4563:44:0" }, { "condition": { @@ -4739,7 +4663,7 @@ "typeIdentifier": "t_uint96", "typeString": "uint96" }, - "id": 327, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -4747,25 +4671,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 322, + "id": 317, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4654:5:0", + "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 324, + "id": 319, "indexExpression": { - "id": 323, + "id": 318, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4660:8:0", + "referencedDeclaration": 274, + "src": "4622:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4776,22 +4700,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4654:15:0", + "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 325, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4670:10:0", + "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4654:26:0", + "referencedDeclaration": 828, + "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -4801,37 +4725,37 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 326, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4684:1:0", + "src": "4646:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4654:31:0", + "src": "4616:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 391, + "id": 367, "nodeType": "IfStatement", - "src": "4650:604:0", + "src": "4612:453:0", "trueBody": { - "id": 390, + "id": 366, "nodeType": "Block", - "src": "4687:567:0", + "src": "4649:416:0", "statements": [ { "expression": { - "id": 333, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, @@ -4839,25 +4763,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 328, + "id": 323, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4737:5:0", + "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 330, + "id": 325, "indexExpression": { - "id": 329, + "id": 324, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4743:8:0", + "referencedDeclaration": 274, + "src": "4705:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4868,22 +4792,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4737:15:0", + "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 331, + "id": 326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4753:11:0", + "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4737:27:0", + "referencedDeclaration": 822, + "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4893,29 +4817,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 332, + "id": 327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4767:4:0", + "src": "4729:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4737:34:0", + "src": "4699:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 334, + "id": 329, "nodeType": "ExpressionStatement", - "src": "4737:34:0" + "src": "4699:34:0" }, { "condition": { @@ -4923,7 +4847,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 340, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -4931,25 +4855,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 335, + "id": 330, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4781:5:0", + "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 337, + "id": 332, "indexExpression": { - "id": 336, + "id": 331, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4787:8:0", + "referencedDeclaration": 274, + "src": "4749:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4960,22 +4884,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4781:15:0", + "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 338, + "id": 333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4797:9:0", + "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4781:25:0", + "referencedDeclaration": 818, + "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4985,33 +4909,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 339, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4810:1:0", + "src": "4772:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4781:30:0", + "src": "4743:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 370, + "id": 365, "nodeType": "IfStatement", - "src": "4777:321:0", + "src": "4739:321:0", "trueBody": { - "id": 369, + "id": 364, "nodeType": "Block", - "src": "4813:285:0", + "src": "4775:285:0", "statements": [ { "expression": { @@ -5019,25 +4943,25 @@ { "expression": { "baseExpression": { - "id": 348, + "id": 343, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4891:5:0", + "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 350, + "id": 345, "indexExpression": { - "id": 349, + "id": 344, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4897:8:0", + "referencedDeclaration": 274, + "src": "4859:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5048,22 +4972,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4891:15:0", + "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 351, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4907:18:0", + "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "4891:34:0", + "referencedDeclaration": 816, + "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5072,25 +4996,25 @@ { "expression": { "baseExpression": { - "id": 352, + "id": 347, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4932:5:0", + "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 354, + "id": 349, "indexExpression": { - "id": 353, + "id": 348, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4938:8:0", + "referencedDeclaration": 274, + "src": "4900:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5101,22 +5025,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4932:15:0", + "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 355, + "id": 350, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4948:9:0", + "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4932:25:0", + "referencedDeclaration": 818, + "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5139,25 +5063,25 @@ { "expression": { "baseExpression": { - "id": 342, + "id": 337, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4853:5:0", + "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 344, + "id": 339, "indexExpression": { - "id": 343, + "id": 338, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4859:8:0", + "referencedDeclaration": 274, + "src": "4821:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5168,22 +5092,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4853:15:0", + "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 345, + "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4869:5:0", + "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4853:21:0", + "referencedDeclaration": 814, + "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5197,18 +5121,18 @@ "typeString": "address" } ], - "id": 341, + "id": 336, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "4846:6:0", + "referencedDeclaration": 2554, + "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 346, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -5217,29 +5141,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:29:0", + "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 347, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4876:8:0", + "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "4846:38:0", + "referencedDeclaration": 2521, + "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 356, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5248,16 +5172,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:117:0", + "src": "4808:117:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 357, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4846:117:0" + "src": "4808:117:0" }, { "eventCall": { @@ -5265,25 +5189,25 @@ { "expression": { "baseExpression": { - "id": 359, + "id": 354, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5020:5:0", + "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 361, + "id": 356, "indexExpression": { - "id": 360, + "id": 355, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5026:8:0", + "referencedDeclaration": 274, + "src": "4988:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5294,22 +5218,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5020:15:0", + "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 362, + "id": 357, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5036:18:0", + "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "5020:34:0", + "referencedDeclaration": 816, + "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5318,25 +5242,25 @@ { "expression": { "baseExpression": { - "id": 363, + "id": 358, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5061:5:0", + "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 365, + "id": 360, "indexExpression": { - "id": 364, + "id": 359, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5067:8:0", + "referencedDeclaration": 274, + "src": "5029:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5347,22 +5271,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5061:15:0", + "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 366, + "id": 361, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5077:9:0", + "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "5061:25:0", + "referencedDeclaration": 818, + "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5380,18 +5304,18 @@ "typeString": "uint256" } ], - "id": 358, + "id": 353, "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "4993:20:0", + "referencedDeclaration": 810, + "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 367, + "id": 362, "isConstant": false, "isLValue": false, "isPure": false, @@ -5400,27 +5324,75 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4993:99:0", + "src": "4955:99:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 368, + "id": 363, "nodeType": "EmitStatement", - "src": "4988:104:0" + "src": "4950:104:0" } ] } + } + ] + } + }, + { + "assignments": [ + 369 + ], + "declarations": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "liquidityProviderAmount", + "nameLocation": "5113:23:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "5105:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "condition": { + "visibility": "internal" + } + ], + "id": 379, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 376, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -5428,25 +5400,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 371, + "id": 370, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5107:5:0", + "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 373, + "id": 372, "indexExpression": { - "id": 372, + "id": 371, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5113:8:0", + "referencedDeclaration": 274, + "src": "5146:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5457,243 +5429,182 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5107:15:0", + "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 374, + "id": 373, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5123:11:0", - "memberName": "protocolFee", + "memberLocation": "5156:6:0", + "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5107:27:0", + "referencedDeclaration": 830, + "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "*", "rightExpression": { - "hexValue": "30", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5138:1:0", + "id": 374, + "name": "_settlePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "5165:14:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } }, - "src": "5107:32:0", + "src": "5140:39:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5139:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 377, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "5183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5105:85:0" + }, + { + "expression": { + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 380, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5194:5:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 389, - "nodeType": "IfStatement", - "src": "5103:147:0", - "trueBody": { - "id": 388, - "nodeType": "Block", - "src": "5141:109:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 381, - "name": "treasuryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "5199:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "id": 382, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5216:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 384, - "indexExpression": { - "id": 383, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5222:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5216:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5232:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5216:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 378, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5183:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 377, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", - "typeString": "contract IERC20" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5190:8:0", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5176:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "5176:68:0" - } - ] + "id": 382, + "indexExpression": { + "id": 381, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 274, + "src": "5200:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5194:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$831_storage", + "typeString": "struct IGateway.Order storage ref" } + }, + "id": 383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5210:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "5194:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 384, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5220:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 386, + "nodeType": "ExpressionStatement", + "src": "5194:49:0" }, { "assignments": [ - 393 + 388 ], "declarations": [ { "constant": false, - "id": 393, + "id": 388, "mutability": "mutable", - "name": "liquidityProviderAmount", - "nameLocation": "5302:23:0", + "name": "protocolFee", + "nameLocation": "5256:11:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "5294:31:0", + "scope": 425, + "src": "5248:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5701,10 +5612,10 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5294:7:0", + "src": "5248:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5713,13 +5624,13 @@ "visibility": "internal" } ], - "id": 403, + "id": 395, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 402, + "id": 394, "isConstant": false, "isLValue": false, "isPure": false, @@ -5731,59 +5642,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 399, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "expression": { - "baseExpression": { - "id": 394, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5329:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 396, - "indexExpression": { - "id": 395, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5335:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5329:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5345:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5329:22:0", + "id": 389, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5271:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5792,32 +5662,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 398, - "name": "_settlePercent", + "id": 390, + "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5354:14:0", + "referencedDeclaration": 588, + "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "5329:39:0", + "src": "5271:44:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 392, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5328:41:0", + "src": "5270:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5826,132 +5696,214 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 401, + "id": 393, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "5372:7:0", + "referencedDeclaration": 586, + "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5328:51:0", + "src": "5270:56:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5294:85:0" + "src": "5248:78:0" }, { "expression": { - "id": 409, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "id": 396, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5330:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 397, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5357:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5330:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5330:38:0" + }, + { + "expression": { + "arguments": [ + { + "id": 404, + "name": "treasuryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5423:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 405, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5440:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { - "baseExpression": { - "id": 404, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5383:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + "arguments": [ + { + "id": 401, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "5407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 406, - "indexExpression": { - "id": 405, - "name": "_orderId", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 400, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5389:8:0", + "referencedDeclaration": 2554, + "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeString": "type(contract IERC20)" } }, + "id": 402, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5383:15:0", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:13:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_contract$_IERC20_$2554", + "typeString": "contract IERC20" } }, - "id": 407, + "id": 403, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberLocation": "5399:6:0", - "memberName": "amount", + "lValueRequested": false, + "memberLocation": "5414:8:0", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5383:22:0", + "referencedDeclaration": 2521, + "src": "5400:22:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 408, - "name": "liquidityProviderAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5409:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "src": "5383:49:0", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:52:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 410, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5383:49:0" + "src": "5400:52:0" }, { "expression": { "arguments": [ { - "id": 415, + "id": 412, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5459:18:0", + "referencedDeclaration": 276, + "src": "5480:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 416, + "id": 413, "name": "liquidityProviderAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5479:23:0", + "referencedDeclaration": 369, + "src": "5500:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5972,12 +5924,12 @@ "expression": { "arguments": [ { - "id": 412, + "id": 409, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5443:5:0", + "referencedDeclaration": 304, + "src": "5464:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5991,18 +5943,18 @@ "typeString": "address" } ], - "id": 411, + "id": 408, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5436:6:0", + "referencedDeclaration": 2554, + "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 413, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, @@ -6011,29 +5963,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:13:0", + "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 414, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5450:8:0", + "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5436:22:0", + "referencedDeclaration": 2521, + "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 417, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -6042,63 +5994,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:67:0", + "src": "5457:67:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 418, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5436:67:0" + "src": "5457:67:0" }, { "eventCall": { "arguments": [ { - "id": 420, + "id": 417, "name": "_splitOrderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5550:13:0", + "referencedDeclaration": 272, + "src": "5571:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 421, + "id": 418, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5565:8:0", + "referencedDeclaration": 274, + "src": "5586:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 422, + "id": 419, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5575:18:0", + "referencedDeclaration": 276, + "src": "5596:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 423, + "id": 420, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5595:14:0", + "referencedDeclaration": 278, + "src": "5616:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6124,18 +6076,18 @@ "typeString": "uint64" } ], - "id": 419, + "id": 416, "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "5537:12:0", + "referencedDeclaration": 796, + "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint96)" } }, - "id": 424, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -6144,85 +6096,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5537:73:0", + "src": "5558:73:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 425, + "id": 422, "nodeType": "EmitStatement", - "src": "5532:78:0" + "src": "5553:78:0" }, { "expression": { "hexValue": "74727565", - "id": 426, + "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:4:0", + "src": "5643:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 289, - "id": 427, + "functionReturnParameters": 284, + "id": 424, "nodeType": "Return", - "src": "5615:11:0" + "src": "5636:11:0" } ] }, "documentation": { - "id": 275, + "id": 270, "nodeType": "StructuredDocumentation", - "src": "4099:34:0", + "src": "4061:34:0", "text": "@dev See {settle-IGateway}. " }, "functionSelector": "f22ee704", - "id": 429, + "id": 426, "implemented": true, "kind": "function", "modifiers": [ { - "id": 286, + "id": 281, "kind": "modifierInvocation", "modifierName": { - "id": 285, + "id": 280, "name": "onlyAggregator", "nameLocations": [ - "4263:14:0" + "4225:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "4263:14:0" + "src": "4225:14:0" }, "nodeType": "ModifierInvocation", - "src": "4263:14:0" + "src": "4225:14:0" } ], "name": "settle", - "nameLocation": "4144:6:0", + "nameLocation": "4106:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 284, + "id": 279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 272, "mutability": "mutable", "name": "_splitOrderId", - "nameLocation": "4162:13:0", + "nameLocation": "4124:13:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4154:21:0", + "scope": 426, + "src": "4116:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6230,10 +6182,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 276, + "id": 271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4154:7:0", + "src": "4116:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6243,13 +6195,13 @@ }, { "constant": false, - "id": 279, + "id": 274, "mutability": "mutable", "name": "_orderId", - "nameLocation": "4187:8:0", + "nameLocation": "4149:8:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4179:16:0", + "scope": 426, + "src": "4141:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6257,10 +6209,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 278, + "id": 273, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4179:7:0", + "src": "4141:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6270,13 +6222,13 @@ }, { "constant": false, - "id": 281, + "id": 276, "mutability": "mutable", "name": "_liquidityProvider", - "nameLocation": "4207:18:0", + "nameLocation": "4169:18:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4199:26:0", + "scope": 426, + "src": "4161:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6284,10 +6236,10 @@ "typeString": "address" }, "typeName": { - "id": 280, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4199:7:0", + "src": "4161:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6298,13 +6250,13 @@ }, { "constant": false, - "id": 283, + "id": 278, "mutability": "mutable", "name": "_settlePercent", - "nameLocation": "4236:14:0", + "nameLocation": "4198:14:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4229:21:0", + "scope": 426, + "src": "4191:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6312,10 +6264,10 @@ "typeString": "uint64" }, "typeName": { - "id": 282, + "id": 277, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4229:6:0", + "src": "4191:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6324,21 +6276,21 @@ "visibility": "internal" } ], - "src": "4150:103:0" + "src": "4112:103:0" }, "returnParameters": { - "id": 289, + "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 288, + "id": 283, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4287:4:0", + "scope": 426, + "src": "4249:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6346,10 +6298,10 @@ "typeString": "bool" }, "typeName": { - "id": 287, + "id": 282, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4287:4:0", + "src": "4249:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6358,28 +6310,28 @@ "visibility": "internal" } ], - "src": "4286:6:0" + "src": "4248:6:0" }, - "scope": 582, - "src": "4135:1495:0", + "scope": 579, + "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 878 + 875 ], "body": { - "id": 534, + "id": 531, "nodeType": "Block", - "src": "5756:839:0", + "src": "5777:839:0", "statements": [ { "expression": { "arguments": [ { - "id": 446, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -6387,29 +6339,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5819:28:0", + "src": "5840:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 442, + "id": 439, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5820:5:0", + "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 444, + "id": 441, "indexExpression": { - "id": 443, + "id": 440, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5826:8:0", + "referencedDeclaration": 431, + "src": "5847:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6420,22 +6372,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5820:15:0", + "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 445, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5836:11:0", + "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "5820:27:0", + "referencedDeclaration": 822, + "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6448,14 +6400,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 447, + "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5849:16:0", + "src": "5870:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -6474,7 +6426,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 441, + "id": 438, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6482,13 +6434,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5811:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 448, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -6497,22 +6449,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5811:55:0", + "src": "5832:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 449, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5811:55:0" + "src": "5832:55:0" }, { "expression": { "arguments": [ { - "id": 455, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -6520,29 +6472,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5878:27:0", + "src": "5899:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 451, + "id": 448, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5879:5:0", + "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 453, + "id": 450, "indexExpression": { - "id": 452, + "id": 449, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5885:8:0", + "referencedDeclaration": 431, + "src": "5906:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6553,22 +6505,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5879:15:0", + "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 454, + "id": 451, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5895:10:0", + "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "5879:26:0", + "referencedDeclaration": 824, + "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6581,14 +6533,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 456, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5907:15:0", + "src": "5928:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -6607,7 +6559,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 450, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6615,13 +6567,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5870:7:0", + "src": "5891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 457, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -6630,16 +6582,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5870:53:0", + "src": "5891:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5870:53:0" + "src": "5891:53:0" }, { "expression": { @@ -6649,7 +6601,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 465, + "id": 462, "isConstant": false, "isLValue": false, "isPure": false, @@ -6657,25 +6609,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 460, + "id": 457, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5935:5:0", + "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 462, + "id": 459, "indexExpression": { - "id": 461, + "id": 458, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5941:8:0", + "referencedDeclaration": 431, + "src": "5962:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6686,22 +6638,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5935:15:0", + "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 463, + "id": 460, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5951:11:0", + "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5935:27:0", + "referencedDeclaration": 820, + "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6710,18 +6662,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 464, + "id": 461, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5966:4:0", + "referencedDeclaration": 429, + "src": "5987:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5935:35:0", + "src": "5956:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6729,14 +6681,14 @@ }, { "hexValue": "4665654578636565647350726f746f636f6c466565", - "id": 466, + "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5972:23:0", + "src": "5993:23:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de", "typeString": "literal_string \"FeeExceedsProtocolFee\"" @@ -6755,7 +6707,7 @@ "typeString": "literal_string \"FeeExceedsProtocolFee\"" } ], - "id": 459, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6763,13 +6715,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5927:7:0", + "src": "5948:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 467, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -6778,39 +6730,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5927:69:0", + "src": "5948:69:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 468, + "id": 465, "nodeType": "ExpressionStatement", - "src": "5927:69:0" + "src": "5948:69:0" }, { "expression": { "arguments": [ { - "id": 476, + "id": 473, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "6081:15:0", + "referencedDeclaration": 590, + "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 477, + "id": 474, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6098:4:0", + "referencedDeclaration": 429, + "src": "6119:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6833,25 +6785,25 @@ { "expression": { "baseExpression": { - "id": 470, + "id": 467, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6049:5:0", + "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 472, + "id": 469, "indexExpression": { - "id": 471, + "id": 468, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6055:8:0", + "referencedDeclaration": 431, + "src": "6076:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6862,22 +6814,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6049:15:0", + "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 473, + "id": 470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6065:5:0", + "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6049:21:0", + "referencedDeclaration": 814, + "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6891,18 +6843,18 @@ "typeString": "address" } ], - "id": 469, + "id": 466, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6042:6:0", + "referencedDeclaration": 2554, + "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 474, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -6911,29 +6863,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:29:0", + "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 475, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6072:8:0", + "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6042:38:0", + "referencedDeclaration": 2521, + "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 478, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -6942,20 +6894,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:61:0", + "src": "6063:61:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 476, "nodeType": "ExpressionStatement", - "src": "6042:61:0" + "src": "6063:61:0" }, { "expression": { - "id": 485, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -6963,25 +6915,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 480, + "id": 477, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6132:5:0", + "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 482, + "id": 479, "indexExpression": { - "id": 481, + "id": 478, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6138:8:0", + "referencedDeclaration": 431, + "src": "6159:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6992,22 +6944,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6132:15:0", + "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 483, + "id": 480, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6148:10:0", + "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "6132:26:0", + "referencedDeclaration": 824, + "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7017,33 +6969,33 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 484, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6161:4:0", + "src": "6182:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6132:33:0", + "src": "6153:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 486, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6132:33:0" + "src": "6153:33:0" }, { "expression": { - "id": 492, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, @@ -7051,25 +7003,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 487, + "id": 484, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6169:5:0", + "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 489, + "id": 486, "indexExpression": { - "id": 488, + "id": 485, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6175:8:0", + "referencedDeclaration": 431, + "src": "6196:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7080,22 +7032,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6169:15:0", + "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 490, + "id": 487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6185:10:0", + "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "6169:26:0", + "referencedDeclaration": 828, + "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -7105,44 +7057,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 491, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6198:1:0", + "src": "6219:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6169:30:0", + "src": "6190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 493, + "id": 490, "nodeType": "ExpressionStatement", - "src": "6169:30:0" + "src": "6190:30:0" }, { "assignments": [ - 495 + 492 ], "declarations": [ { "constant": false, - "id": 495, + "id": 492, "mutability": "mutable", "name": "refundAmount", - "nameLocation": "6246:12:0", + "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "6238:20:0", + "scope": 531, + "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7150,10 +7102,10 @@ "typeString": "uint256" }, "typeName": { - "id": 494, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6238:7:0", + "src": "6259:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7162,13 +7114,13 @@ "visibility": "internal" } ], - "id": 507, + "id": 504, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -7178,7 +7130,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 501, "isConstant": false, "isLValue": false, "isPure": false, @@ -7186,25 +7138,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 496, + "id": 493, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6261:5:0", + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 498, + "id": 495, "indexExpression": { - "id": 497, + "id": 494, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6267:8:0", + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7215,22 +7167,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6261:15:0", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 499, + "id": 496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6277:6:0", + "memberLocation": "6298:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "6261:22:0", + "referencedDeclaration": 830, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7241,25 +7193,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 500, + "id": 497, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6286:5:0", + "src": "6307:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 502, + "id": 499, "indexExpression": { - "id": 501, + "id": 498, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6292:8:0", + "referencedDeclaration": 431, + "src": "6313:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7270,28 +7222,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6286:15:0", + "src": "6307:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 503, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6302:11:0", + "memberLocation": "6323:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "6286:27:0", + "referencedDeclaration": 820, + "src": "6307:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:52:0", + "src": "6282:52:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7300,25 +7252,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 505, + "id": 502, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6316:4:0", + "referencedDeclaration": 429, + "src": "6337:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:59:0", + "src": "6282:59:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6238:82:0" + "src": "6259:82:0" }, { "expression": { @@ -7326,25 +7278,25 @@ { "expression": { "baseExpression": { - "id": 515, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6433:5:0", + "src": "6454:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 517, + "id": 514, "indexExpression": { - "id": 516, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6439:8:0", + "referencedDeclaration": 431, + "src": "6460:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7355,22 +7307,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6433:15:0", + "src": "6454:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 518, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6449:13:0", + "memberLocation": "6470:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 829, - "src": "6433:29:0", + "referencedDeclaration": 826, + "src": "6454:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7381,18 +7333,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 524, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 519, + "id": 516, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6467:12:0", + "referencedDeclaration": 492, + "src": "6488:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7403,25 +7355,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 520, + "id": 517, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6482:5:0", + "src": "6503:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 522, + "id": 519, "indexExpression": { - "id": 521, + "id": 518, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6488:8:0", + "referencedDeclaration": 431, + "src": "6509:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7432,28 +7384,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6482:15:0", + "src": "6503:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 523, + "id": 520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6498:9:0", + "memberLocation": "6519:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "6482:25:0", + "referencedDeclaration": 818, + "src": "6503:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:40:0", + "src": "6488:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7476,25 +7428,25 @@ { "expression": { "baseExpression": { - "id": 509, + "id": 506, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6397:5:0", + "src": "6418:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 511, + "id": 508, "indexExpression": { - "id": 510, + "id": 507, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6403:8:0", + "referencedDeclaration": 431, + "src": "6424:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7505,22 +7457,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6397:15:0", + "src": "6418:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 512, + "id": 509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6413:5:0", + "memberLocation": "6434:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6397:21:0", + "referencedDeclaration": 814, + "src": "6418:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7534,18 +7486,18 @@ "typeString": "address" } ], - "id": 508, + "id": 505, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6390:6:0", + "referencedDeclaration": 2554, + "src": "6411:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 513, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -7554,29 +7506,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:29:0", + "src": "6411:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 514, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6420:8:0", + "memberLocation": "6441:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6390:38:0", + "referencedDeclaration": 2521, + "src": "6411:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 525, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -7585,39 +7537,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:121:0", + "src": "6411:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 526, + "id": 523, "nodeType": "ExpressionStatement", - "src": "6390:121:0" + "src": "6411:121:0" }, { "eventCall": { "arguments": [ { - "id": 528, + "id": 525, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6560:4:0", + "referencedDeclaration": 429, + "src": "6581:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 529, + "id": 526, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6566:8:0", + "referencedDeclaration": 431, + "src": "6587:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7635,18 +7587,18 @@ "typeString": "bytes32" } ], - "id": 527, + "id": 524, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "6546:13:0", + "referencedDeclaration": 803, + "src": "6567:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 530, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -7655,85 +7607,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6546:29:0", + "src": "6567:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 531, + "id": 528, "nodeType": "EmitStatement", - "src": "6541:34:0" + "src": "6562:34:0" }, { "expression": { "hexValue": "74727565", - "id": 532, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6587:4:0", + "src": "6608:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 440, - "id": 533, + "functionReturnParameters": 437, + "id": 530, "nodeType": "Return", - "src": "6580:11:0" + "src": "6601:11:0" } ] }, "documentation": { - "id": 430, + "id": 427, "nodeType": "StructuredDocumentation", - "src": "5633:34:0", + "src": "5654:34:0", "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 535, + "id": 532, "implemented": true, "kind": "function", "modifiers": [ { - "id": 437, + "id": 434, "kind": "modifierInvocation", "modifierName": { - "id": 436, + "id": 433, "name": "onlyAggregator", "nameLocations": [ - "5726:14:0" + "5747:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "5726:14:0" + "src": "5747:14:0" }, "nodeType": "ModifierInvocation", - "src": "5726:14:0" + "src": "5747:14:0" } ], "name": "refund", - "nameLocation": "5678:6:0", + "nameLocation": "5699:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 435, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 432, + "id": 429, "mutability": "mutable", "name": "_fee", - "nameLocation": "5693:4:0", + "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5685:12:0", + "scope": 532, + "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7741,10 +7693,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5685:7:0", + "src": "5706:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7754,13 +7706,13 @@ }, { "constant": false, - "id": 434, + "id": 431, "mutability": "mutable", "name": "_orderId", - "nameLocation": "5707:8:0", + "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5699:16:0", + "scope": 532, + "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7768,10 +7720,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 433, + "id": 430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5699:7:0", + "src": "5720:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7780,21 +7732,21 @@ "visibility": "internal" } ], - "src": "5684:32:0" + "src": "5705:32:0" }, "returnParameters": { - "id": 440, + "id": 437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 439, + "id": 436, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5750:4:0", + "scope": 532, + "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7802,10 +7754,10 @@ "typeString": "bool" }, "typeName": { - "id": 438, + "id": 435, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5750:4:0", + "src": "5771:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7814,45 +7766,45 @@ "visibility": "internal" } ], - "src": "5749:6:0" + "src": "5770:6:0" }, - "scope": 582, - "src": "5669:926:0", + "scope": 579, + "src": "5690:926:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 895 + 892 ], "body": { - "id": 548, + "id": 545, "nodeType": "Block", - "src": "6905:30:0", + "src": "6926:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 544, + "id": 541, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6916:5:0", + "src": "6937:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 546, + "id": 543, "indexExpression": { - "id": 545, + "id": 542, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "6922:8:0", + "referencedDeclaration": 535, + "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7863,46 +7815,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6916:15:0", + "src": "6937:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 543, - "id": 547, + "functionReturnParameters": 540, + "id": 544, "nodeType": "Return", - "src": "6909:22:0" + "src": "6930:22:0" } ] }, "documentation": { - "id": 536, + "id": 533, "nodeType": "StructuredDocumentation", - "src": "6786:40:0", + "src": "6807:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 549, + "id": 546, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6837:12:0", + "nameLocation": "6858:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 539, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 535, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6858:8:0", + "nameLocation": "6879:8:0", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6850:16:0", + "scope": 546, + "src": "6871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7910,10 +7862,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 537, + "id": 534, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6850:7:0", + "src": "6871:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7922,66 +7874,66 @@ "visibility": "internal" } ], - "src": "6849:18:0" + "src": "6870:18:0" }, "returnParameters": { - "id": 543, + "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 542, + "id": 539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6891:12:0", + "scope": 546, + "src": "6912:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 541, + "id": 538, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 540, + "id": 537, "name": "Order", "nameLocations": [ - "6891:5:0" + "6912:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, - "src": "6891:5:0" + "referencedDeclaration": 831, + "src": "6912:5:0" }, - "referencedDeclaration": 834, - "src": "6891:5:0", + "referencedDeclaration": 831, + "src": "6912:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6890:14:0" + "src": "6911:14:0" }, - "scope": 582, - "src": "6828:107:0", + "scope": 579, + "src": "6849:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 886 + 883 ], "body": { - "id": 567, + "id": 564, "nodeType": "Block", - "src": "7055:71:0", + "src": "7076:71:0", "statements": [ { "condition": { @@ -7989,32 +7941,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 561, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 557, + "id": 554, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "7063:17:0", + "referencedDeclaration": 596, + "src": "7084:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 559, + "id": 556, "indexExpression": { - "id": 558, + "id": 555, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "7081:6:0", + "referencedDeclaration": 549, + "src": "7102:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8025,7 +7977,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7063:25:0", + "src": "7084:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8035,103 +7987,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 560, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7092:1:0", + "src": "7113:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7063:30:0", + "src": "7084:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 564, + "id": 561, "nodeType": "IfStatement", - "src": "7059:47:0", + "src": "7080:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 562, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7102:4:0", + "src": "7123:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 556, - "id": 563, + "functionReturnParameters": 553, + "id": 560, "nodeType": "Return", - "src": "7095:11:0" + "src": "7116:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 565, + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7117:5:0", + "src": "7138:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 556, - "id": 566, + "functionReturnParameters": 553, + "id": 563, "nodeType": "Return", - "src": "7110:12:0" + "src": "7131:12:0" } ] }, "documentation": { - "id": 550, + "id": 547, "nodeType": "StructuredDocumentation", - "src": "6938:44:0", + "src": "6959:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 568, + "id": 565, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "6993:16:0", + "nameLocation": "7014:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 553, + "id": 550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 549, "mutability": "mutable", "name": "_token", - "nameLocation": "7018:6:0", + "nameLocation": "7039:6:0", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7010:14:0", + "scope": 565, + "src": "7031:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8139,10 +8091,10 @@ "typeString": "address" }, "typeName": { - "id": 551, + "id": 548, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7010:7:0", + "src": "7031:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8152,21 +8104,21 @@ "visibility": "internal" } ], - "src": "7009:16:0" + "src": "7030:16:0" }, "returnParameters": { - "id": 556, + "id": 553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 555, + "id": 552, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7049:4:0", + "scope": 565, + "src": "7070:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8174,10 +8126,10 @@ "typeString": "bool" }, "typeName": { - "id": 554, + "id": 551, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7049:4:0", + "src": "7070:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8186,104 +8138,104 @@ "visibility": "internal" } ], - "src": "7048:6:0" + "src": "7069:6:0" }, - "scope": 582, - "src": "6984:142:0", + "scope": 579, + "src": "7005:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 903 + 900 ], "body": { - "id": 580, + "id": 577, "nodeType": "Block", - "src": "7237:44:0", + "src": "7258:44:0", "statements": [ { "expression": { "components": [ { - "id": 576, + "id": 573, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "7249:18:0", + "referencedDeclaration": 588, + "src": "7270:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 577, + "id": 574, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7269:7:0", + "referencedDeclaration": 586, + "src": "7290:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 578, + "id": 575, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7248:29:0", + "src": "7269:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 575, - "id": 579, + "functionReturnParameters": 572, + "id": 576, "nodeType": "Return", - "src": "7241:36:0" + "src": "7262:36:0" } ] }, "documentation": { - "id": 569, + "id": 566, "nodeType": "StructuredDocumentation", - "src": "7129:41:0", + "src": "7150:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 581, + "id": 578, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7181:13:0", + "nameLocation": "7202:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 567, "nodeType": "ParameterList", "parameters": [], - "src": "7194:2:0" + "src": "7215:2:0" }, "returnParameters": { - "id": 575, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 569, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7220:6:0", + "scope": 578, + "src": "7241:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8291,10 +8243,10 @@ "typeString": "uint64" }, "typeName": { - "id": 571, + "id": 568, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7220:6:0", + "src": "7241:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8304,13 +8256,13 @@ }, { "constant": false, - "id": 574, + "id": 571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7228:7:0", + "scope": 578, + "src": "7249:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8318,10 +8270,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7228:7:0", + "src": "7249:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8330,48 +8282,48 @@ "visibility": "internal" } ], - "src": "7219:17:0" + "src": "7240:17:0" }, - "scope": 582, - "src": "7172:109:0", + "scope": 579, + "src": "7193:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 583, - "src": "390:6893:0", + "scope": 580, + "src": "390:6914:0", "usedErrors": [] } ], - "src": "39:7245:0" + "src": "39:7266:0" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Gateway": [ - 582 + 579 ], "GatewaySettingManager": [ - 766 + 763 ], "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 583, + "id": 580, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -8392,20 +8344,20 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 1512, + "scope": 580, + "sourceUnit": 1509, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "file": "./GatewaySettingManager.sol", "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 767, + "scope": 580, + "sourceUnit": 764, "src": "145:66:0", "symbolAliases": [ { @@ -8414,7 +8366,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "153:21:0", "typeDescriptions": {} }, @@ -8424,13 +8376,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "file": "./interfaces/IGateway.sol", "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 905, + "scope": 580, + "sourceUnit": 902, "src": "212:59:0", "symbolAliases": [ { @@ -8439,7 +8391,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "220:8:0", "typeDescriptions": {} }, @@ -8451,7 +8403,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "230:6:0", "typeDescriptions": {} }, @@ -8471,7 +8423,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "410:8:0" }, "id": 10, @@ -8486,7 +8438,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "420:21:0" }, "id": 12, @@ -8501,7 +8453,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1511, + "referencedDeclaration": 1508, "src": "443:19:0" }, "id": 14, @@ -8519,16 +8471,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 582, + "id": 579, "linearizedBaseContracts": [ - 582, - 1511, - 766, - 1081, - 1214, - 1892, - 1383, - 904 + 579, + 1508, + 763, + 1078, + 1211, + 1889, + 1380, + 901 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -8596,7 +8548,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 582, + "scope": 579, "src": "466:73:0", "visibility": "public" }, @@ -8607,12 +8559,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -8632,7 +8584,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -8647,13 +8599,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -8667,7 +8619,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -8717,7 +8669,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -8777,7 +8729,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1364, + "referencedDeclaration": 1361, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8831,7 +8783,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 582, + "scope": 579, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -8855,7 +8807,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, + "referencedDeclaration": 586, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8899,7 +8851,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, + "referencedDeclaration": 998, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8935,7 +8887,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1415, + "referencedDeclaration": 1412, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8985,7 +8937,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1285, + "referencedDeclaration": 1282, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -9007,7 +8959,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 582, + "scope": 579, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -9066,7 +9018,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9183,7 +9135,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, + "referencedDeclaration": 1486, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9233,7 +9185,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -9255,7 +9207,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 582, + "scope": 579, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -9276,7 +9228,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1505, + "referencedDeclaration": 1502, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9326,7 +9278,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -9348,7 +9300,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 582, + "scope": 579, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -9356,12 +9308,12 @@ }, { "baseFunctions": [ - 854 + 851 ], "body": { - "id": 217, + "id": 212, "nodeType": "Block", - "src": "1945:1133:0", + "src": "1945:1095:0", "statements": [ { "expression": { @@ -9454,7 +9406,7 @@ "name": "_handler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 274, + "referencedDeclaration": 269, "src": "1979:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -9692,7 +9644,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } } @@ -9700,7 +9652,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } ], @@ -9823,10 +9775,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, @@ -9842,7 +9794,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, @@ -9854,7 +9806,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2556, + "referencedDeclaration": 2553, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -10168,7 +10120,7 @@ "name": "_protocolFee", "nameLocation": "2503:12:0", "nodeType": "VariableDeclaration", - "scope": 217, + "scope": 212, "src": "2495:20:0", "stateVariable": false, "storageLocation": "default", @@ -10189,13 +10141,13 @@ "visibility": "internal" } ], - "id": 177, + "id": 174, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -10231,7 +10183,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -10261,100 +10213,54 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 172, - "name": "MAX_BPS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2552:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 173, - "name": "protocolFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2562:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2552:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 175, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2551:30:0", + "id": 172, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2518:63:0", + "src": "2518:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2495:86:0" + "src": "2495:63:0" }, { "expression": { - "id": 199, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 178, + "id": 175, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2585:5:0", + "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 180, + "id": 177, "indexExpression": { - "id": 179, + "id": 176, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2591:7:0", + "src": "2568:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10365,9 +10271,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2585:14:0", + "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10377,74 +10283,74 @@ "arguments": [ { "expression": { - "id": 182, + "id": 179, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2621:3:0", + "src": "2598:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2625:6:0", + "memberLocation": "2602:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2621:10:0", + "src": "2598:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 184, + "id": 181, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2643:6:0", + "src": "2620:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 185, + "id": 182, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99, - "src": "2674:19:0", + "src": "2651:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 186, + "id": 183, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, - "src": "2709:10:0", + "src": "2686:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 187, + "id": 184, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "2737:12:0", + "src": "2714:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10452,14 +10358,14 @@ }, { "hexValue": "66616c7365", - "id": 188, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:5:0", + "src": "2744:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10468,14 +10374,14 @@ }, { "hexValue": "66616c7365", - "id": 189, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2789:5:0", + "src": "2766:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10483,12 +10389,12 @@ "value": "false" }, { - "id": 190, + "id": 187, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, - "src": "2814:14:0", + "src": "2791:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10497,12 +10403,12 @@ { "arguments": [ { - "id": 193, + "id": 190, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2852:7:0", + "referencedDeclaration": 586, + "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10516,26 +10422,26 @@ "typeString": "uint256" } ], - "id": 192, + "id": 189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 191, + "id": 188, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": {} } }, - "id": 194, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -10544,7 +10450,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2845:15:0", + "src": "2822:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -10552,42 +10458,12 @@ } }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 195, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2873:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 196, - "name": "_protocolFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2883:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2873:22:0", + "id": 192, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2850:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10637,34 +10513,34 @@ "typeString": "uint256" } ], - "id": 181, + "id": 178, "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "2602:5:0", + "referencedDeclaration": 831, + "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$834_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, - "id": 198, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2613:6:0", - "2636:5:0", - "2654:18:0", - "2698:9:0", - "2724:11:0", - "2754:11:0", - "2777:10:0", - "2799:13:0", - "2833:10:0", - "2865:6:0" + "2590:6:0", + "2613:5:0", + "2631:18:0", + "2675:9:0", + "2701:11:0", + "2731:11:0", + "2754:10:0", + "2776:13:0", + "2810:10:0", + "2842:6:0" ], "names": [ "sender", @@ -10679,22 +10555,22 @@ "amount" ], "nodeType": "FunctionCall", - "src": "2602:298:0", + "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order memory" } }, - "src": "2585:315:0", + "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 200, + "id": 195, "nodeType": "ExpressionStatement", - "src": "2585:315:0" + "src": "2562:300:0" }, { "eventCall": { @@ -10702,25 +10578,25 @@ { "expression": { "baseExpression": { - "id": 202, + "id": 197, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2957:5:0", + "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 204, + "id": 199, "indexExpression": { - "id": 203, + "id": 198, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2963:7:0", + "src": "2925:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10731,34 +10607,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2957:14:0", + "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 205, + "id": 200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2972:6:0", + "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "2957:21:0", + "referencedDeclaration": 812, + "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 206, + "id": 201, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2983:6:0", + "src": "2945:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10767,25 +10643,25 @@ { "expression": { "baseExpression": { - "id": 207, + "id": 202, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2994:5:0", + "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 209, + "id": 204, "indexExpression": { - "id": 208, + "id": 203, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3000:7:0", + "src": "2962:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10796,70 +10672,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2994:14:0", + "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 210, + "id": 205, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3009:6:0", + "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "2994:21:0", + "referencedDeclaration": 830, + "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 211, + "id": 206, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "3020:12:0", + "src": "2982:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 212, + "id": 207, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3037:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 213, + "id": 208, "name": "_rate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, - "src": "3049:5:0", + "src": "3011:5:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, { - "id": 214, + "id": 209, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, - "src": "3059:11:0", + "src": "3021:11:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -10897,18 +10773,18 @@ "typeString": "string calldata" } ], - "id": 201, + "id": 196, "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "2940:12:0", + "referencedDeclaration": 785, + "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes32,uint256,string memory)" } }, - "id": 215, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,16 +10793,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2940:134:0", + "src": "2902:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 216, + "id": 211, "nodeType": "EmitStatement", - "src": "2935:139:0" + "src": "2897:139:0" } ] }, @@ -10937,7 +10813,7 @@ "text": "@dev See {createOrder-IGateway}. " }, "functionSelector": "809804f7", - "id": 218, + "id": 213, "implemented": true, "kind": "function", "modifiers": [ @@ -10951,7 +10827,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -10972,7 +10848,7 @@ "name": "_token", "nameLocation": "1741:6:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1733:14:0", "stateVariable": false, "storageLocation": "default", @@ -11000,7 +10876,7 @@ "name": "_amount", "nameLocation": "1759:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1751:15:0", "stateVariable": false, "storageLocation": "default", @@ -11027,7 +10903,7 @@ "name": "_rate", "nameLocation": "1777:5:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1770:12:0", "stateVariable": false, "storageLocation": "default", @@ -11054,7 +10930,7 @@ "name": "_senderFeeRecipient", "nameLocation": "1794:19:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1786:27:0", "stateVariable": false, "storageLocation": "default", @@ -11082,7 +10958,7 @@ "name": "_senderFee", "nameLocation": "1825:10:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1817:18:0", "stateVariable": false, "storageLocation": "default", @@ -11109,7 +10985,7 @@ "name": "_refundAddress", "nameLocation": "1847:14:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1839:22:0", "stateVariable": false, "storageLocation": "default", @@ -11137,7 +11013,7 @@ "name": "messageHash", "nameLocation": "1881:11:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1865:27:0", "stateVariable": false, "storageLocation": "calldata", @@ -11171,7 +11047,7 @@ "name": "orderId", "nameLocation": "1936:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1928:15:0", "stateVariable": false, "storageLocation": "default", @@ -11194,17 +11070,17 @@ ], "src": "1927:17:0" }, - "scope": 582, - "src": "1709:1369:0", + "scope": 579, + "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 273, + "id": 268, "nodeType": "Block", - "src": "3622:276:0", + "src": "3584:276:0", "statements": [ { "expression": { @@ -11214,32 +11090,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 237, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 233, + "id": 228, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "3634:17:0", + "referencedDeclaration": 596, + "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 235, + "id": 230, "indexExpression": { - "id": 234, + "id": 229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3652:6:0", + "referencedDeclaration": 216, + "src": "3614:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11250,7 +11126,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3634:25:0", + "src": "3596:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11260,21 +11136,21 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 236, + "id": 231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:1:0", + "src": "3625:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3634:30:0", + "src": "3596:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11282,14 +11158,14 @@ }, { "hexValue": "546f6b656e4e6f74537570706f72746564", - "id": 238, + "id": 233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3666:19:0", + "src": "3628:19:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1", "typeString": "literal_string \"TokenNotSupported\"" @@ -11308,7 +11184,7 @@ "typeString": "literal_string \"TokenNotSupported\"" } ], - "id": 232, + "id": 227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11316,13 +11192,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3626:7:0", + "src": "3588:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 239, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -11331,16 +11207,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3626:60:0", + "src": "3588:60:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 240, + "id": 235, "nodeType": "ExpressionStatement", - "src": "3626:60:0" + "src": "3588:60:0" }, { "expression": { @@ -11350,18 +11226,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 244, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 242, + "id": 237, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "3698:7:0", + "referencedDeclaration": 218, + "src": "3660:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11371,21 +11247,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 243, + "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:1:0", + "src": "3671:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3698:12:0", + "src": "3660:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11393,14 +11269,14 @@ }, { "hexValue": "416d6f756e7449735a65726f", - "id": 245, + "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:14:0", + "src": "3674:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2", "typeString": "literal_string \"AmountIsZero\"" @@ -11419,7 +11295,7 @@ "typeString": "literal_string \"AmountIsZero\"" } ], - "id": 241, + "id": 236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11427,13 +11303,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3690:7:0", + "src": "3652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 246, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -11442,16 +11318,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3690:37:0", + "src": "3652:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 247, + "id": 242, "nodeType": "ExpressionStatement", - "src": "3690:37:0" + "src": "3652:37:0" }, { "expression": { @@ -11461,18 +11337,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 254, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 249, + "id": 244, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3739:14:0", + "referencedDeclaration": 220, + "src": "3701:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11484,14 +11360,14 @@ "arguments": [ { "hexValue": "30", - "id": 252, + "id": 247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3765:1:0", + "src": "3727:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11506,26 +11382,26 @@ "typeString": "int_const 0" } ], - "id": 251, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 250, + "id": 245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": {} } }, - "id": 253, + "id": 248, "isConstant": false, "isLValue": false, "isPure": true, @@ -11534,14 +11410,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3757:10:0", + "src": "3719:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3739:28:0", + "src": "3701:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11549,14 +11425,14 @@ }, { "hexValue": "5468726f775a65726f41646472657373", - "id": 255, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3769:18:0", + "src": "3731:18:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7", "typeString": "literal_string \"ThrowZeroAddress\"" @@ -11575,7 +11451,7 @@ "typeString": "literal_string \"ThrowZeroAddress\"" } ], - "id": 248, + "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11583,13 +11459,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3731:7:0", + "src": "3693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 256, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -11598,16 +11474,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3731:57:0", + "src": "3693:57:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 257, + "id": 252, "nodeType": "ExpressionStatement", - "src": "3731:57:0" + "src": "3693:57:0" }, { "condition": { @@ -11615,18 +11491,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 258, + "id": 253, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "3797:10:0", + "referencedDeclaration": 224, + "src": "3759:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11636,33 +11512,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 259, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3811:1:0", + "src": "3773:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3797:15:0", + "src": "3759:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 272, + "id": 267, "nodeType": "IfStatement", - "src": "3793:102:0", + "src": "3755:102:0", "trueBody": { - "id": 271, + "id": 266, "nodeType": "Block", - "src": "3814:81:0", + "src": "3776:81:0", "statements": [ { "expression": { @@ -11672,18 +11548,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 262, + "id": 257, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3827:19:0", + "referencedDeclaration": 222, + "src": "3789:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11695,14 +11571,14 @@ "arguments": [ { "hexValue": "30", - "id": 265, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:1:0", + "src": "3820:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11717,26 +11593,26 @@ "typeString": "int_const 0" } ], - "id": 264, + "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 263, + "id": 258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": {} } }, - "id": 266, + "id": 261, "isConstant": false, "isLValue": false, "isPure": true, @@ -11745,14 +11621,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3850:10:0", + "src": "3812:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3827:33:0", + "src": "3789:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11760,14 +11636,14 @@ }, { "hexValue": "496e76616c696453656e646572466565526563697069656e74", - "id": 268, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3862:27:0", + "src": "3824:27:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8", "typeString": "literal_string \"InvalidSenderFeeRecipient\"" @@ -11786,7 +11662,7 @@ "typeString": "literal_string \"InvalidSenderFeeRecipient\"" } ], - "id": 261, + "id": 256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11794,13 +11670,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3819:7:0", + "src": "3781:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 269, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -11809,16 +11685,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3819:71:0", + "src": "3781:71:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 270, + "id": 265, "nodeType": "ExpressionStatement", - "src": "3819:71:0" + "src": "3781:71:0" } ] } @@ -11826,31 +11702,31 @@ ] }, "documentation": { - "id": 219, + "id": 214, "nodeType": "StructuredDocumentation", - "src": "3081:388:0", + "src": "3043:388:0", "text": " @dev Internal function to handle order creation.\n @param _token The address of the token being traded.\n @param _amount The amount of tokens being traded.\n @param _refundAddress The address to refund the tokens in case of cancellation.\n @param _senderFeeRecipient The address of the recipient for the sender fee.\n @param _senderFee The amount of the sender fee." }, - "id": 274, + "id": 269, "implemented": true, "kind": "function", "modifiers": [], "name": "_handler", - "nameLocation": "3480:8:0", + "nameLocation": "3442:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 221, + "id": 216, "mutability": "mutable", "name": "_token", - "nameLocation": "3500:6:0", + "nameLocation": "3462:6:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3492:14:0", + "scope": 269, + "src": "3454:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11858,10 +11734,10 @@ "typeString": "address" }, "typeName": { - "id": 220, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3492:7:0", + "src": "3454:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11872,13 +11748,13 @@ }, { "constant": false, - "id": 223, + "id": 218, "mutability": "mutable", "name": "_amount", - "nameLocation": "3518:7:0", + "nameLocation": "3480:7:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3510:15:0", + "scope": 269, + "src": "3472:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11886,10 +11762,10 @@ "typeString": "uint256" }, "typeName": { - "id": 222, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3510:7:0", + "src": "3472:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11899,13 +11775,13 @@ }, { "constant": false, - "id": 225, + "id": 220, "mutability": "mutable", "name": "_refundAddress", - "nameLocation": "3537:14:0", + "nameLocation": "3499:14:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3529:22:0", + "scope": 269, + "src": "3491:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11913,10 +11789,10 @@ "typeString": "address" }, "typeName": { - "id": 224, + "id": 219, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3529:7:0", + "src": "3491:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11927,13 +11803,13 @@ }, { "constant": false, - "id": 227, + "id": 222, "mutability": "mutable", "name": "_senderFeeRecipient", - "nameLocation": "3563:19:0", + "nameLocation": "3525:19:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3555:27:0", + "scope": 269, + "src": "3517:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11941,10 +11817,10 @@ "typeString": "address" }, "typeName": { - "id": 226, + "id": 221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3555:7:0", + "src": "3517:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11955,13 +11831,13 @@ }, { "constant": false, - "id": 229, + "id": 224, "mutability": "mutable", "name": "_senderFee", - "nameLocation": "3594:10:0", + "nameLocation": "3556:10:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3586:18:0", + "scope": 269, + "src": "3548:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11969,10 +11845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 228, + "id": 223, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3586:7:0", + "src": "3548:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11981,34 +11857,34 @@ "visibility": "internal" } ], - "src": "3488:119:0" + "src": "3450:119:0" }, "returnParameters": { - "id": 231, + "id": 226, "nodeType": "ParameterList", "parameters": [], - "src": "3622:0:0" + "src": "3584:0:0" }, - "scope": 582, - "src": "3471:427:0", + "scope": 579, + "src": "3433:427:0", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ - 868 + 865 ], "body": { - "id": 428, + "id": 425, "nodeType": "Block", - "src": "4293:1337:0", + "src": "4255:1396:0", "statements": [ { "expression": { "arguments": [ { - "id": 295, + "id": 290, "isConstant": false, "isLValue": false, "isPure": false, @@ -12016,29 +11892,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4356:28:0", + "src": "4318:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 291, + "id": 286, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4357:5:0", + "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 293, + "id": 288, "indexExpression": { - "id": 292, + "id": 287, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4363:8:0", + "referencedDeclaration": 274, + "src": "4325:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12049,22 +11925,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4357:15:0", + "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 294, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4373:11:0", + "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4357:27:0", + "referencedDeclaration": 822, + "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12077,14 +11953,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 296, + "id": 291, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4386:16:0", + "src": "4348:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -12103,7 +11979,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 290, + "id": 285, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12111,13 +11987,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4348:7:0", + "src": "4310:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 297, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -12126,22 +12002,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4348:55:0", + "src": "4310:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 298, + "id": 293, "nodeType": "ExpressionStatement", - "src": "4348:55:0" + "src": "4310:55:0" }, { "expression": { "arguments": [ { - "id": 304, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -12149,29 +12025,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4415:27:0", + "src": "4377:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 300, + "id": 295, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4416:5:0", + "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 302, + "id": 297, "indexExpression": { - "id": 301, + "id": 296, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4422:8:0", + "referencedDeclaration": 274, + "src": "4384:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12182,22 +12058,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4416:15:0", + "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 303, + "id": 298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4432:10:0", + "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "4416:26:0", + "referencedDeclaration": 824, + "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12210,14 +12086,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 305, + "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4444:15:0", + "src": "4406:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -12236,7 +12112,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 299, + "id": 294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12244,13 +12120,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4407:7:0", + "src": "4369:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 301, "isConstant": false, "isLValue": false, "isPure": false, @@ -12259,31 +12135,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4407:53:0", + "src": "4369:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 302, "nodeType": "ExpressionStatement", - "src": "4407:53:0" + "src": "4369:53:0" }, { "assignments": [ - 309 + 304 ], "declarations": [ { "constant": false, - "id": 309, + "id": 304, "mutability": "mutable", "name": "token", - "nameLocation": "4505:5:0", + "nameLocation": "4467:5:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "4497:13:0", + "scope": 425, + "src": "4459:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12291,10 +12167,10 @@ "typeString": "address" }, "typeName": { - "id": 308, + "id": 303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4497:7:0", + "src": "4459:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12304,29 +12180,29 @@ "visibility": "internal" } ], - "id": 314, + "id": 309, "initialValue": { "expression": { "baseExpression": { - "id": 310, + "id": 305, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4513:5:0", + "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 312, + "id": 307, "indexExpression": { - "id": 311, + "id": 306, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4519:8:0", + "referencedDeclaration": 274, + "src": "4481:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12337,33 +12213,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4513:15:0", + "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 313, + "id": 308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4529:5:0", + "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4513:21:0", + "referencedDeclaration": 814, + "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4497:37:0" + "src": "4459:37:0" }, { "expression": { - "id": 320, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, @@ -12371,25 +12247,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 315, + "id": 310, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4601:5:0", + "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 317, + "id": 312, "indexExpression": { - "id": 316, + "id": 311, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4607:8:0", + "referencedDeclaration": 274, + "src": "4569:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12400,22 +12276,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4601:15:0", + "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 318, + "id": 313, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4617:10:0", + "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4601:26:0", + "referencedDeclaration": 828, + "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -12424,26 +12300,26 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 319, + "id": 314, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4631:14:0", + "referencedDeclaration": 278, + "src": "4593:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "4601:44:0", + "src": "4563:44:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 321, + "id": 316, "nodeType": "ExpressionStatement", - "src": "4601:44:0" + "src": "4563:44:0" }, { "condition": { @@ -12451,7 +12327,7 @@ "typeIdentifier": "t_uint96", "typeString": "uint96" }, - "id": 327, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -12459,25 +12335,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 322, + "id": 317, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4654:5:0", + "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 324, + "id": 319, "indexExpression": { - "id": 323, + "id": 318, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4660:8:0", + "referencedDeclaration": 274, + "src": "4622:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12488,22 +12364,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4654:15:0", + "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 325, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4670:10:0", + "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4654:26:0", + "referencedDeclaration": 828, + "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -12513,37 +12389,37 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 326, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4684:1:0", + "src": "4646:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4654:31:0", + "src": "4616:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 391, + "id": 367, "nodeType": "IfStatement", - "src": "4650:604:0", + "src": "4612:453:0", "trueBody": { - "id": 390, + "id": 366, "nodeType": "Block", - "src": "4687:567:0", + "src": "4649:416:0", "statements": [ { "expression": { - "id": 333, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, @@ -12551,25 +12427,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 328, + "id": 323, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4737:5:0", + "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 330, + "id": 325, "indexExpression": { - "id": 329, + "id": 324, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4743:8:0", + "referencedDeclaration": 274, + "src": "4705:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12580,22 +12456,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4737:15:0", + "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 331, + "id": 326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4753:11:0", + "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4737:27:0", + "referencedDeclaration": 822, + "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12605,29 +12481,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 332, + "id": 327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4767:4:0", + "src": "4729:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4737:34:0", + "src": "4699:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 334, + "id": 329, "nodeType": "ExpressionStatement", - "src": "4737:34:0" + "src": "4699:34:0" }, { "condition": { @@ -12635,7 +12511,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 340, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -12643,25 +12519,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 335, + "id": 330, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4781:5:0", + "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 337, + "id": 332, "indexExpression": { - "id": 336, + "id": 331, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4787:8:0", + "referencedDeclaration": 274, + "src": "4749:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12672,22 +12548,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4781:15:0", + "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 338, + "id": 333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4797:9:0", + "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4781:25:0", + "referencedDeclaration": 818, + "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12697,33 +12573,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 339, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4810:1:0", + "src": "4772:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4781:30:0", + "src": "4743:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 370, + "id": 365, "nodeType": "IfStatement", - "src": "4777:321:0", + "src": "4739:321:0", "trueBody": { - "id": 369, + "id": 364, "nodeType": "Block", - "src": "4813:285:0", + "src": "4775:285:0", "statements": [ { "expression": { @@ -12731,25 +12607,25 @@ { "expression": { "baseExpression": { - "id": 348, + "id": 343, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4891:5:0", + "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 350, + "id": 345, "indexExpression": { - "id": 349, + "id": 344, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4897:8:0", + "referencedDeclaration": 274, + "src": "4859:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12760,22 +12636,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4891:15:0", + "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 351, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4907:18:0", + "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "4891:34:0", + "referencedDeclaration": 816, + "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12784,25 +12660,25 @@ { "expression": { "baseExpression": { - "id": 352, + "id": 347, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4932:5:0", + "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 354, + "id": 349, "indexExpression": { - "id": 353, + "id": 348, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4938:8:0", + "referencedDeclaration": 274, + "src": "4900:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12813,22 +12689,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4932:15:0", + "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 355, + "id": 350, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4948:9:0", + "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4932:25:0", + "referencedDeclaration": 818, + "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12851,25 +12727,25 @@ { "expression": { "baseExpression": { - "id": 342, + "id": 337, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4853:5:0", + "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 344, + "id": 339, "indexExpression": { - "id": 343, + "id": 338, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4859:8:0", + "referencedDeclaration": 274, + "src": "4821:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12880,22 +12756,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4853:15:0", + "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 345, + "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4869:5:0", + "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4853:21:0", + "referencedDeclaration": 814, + "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12909,18 +12785,18 @@ "typeString": "address" } ], - "id": 341, + "id": 336, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "4846:6:0", + "referencedDeclaration": 2554, + "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 346, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -12929,29 +12805,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:29:0", + "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 347, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4876:8:0", + "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "4846:38:0", + "referencedDeclaration": 2521, + "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 356, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -12960,16 +12836,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:117:0", + "src": "4808:117:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 357, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4846:117:0" + "src": "4808:117:0" }, { "eventCall": { @@ -12977,25 +12853,25 @@ { "expression": { "baseExpression": { - "id": 359, + "id": 354, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5020:5:0", + "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 361, + "id": 356, "indexExpression": { - "id": 360, + "id": 355, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5026:8:0", + "referencedDeclaration": 274, + "src": "4988:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13006,22 +12882,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5020:15:0", + "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 362, + "id": 357, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5036:18:0", + "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "5020:34:0", + "referencedDeclaration": 816, + "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13030,25 +12906,25 @@ { "expression": { "baseExpression": { - "id": 363, + "id": 358, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5061:5:0", + "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 365, + "id": 360, "indexExpression": { - "id": 364, + "id": 359, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5067:8:0", + "referencedDeclaration": 274, + "src": "5029:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13059,22 +12935,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5061:15:0", + "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 366, + "id": 361, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5077:9:0", + "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "5061:25:0", + "referencedDeclaration": 818, + "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13092,18 +12968,18 @@ "typeString": "uint256" } ], - "id": 358, + "id": 353, "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "4993:20:0", + "referencedDeclaration": 810, + "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 367, + "id": 362, "isConstant": false, "isLValue": false, "isPure": false, @@ -13112,27 +12988,75 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4993:99:0", + "src": "4955:99:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 368, + "id": 363, "nodeType": "EmitStatement", - "src": "4988:104:0" + "src": "4950:104:0" } ] } + } + ] + } + }, + { + "assignments": [ + 369 + ], + "declarations": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "liquidityProviderAmount", + "nameLocation": "5113:23:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "5105:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "condition": { + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 379, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 376, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -13140,25 +13064,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 371, + "id": 370, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5107:5:0", + "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 373, + "id": 372, "indexExpression": { - "id": 372, + "id": 371, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5113:8:0", + "referencedDeclaration": 274, + "src": "5146:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13169,243 +13093,182 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5107:15:0", + "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 374, + "id": 373, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5123:11:0", - "memberName": "protocolFee", + "memberLocation": "5156:6:0", + "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5107:27:0", + "referencedDeclaration": 830, + "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "*", "rightExpression": { - "hexValue": "30", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5138:1:0", + "id": 374, + "name": "_settlePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "5165:14:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } }, - "src": "5107:32:0", + "src": "5140:39:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 389, - "nodeType": "IfStatement", - "src": "5103:147:0", - "trueBody": { - "id": 388, - "nodeType": "Block", - "src": "5141:109:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 381, - "name": "treasuryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "5199:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "id": 382, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5216:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 384, - "indexExpression": { - "id": 383, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5222:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5216:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5232:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5216:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 378, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5183:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 377, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", - "typeString": "contract IERC20" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5190:8:0", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5176:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "5176:68:0" - } - ] } + ], + "id": 376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5139:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 377, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "5183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5105:85:0" + }, + { + "expression": { + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 380, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5194:5:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + } + }, + "id": 382, + "indexExpression": { + "id": 381, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 274, + "src": "5200:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5194:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$831_storage", + "typeString": "struct IGateway.Order storage ref" + } + }, + "id": 383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5210:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "5194:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 384, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5220:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 386, + "nodeType": "ExpressionStatement", + "src": "5194:49:0" }, { "assignments": [ - 393 + 388 ], "declarations": [ { "constant": false, - "id": 393, + "id": 388, "mutability": "mutable", - "name": "liquidityProviderAmount", - "nameLocation": "5302:23:0", + "name": "protocolFee", + "nameLocation": "5256:11:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "5294:31:0", + "scope": 425, + "src": "5248:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13413,10 +13276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5294:7:0", + "src": "5248:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13425,13 +13288,13 @@ "visibility": "internal" } ], - "id": 403, + "id": 395, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 402, + "id": 394, "isConstant": false, "isLValue": false, "isPure": false, @@ -13443,59 +13306,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 399, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "expression": { - "baseExpression": { - "id": 394, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5329:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 396, - "indexExpression": { - "id": 395, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5335:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5329:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5345:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5329:22:0", + "id": 389, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5271:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13504,32 +13326,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 398, - "name": "_settlePercent", + "id": 390, + "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5354:14:0", + "referencedDeclaration": 588, + "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "5329:39:0", + "src": "5271:44:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 392, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5328:41:0", + "src": "5270:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13538,132 +13360,214 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 401, + "id": 393, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "5372:7:0", + "referencedDeclaration": 586, + "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5328:51:0", + "src": "5270:56:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5294:85:0" + "src": "5248:78:0" }, { "expression": { - "id": 409, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "id": 396, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5330:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 397, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5357:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5330:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5330:38:0" + }, + { + "expression": { + "arguments": [ + { + "id": 404, + "name": "treasuryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5423:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 405, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5440:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { - "baseExpression": { - "id": 404, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5383:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + "arguments": [ + { + "id": 401, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "5407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 406, - "indexExpression": { - "id": 405, - "name": "_orderId", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 400, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5389:8:0", + "referencedDeclaration": 2554, + "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeString": "type(contract IERC20)" } }, + "id": 402, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5383:15:0", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:13:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_contract$_IERC20_$2554", + "typeString": "contract IERC20" } }, - "id": 407, + "id": 403, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberLocation": "5399:6:0", - "memberName": "amount", + "lValueRequested": false, + "memberLocation": "5414:8:0", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5383:22:0", + "referencedDeclaration": 2521, + "src": "5400:22:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 408, - "name": "liquidityProviderAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5409:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "src": "5383:49:0", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:52:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 410, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5383:49:0" + "src": "5400:52:0" }, { "expression": { "arguments": [ { - "id": 415, + "id": 412, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5459:18:0", + "referencedDeclaration": 276, + "src": "5480:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 416, + "id": 413, "name": "liquidityProviderAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5479:23:0", + "referencedDeclaration": 369, + "src": "5500:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13684,12 +13588,12 @@ "expression": { "arguments": [ { - "id": 412, + "id": 409, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5443:5:0", + "referencedDeclaration": 304, + "src": "5464:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13703,18 +13607,18 @@ "typeString": "address" } ], - "id": 411, + "id": 408, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5436:6:0", + "referencedDeclaration": 2554, + "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 413, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, @@ -13723,29 +13627,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:13:0", + "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 414, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5450:8:0", + "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5436:22:0", + "referencedDeclaration": 2521, + "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 417, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -13754,63 +13658,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:67:0", + "src": "5457:67:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 418, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5436:67:0" + "src": "5457:67:0" }, { "eventCall": { "arguments": [ { - "id": 420, + "id": 417, "name": "_splitOrderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5550:13:0", + "referencedDeclaration": 272, + "src": "5571:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 421, + "id": 418, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5565:8:0", + "referencedDeclaration": 274, + "src": "5586:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 422, + "id": 419, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5575:18:0", + "referencedDeclaration": 276, + "src": "5596:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 423, + "id": 420, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5595:14:0", + "referencedDeclaration": 278, + "src": "5616:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13836,18 +13740,18 @@ "typeString": "uint64" } ], - "id": 419, + "id": 416, "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "5537:12:0", + "referencedDeclaration": 796, + "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint96)" } }, - "id": 424, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -13856,85 +13760,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5537:73:0", + "src": "5558:73:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 425, + "id": 422, "nodeType": "EmitStatement", - "src": "5532:78:0" + "src": "5553:78:0" }, { "expression": { "hexValue": "74727565", - "id": 426, + "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:4:0", + "src": "5643:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 289, - "id": 427, + "functionReturnParameters": 284, + "id": 424, "nodeType": "Return", - "src": "5615:11:0" + "src": "5636:11:0" } ] }, "documentation": { - "id": 275, + "id": 270, "nodeType": "StructuredDocumentation", - "src": "4099:34:0", + "src": "4061:34:0", "text": "@dev See {settle-IGateway}. " }, "functionSelector": "f22ee704", - "id": 429, + "id": 426, "implemented": true, "kind": "function", "modifiers": [ { - "id": 286, + "id": 281, "kind": "modifierInvocation", "modifierName": { - "id": 285, + "id": 280, "name": "onlyAggregator", "nameLocations": [ - "4263:14:0" + "4225:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "4263:14:0" + "src": "4225:14:0" }, "nodeType": "ModifierInvocation", - "src": "4263:14:0" + "src": "4225:14:0" } ], "name": "settle", - "nameLocation": "4144:6:0", + "nameLocation": "4106:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 284, + "id": 279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 272, "mutability": "mutable", "name": "_splitOrderId", - "nameLocation": "4162:13:0", + "nameLocation": "4124:13:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4154:21:0", + "scope": 426, + "src": "4116:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13942,10 +13846,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 276, + "id": 271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4154:7:0", + "src": "4116:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13955,13 +13859,13 @@ }, { "constant": false, - "id": 279, + "id": 274, "mutability": "mutable", "name": "_orderId", - "nameLocation": "4187:8:0", + "nameLocation": "4149:8:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4179:16:0", + "scope": 426, + "src": "4141:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13969,10 +13873,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 278, + "id": 273, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4179:7:0", + "src": "4141:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13982,13 +13886,13 @@ }, { "constant": false, - "id": 281, + "id": 276, "mutability": "mutable", "name": "_liquidityProvider", - "nameLocation": "4207:18:0", + "nameLocation": "4169:18:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4199:26:0", + "scope": 426, + "src": "4161:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13996,10 +13900,10 @@ "typeString": "address" }, "typeName": { - "id": 280, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4199:7:0", + "src": "4161:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14010,13 +13914,13 @@ }, { "constant": false, - "id": 283, + "id": 278, "mutability": "mutable", "name": "_settlePercent", - "nameLocation": "4236:14:0", + "nameLocation": "4198:14:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4229:21:0", + "scope": 426, + "src": "4191:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14024,10 +13928,10 @@ "typeString": "uint64" }, "typeName": { - "id": 282, + "id": 277, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4229:6:0", + "src": "4191:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -14036,21 +13940,21 @@ "visibility": "internal" } ], - "src": "4150:103:0" + "src": "4112:103:0" }, "returnParameters": { - "id": 289, + "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 288, + "id": 283, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4287:4:0", + "scope": 426, + "src": "4249:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14058,10 +13962,10 @@ "typeString": "bool" }, "typeName": { - "id": 287, + "id": 282, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4287:4:0", + "src": "4249:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14070,28 +13974,28 @@ "visibility": "internal" } ], - "src": "4286:6:0" + "src": "4248:6:0" }, - "scope": 582, - "src": "4135:1495:0", + "scope": 579, + "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 878 + 875 ], "body": { - "id": 534, + "id": 531, "nodeType": "Block", - "src": "5756:839:0", + "src": "5777:839:0", "statements": [ { "expression": { "arguments": [ { - "id": 446, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -14099,29 +14003,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5819:28:0", + "src": "5840:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 442, + "id": 439, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5820:5:0", + "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 444, + "id": 441, "indexExpression": { - "id": 443, + "id": 440, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5826:8:0", + "referencedDeclaration": 431, + "src": "5847:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14132,22 +14036,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5820:15:0", + "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 445, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5836:11:0", + "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "5820:27:0", + "referencedDeclaration": 822, + "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14160,14 +14064,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 447, + "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5849:16:0", + "src": "5870:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -14186,7 +14090,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 441, + "id": 438, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14194,13 +14098,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5811:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 448, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -14209,22 +14113,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5811:55:0", + "src": "5832:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 449, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5811:55:0" + "src": "5832:55:0" }, { "expression": { "arguments": [ { - "id": 455, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -14232,29 +14136,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5878:27:0", + "src": "5899:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 451, + "id": 448, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5879:5:0", + "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 453, + "id": 450, "indexExpression": { - "id": 452, + "id": 449, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5885:8:0", + "referencedDeclaration": 431, + "src": "5906:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14265,22 +14169,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5879:15:0", + "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 454, + "id": 451, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5895:10:0", + "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "5879:26:0", + "referencedDeclaration": 824, + "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14293,14 +14197,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 456, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5907:15:0", + "src": "5928:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -14319,7 +14223,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 450, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14327,13 +14231,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5870:7:0", + "src": "5891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 457, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -14342,16 +14246,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5870:53:0", + "src": "5891:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5870:53:0" + "src": "5891:53:0" }, { "expression": { @@ -14361,7 +14265,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 465, + "id": 462, "isConstant": false, "isLValue": false, "isPure": false, @@ -14369,25 +14273,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 460, + "id": 457, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5935:5:0", + "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 462, + "id": 459, "indexExpression": { - "id": 461, + "id": 458, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5941:8:0", + "referencedDeclaration": 431, + "src": "5962:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14398,22 +14302,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5935:15:0", + "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 463, + "id": 460, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5951:11:0", + "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5935:27:0", + "referencedDeclaration": 820, + "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14422,18 +14326,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 464, + "id": 461, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5966:4:0", + "referencedDeclaration": 429, + "src": "5987:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5935:35:0", + "src": "5956:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14441,14 +14345,14 @@ }, { "hexValue": "4665654578636565647350726f746f636f6c466565", - "id": 466, + "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5972:23:0", + "src": "5993:23:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de", "typeString": "literal_string \"FeeExceedsProtocolFee\"" @@ -14467,7 +14371,7 @@ "typeString": "literal_string \"FeeExceedsProtocolFee\"" } ], - "id": 459, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14475,13 +14379,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5927:7:0", + "src": "5948:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 467, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -14490,39 +14394,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5927:69:0", + "src": "5948:69:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 468, + "id": 465, "nodeType": "ExpressionStatement", - "src": "5927:69:0" + "src": "5948:69:0" }, { "expression": { "arguments": [ { - "id": 476, + "id": 473, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "6081:15:0", + "referencedDeclaration": 590, + "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 477, + "id": 474, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6098:4:0", + "referencedDeclaration": 429, + "src": "6119:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14545,25 +14449,25 @@ { "expression": { "baseExpression": { - "id": 470, + "id": 467, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6049:5:0", + "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 472, + "id": 469, "indexExpression": { - "id": 471, + "id": 468, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6055:8:0", + "referencedDeclaration": 431, + "src": "6076:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14574,22 +14478,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6049:15:0", + "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 473, + "id": 470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6065:5:0", + "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6049:21:0", + "referencedDeclaration": 814, + "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14603,18 +14507,18 @@ "typeString": "address" } ], - "id": 469, + "id": 466, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6042:6:0", + "referencedDeclaration": 2554, + "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 474, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -14623,29 +14527,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:29:0", + "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 475, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6072:8:0", + "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6042:38:0", + "referencedDeclaration": 2521, + "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 478, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -14654,20 +14558,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:61:0", + "src": "6063:61:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 476, "nodeType": "ExpressionStatement", - "src": "6042:61:0" + "src": "6063:61:0" }, { "expression": { - "id": 485, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -14675,25 +14579,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 480, + "id": 477, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6132:5:0", + "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 482, + "id": 479, "indexExpression": { - "id": 481, + "id": 478, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6138:8:0", + "referencedDeclaration": 431, + "src": "6159:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14704,22 +14608,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6132:15:0", + "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 483, + "id": 480, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6148:10:0", + "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "6132:26:0", + "referencedDeclaration": 824, + "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14729,33 +14633,33 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 484, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6161:4:0", + "src": "6182:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6132:33:0", + "src": "6153:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 486, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6132:33:0" + "src": "6153:33:0" }, { "expression": { - "id": 492, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, @@ -14763,25 +14667,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 487, + "id": 484, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6169:5:0", + "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 489, + "id": 486, "indexExpression": { - "id": 488, + "id": 485, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6175:8:0", + "referencedDeclaration": 431, + "src": "6196:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14792,22 +14696,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6169:15:0", + "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 490, + "id": 487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6185:10:0", + "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "6169:26:0", + "referencedDeclaration": 828, + "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -14817,44 +14721,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 491, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6198:1:0", + "src": "6219:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6169:30:0", + "src": "6190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 493, + "id": 490, "nodeType": "ExpressionStatement", - "src": "6169:30:0" + "src": "6190:30:0" }, { "assignments": [ - 495 + 492 ], "declarations": [ { "constant": false, - "id": 495, + "id": 492, "mutability": "mutable", "name": "refundAmount", - "nameLocation": "6246:12:0", + "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "6238:20:0", + "scope": 531, + "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14862,10 +14766,10 @@ "typeString": "uint256" }, "typeName": { - "id": 494, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6238:7:0", + "src": "6259:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14874,13 +14778,13 @@ "visibility": "internal" } ], - "id": 507, + "id": 504, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -14890,7 +14794,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 501, "isConstant": false, "isLValue": false, "isPure": false, @@ -14898,25 +14802,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 496, + "id": 493, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6261:5:0", + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 498, + "id": 495, "indexExpression": { - "id": 497, + "id": 494, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6267:8:0", + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14927,22 +14831,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6261:15:0", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 499, + "id": 496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6277:6:0", + "memberLocation": "6298:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "6261:22:0", + "referencedDeclaration": 830, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14953,25 +14857,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 500, + "id": 497, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6286:5:0", + "src": "6307:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 502, + "id": 499, "indexExpression": { - "id": 501, + "id": 498, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6292:8:0", + "referencedDeclaration": 431, + "src": "6313:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14982,28 +14886,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6286:15:0", + "src": "6307:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 503, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6302:11:0", + "memberLocation": "6323:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "6286:27:0", + "referencedDeclaration": 820, + "src": "6307:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:52:0", + "src": "6282:52:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15012,25 +14916,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 505, + "id": 502, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6316:4:0", + "referencedDeclaration": 429, + "src": "6337:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:59:0", + "src": "6282:59:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6238:82:0" + "src": "6259:82:0" }, { "expression": { @@ -15038,25 +14942,25 @@ { "expression": { "baseExpression": { - "id": 515, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6433:5:0", + "src": "6454:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 517, + "id": 514, "indexExpression": { - "id": 516, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6439:8:0", + "referencedDeclaration": 431, + "src": "6460:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15067,22 +14971,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6433:15:0", + "src": "6454:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 518, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6449:13:0", + "memberLocation": "6470:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 829, - "src": "6433:29:0", + "referencedDeclaration": 826, + "src": "6454:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15093,18 +14997,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 524, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 519, + "id": 516, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6467:12:0", + "referencedDeclaration": 492, + "src": "6488:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15115,25 +15019,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 520, + "id": 517, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6482:5:0", + "src": "6503:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 522, + "id": 519, "indexExpression": { - "id": 521, + "id": 518, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6488:8:0", + "referencedDeclaration": 431, + "src": "6509:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15144,28 +15048,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6482:15:0", + "src": "6503:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 523, + "id": 520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6498:9:0", + "memberLocation": "6519:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "6482:25:0", + "referencedDeclaration": 818, + "src": "6503:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:40:0", + "src": "6488:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15188,25 +15092,25 @@ { "expression": { "baseExpression": { - "id": 509, + "id": 506, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6397:5:0", + "src": "6418:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 511, + "id": 508, "indexExpression": { - "id": 510, + "id": 507, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6403:8:0", + "referencedDeclaration": 431, + "src": "6424:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15217,22 +15121,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6397:15:0", + "src": "6418:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 512, + "id": 509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6413:5:0", + "memberLocation": "6434:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6397:21:0", + "referencedDeclaration": 814, + "src": "6418:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15246,18 +15150,18 @@ "typeString": "address" } ], - "id": 508, + "id": 505, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6390:6:0", + "referencedDeclaration": 2554, + "src": "6411:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 513, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -15266,29 +15170,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:29:0", + "src": "6411:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 514, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6420:8:0", + "memberLocation": "6441:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6390:38:0", + "referencedDeclaration": 2521, + "src": "6411:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 525, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -15297,39 +15201,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:121:0", + "src": "6411:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 526, + "id": 523, "nodeType": "ExpressionStatement", - "src": "6390:121:0" + "src": "6411:121:0" }, { "eventCall": { "arguments": [ { - "id": 528, + "id": 525, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6560:4:0", + "referencedDeclaration": 429, + "src": "6581:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 529, + "id": 526, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6566:8:0", + "referencedDeclaration": 431, + "src": "6587:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15347,18 +15251,18 @@ "typeString": "bytes32" } ], - "id": 527, + "id": 524, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "6546:13:0", + "referencedDeclaration": 803, + "src": "6567:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 530, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -15367,85 +15271,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6546:29:0", + "src": "6567:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 531, + "id": 528, "nodeType": "EmitStatement", - "src": "6541:34:0" + "src": "6562:34:0" }, { "expression": { "hexValue": "74727565", - "id": 532, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6587:4:0", + "src": "6608:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 440, - "id": 533, + "functionReturnParameters": 437, + "id": 530, "nodeType": "Return", - "src": "6580:11:0" + "src": "6601:11:0" } ] }, "documentation": { - "id": 430, + "id": 427, "nodeType": "StructuredDocumentation", - "src": "5633:34:0", + "src": "5654:34:0", "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 535, + "id": 532, "implemented": true, "kind": "function", "modifiers": [ { - "id": 437, + "id": 434, "kind": "modifierInvocation", "modifierName": { - "id": 436, + "id": 433, "name": "onlyAggregator", "nameLocations": [ - "5726:14:0" + "5747:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "5726:14:0" + "src": "5747:14:0" }, "nodeType": "ModifierInvocation", - "src": "5726:14:0" + "src": "5747:14:0" } ], "name": "refund", - "nameLocation": "5678:6:0", + "nameLocation": "5699:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 435, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 432, + "id": 429, "mutability": "mutable", "name": "_fee", - "nameLocation": "5693:4:0", + "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5685:12:0", + "scope": 532, + "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15453,10 +15357,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5685:7:0", + "src": "5706:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15466,13 +15370,13 @@ }, { "constant": false, - "id": 434, + "id": 431, "mutability": "mutable", "name": "_orderId", - "nameLocation": "5707:8:0", + "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5699:16:0", + "scope": 532, + "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15480,10 +15384,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 433, + "id": 430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5699:7:0", + "src": "5720:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15492,21 +15396,21 @@ "visibility": "internal" } ], - "src": "5684:32:0" + "src": "5705:32:0" }, "returnParameters": { - "id": 440, + "id": 437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 439, + "id": 436, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5750:4:0", + "scope": 532, + "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15514,10 +15418,10 @@ "typeString": "bool" }, "typeName": { - "id": 438, + "id": 435, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5750:4:0", + "src": "5771:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15526,45 +15430,45 @@ "visibility": "internal" } ], - "src": "5749:6:0" + "src": "5770:6:0" }, - "scope": 582, - "src": "5669:926:0", + "scope": 579, + "src": "5690:926:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 895 + 892 ], "body": { - "id": 548, + "id": 545, "nodeType": "Block", - "src": "6905:30:0", + "src": "6926:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 544, + "id": 541, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6916:5:0", + "src": "6937:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 546, + "id": 543, "indexExpression": { - "id": 545, + "id": 542, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "6922:8:0", + "referencedDeclaration": 535, + "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15575,46 +15479,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6916:15:0", + "src": "6937:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 543, - "id": 547, + "functionReturnParameters": 540, + "id": 544, "nodeType": "Return", - "src": "6909:22:0" + "src": "6930:22:0" } ] }, "documentation": { - "id": 536, + "id": 533, "nodeType": "StructuredDocumentation", - "src": "6786:40:0", + "src": "6807:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 549, + "id": 546, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6837:12:0", + "nameLocation": "6858:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 539, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 535, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6858:8:0", + "nameLocation": "6879:8:0", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6850:16:0", + "scope": 546, + "src": "6871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15622,10 +15526,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 537, + "id": 534, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6850:7:0", + "src": "6871:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15634,66 +15538,66 @@ "visibility": "internal" } ], - "src": "6849:18:0" + "src": "6870:18:0" }, "returnParameters": { - "id": 543, + "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 542, + "id": 539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6891:12:0", + "scope": 546, + "src": "6912:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 541, + "id": 538, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 540, + "id": 537, "name": "Order", "nameLocations": [ - "6891:5:0" + "6912:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, - "src": "6891:5:0" + "referencedDeclaration": 831, + "src": "6912:5:0" }, - "referencedDeclaration": 834, - "src": "6891:5:0", + "referencedDeclaration": 831, + "src": "6912:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6890:14:0" + "src": "6911:14:0" }, - "scope": 582, - "src": "6828:107:0", + "scope": 579, + "src": "6849:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 886 + 883 ], "body": { - "id": 567, + "id": 564, "nodeType": "Block", - "src": "7055:71:0", + "src": "7076:71:0", "statements": [ { "condition": { @@ -15701,32 +15605,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 561, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 557, + "id": 554, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "7063:17:0", + "referencedDeclaration": 596, + "src": "7084:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 559, + "id": 556, "indexExpression": { - "id": 558, + "id": 555, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "7081:6:0", + "referencedDeclaration": 549, + "src": "7102:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15737,7 +15641,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7063:25:0", + "src": "7084:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15747,103 +15651,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 560, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7092:1:0", + "src": "7113:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7063:30:0", + "src": "7084:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 564, + "id": 561, "nodeType": "IfStatement", - "src": "7059:47:0", + "src": "7080:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 562, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7102:4:0", + "src": "7123:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 556, - "id": 563, + "functionReturnParameters": 553, + "id": 560, "nodeType": "Return", - "src": "7095:11:0" + "src": "7116:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 565, + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7117:5:0", + "src": "7138:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 556, - "id": 566, + "functionReturnParameters": 553, + "id": 563, "nodeType": "Return", - "src": "7110:12:0" + "src": "7131:12:0" } ] }, "documentation": { - "id": 550, + "id": 547, "nodeType": "StructuredDocumentation", - "src": "6938:44:0", + "src": "6959:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 568, + "id": 565, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "6993:16:0", + "nameLocation": "7014:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 553, + "id": 550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 549, "mutability": "mutable", "name": "_token", - "nameLocation": "7018:6:0", + "nameLocation": "7039:6:0", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7010:14:0", + "scope": 565, + "src": "7031:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15851,10 +15755,10 @@ "typeString": "address" }, "typeName": { - "id": 551, + "id": 548, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7010:7:0", + "src": "7031:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15864,21 +15768,21 @@ "visibility": "internal" } ], - "src": "7009:16:0" + "src": "7030:16:0" }, "returnParameters": { - "id": 556, + "id": 553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 555, + "id": 552, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7049:4:0", + "scope": 565, + "src": "7070:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15886,10 +15790,10 @@ "typeString": "bool" }, "typeName": { - "id": 554, + "id": 551, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7049:4:0", + "src": "7070:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15898,104 +15802,104 @@ "visibility": "internal" } ], - "src": "7048:6:0" + "src": "7069:6:0" }, - "scope": 582, - "src": "6984:142:0", + "scope": 579, + "src": "7005:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 903 + 900 ], "body": { - "id": 580, + "id": 577, "nodeType": "Block", - "src": "7237:44:0", + "src": "7258:44:0", "statements": [ { "expression": { "components": [ { - "id": 576, + "id": 573, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "7249:18:0", + "referencedDeclaration": 588, + "src": "7270:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 577, + "id": 574, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7269:7:0", + "referencedDeclaration": 586, + "src": "7290:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 578, + "id": 575, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7248:29:0", + "src": "7269:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 575, - "id": 579, + "functionReturnParameters": 572, + "id": 576, "nodeType": "Return", - "src": "7241:36:0" + "src": "7262:36:0" } ] }, "documentation": { - "id": 569, + "id": 566, "nodeType": "StructuredDocumentation", - "src": "7129:41:0", + "src": "7150:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 581, + "id": 578, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7181:13:0", + "nameLocation": "7202:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 567, "nodeType": "ParameterList", "parameters": [], - "src": "7194:2:0" + "src": "7215:2:0" }, "returnParameters": { - "id": 575, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 569, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7220:6:0", + "scope": 578, + "src": "7241:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16003,10 +15907,10 @@ "typeString": "uint64" }, "typeName": { - "id": 571, + "id": 568, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7220:6:0", + "src": "7241:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -16016,13 +15920,13 @@ }, { "constant": false, - "id": 574, + "id": 571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7228:7:0", + "scope": 578, + "src": "7249:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16030,10 +15934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7228:7:0", + "src": "7249:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16042,21 +15946,21 @@ "visibility": "internal" } ], - "src": "7219:17:0" + "src": "7240:17:0" }, - "scope": 582, - "src": "7172:109:0", + "scope": 579, + "src": "7193:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 583, - "src": "390:6893:0", + "scope": 580, + "src": "390:6914:0", "usedErrors": [] } ], - "src": "39:7245:0" + "src": "39:7266:0" }, "compiler": { "name": "solc", @@ -16064,5 +15968,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.564Z" + "updatedAt": "2024-06-27T12:24:25.265Z" } \ No newline at end of file diff --git a/build/contracts/GatewaySettingManager.json b/build/contracts/GatewaySettingManager.json index 435f7b3..88c6b01 100644 --- a/build/contracts/GatewaySettingManager.json +++ b/build/contracts/GatewaySettingManager.json @@ -230,37 +230,37 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50610f258061003a6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e58221220f93d1164af82e7f8e118a8f4bbd75e9722a5d34215580245af85928fdbfa715264736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e58221220f93d1164af82e7f8e118a8f4bbd75e9722a5d34215580245af85928fdbfa715264736f6c63430008120033", + "bytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50610f258061003a6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", "sourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:101:5;;;:::i;:::-;;2031:212:4;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:551:1;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;1436:178::-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;88:117:14:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:118::-;2649:24;2667:5;2649:24;:::i;:::-;2644:3;2637:37;2562:118;;:::o;2686:222::-;2779:4;2817:2;2806:9;2802:18;2794:26;;2830:71;2898:1;2887:9;2883:17;2874:6;2830:71;:::i;:::-;2686:222;;;;:::o;2914:77::-;2951:7;2980:5;2969:16;;2914:77;;;:::o;2997:122::-;3070:24;3088:5;3070:24;:::i;:::-;3063:5;3060:35;3050:63;;3109:1;3106;3099:12;3050:63;2997:122;:::o;3125:139::-;3171:5;3209:6;3196:20;3187:29;;3225:33;3252:5;3225:33;:::i;:::-;3125:139;;;;:::o;3270:619::-;3347:6;3355;3363;3412:2;3400:9;3391:7;3387:23;3383:32;3380:119;;;3418:79;;:::i;:::-;3380:119;3538:1;3563:53;3608:7;3599:6;3588:9;3584:22;3563:53;:::i;:::-;3553:63;;3509:117;3665:2;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3636:118;3793:2;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3764:118;3270:619;;;;;:::o;3895:329::-;3954:6;4003:2;3991:9;3982:7;3978:23;3974:32;3971:119;;;4009:79;;:::i;:::-;3971:119;4129:1;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4100:117;3895:329;;;;:::o;4230:169::-;4314:11;4348:6;4343:3;4336:19;4388:4;4383:3;4379:14;4364:29;;4230:169;;;;:::o;4405:171::-;4545:23;4541:1;4533:6;4529:14;4522:47;4405:171;:::o;4582:366::-;4724:3;4745:67;4809:2;4804:3;4745:67;:::i;:::-;4738:74;;4821:93;4910:3;4821:93;:::i;:::-;4939:2;4934:3;4930:12;4923:19;;4582:366;;;:::o;4954:419::-;5120:4;5158:2;5147:9;5143:18;5135:26;;5207:9;5201:4;5197:20;5193:1;5182:9;5178:17;5171:47;5235:131;5361:4;5235:131;:::i;:::-;5227:139;;4954:419;;;:::o;5379:224::-;5519:34;5515:1;5507:6;5503:14;5496:58;5588:7;5583:2;5575:6;5571:15;5564:32;5379:224;:::o;5609:366::-;5751:3;5772:67;5836:2;5831:3;5772:67;:::i;:::-;5765:74;;5848:93;5937:3;5848:93;:::i;:::-;5966:2;5961:3;5957:12;5950:19;;5609:366;;;:::o;5981:419::-;6147:4;6185:2;6174:9;6170:18;6162:26;;6234:9;6228:4;6224:20;6220:1;6209:9;6205:17;6198:47;6262:131;6388:4;6262:131;:::i;:::-;6254:139;;5981:419;;;:::o;6406:226::-;6546:34;6542:1;6534:6;6530:14;6523:58;6615:9;6610:2;6602:6;6598:15;6591:34;6406:226;:::o;6638:366::-;6780:3;6801:67;6865:2;6860:3;6801:67;:::i;:::-;6794:74;;6877:93;6966:3;6877:93;:::i;:::-;6995:2;6990:3;6986:12;6979:19;;6638:366;;;:::o;7010:419::-;7176:4;7214:2;7203:9;7199:18;7191:26;;7263:9;7257:4;7253:20;7249:1;7238:9;7234:17;7227:47;7291:131;7417:4;7291:131;:::i;:::-;7283:139;;7010:419;;;:::o;7435:115::-;7520:23;7537:5;7520:23;:::i;:::-;7515:3;7508:36;7435:115;;:::o;7556:218::-;7647:4;7685:2;7674:9;7670:18;7662:26;;7698:69;7764:1;7753:9;7749:17;7740:6;7698:69;:::i;:::-;7556:218;;;;:::o;7780:228::-;7920:34;7916:1;7908:6;7904:14;7897:58;7989:11;7984:2;7976:6;7972:15;7965:36;7780:228;:::o;8014:366::-;8156:3;8177:67;8241:2;8236:3;8177:67;:::i;:::-;8170:74;;8253:93;8342:3;8253:93;:::i;:::-;8371:2;8366:3;8362:12;8355:19;;8014:366;;;:::o;8386:419::-;8552:4;8590:2;8579:9;8575:18;8567:26;;8639:9;8633:4;8629:20;8625:1;8614:9;8610:17;8603:47;8667:131;8793:4;8667:131;:::i;:::-;8659:139;;8386:419;;;:::o;8811:173::-;8951:25;8947:1;8939:6;8935:14;8928:49;8811:173;:::o;8990:366::-;9132:3;9153:67;9217:2;9212:3;9153:67;:::i;:::-;9146:74;;9229:93;9318:3;9229:93;:::i;:::-;9347:2;9342:3;9338:12;9331:19;;8990:366;;;:::o;9362:419::-;9528:4;9566:2;9555:9;9551:18;9543:26;;9615:9;9609:4;9605:20;9601:1;9590:9;9586:17;9579:47;9643:131;9769:4;9643:131;:::i;:::-;9635:139;;9362:419;;;:::o;9787:118::-;9874:24;9892:5;9874:24;:::i;:::-;9869:3;9862:37;9787:118;;:::o;9911:222::-;10004:4;10042:2;10031:9;10027:18;10019:26;;10055:71;10123:1;10112:9;10108:17;10099:6;10055:71;:::i;:::-;9911:222;;;;:::o;10139:182::-;10279:34;10275:1;10267:6;10263:14;10256:58;10139:182;:::o;10327:366::-;10469:3;10490:67;10554:2;10549:3;10490:67;:::i;:::-;10483:74;;10566:93;10655:3;10566:93;:::i;:::-;10684:2;10679:3;10675:12;10668:19;;10327:366;;;:::o;10699:419::-;10865:4;10903:2;10892:9;10888:18;10880:26;;10952:9;10946:4;10942:20;10938:1;10927:9;10923:17;10916:47;10980:131;11106:4;10980:131;:::i;:::-;10972:139;;10699:419;;;:::o", "source": "// SPDX-License-Identifier: UNLICENSED\n\n/**\n * @title GatewaySettingManager\n * @dev This contract manages the settings and configurations for the Gateway protocol.\n */\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\n\tuint256 internal MAX_BPS;\n\tuint64 internal protocolFeePercent;\n\taddress internal treasuryAddress;\n\taddress internal _aggregatorAddress;\n\tmapping(address => uint256) internal _isTokenSupported;\n\n\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\n\tuint256[50] private __gap;\n\n\n\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\n\tevent ProtocolFeeUpdated(uint64 protocolFee);\n\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\n\tevent SetFeeRecipient(address indexed treasuryAddress);\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\n\t/**\n\t * @dev Sets the boolean value for a specific setting.\n\t * @param what The setting to be updated.\n\t * @param value The address or value associated with the setting.\n\t * @param status The boolean value to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\trequire(status == 1 || status == 2, 'Gateway: invalid status');\n\t\tif (what == 'token') {\n\t\t\t_isTokenSupported[value] = status;\n\t\t\temit SettingManagerBool(what, value, status);\n\t\t}\n\t}\n\n\t/**\n\t * @dev Updates the protocol fee percentage.\n\t * @param _protocolFeePercent The new protocol fee percentage to be set.\n\t */\n\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\n\t\tprotocolFeePercent = _protocolFeePercent;\n\t\temit ProtocolFeeUpdated(_protocolFeePercent);\n\t}\n\n\t/**\n\t * @dev Updates a protocol address.\n\t * @param what The address type to be updated (treasury or aggregator).\n\t * @param value The new address to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\tbool updated;\n\t\tif (what == 'treasury') {\n\t\t\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\n\t\t\ttreasuryAddress = value;\n\t\t\tupdated = true;\n\t\t} else if (what == 'aggregator') {\n\t\t\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\n\t\t\t_aggregatorAddress = value;\n\t\t\tupdated = true;\n\t\t}\n\t\tif (updated) {\n\t\t\temit ProtocolAddressUpdated(what, value);\n\t\t}\n\t}\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "GatewaySettingManager": [ - 766 + 763 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 767, + "id": 764, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 584, + "id": 581, "literals": [ "solidity", "^", @@ -273,11 +273,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 585, + "id": 582, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 767, - "sourceUnit": 1082, + "scope": 764, + "sourceUnit": 1079, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -287,16 +287,16 @@ "baseContracts": [ { "baseName": { - "id": 586, + "id": 583, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1081, + "referencedDeclaration": 1078, "src": "310:23:1" }, - "id": 587, + "id": 584, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -305,13 +305,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 766, + "id": 763, "linearizedBaseContracts": [ - 766, - 1081, - 1214, - 1892, - 1383 + 763, + 1078, + 1211, + 1889, + 1380 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -319,12 +319,12 @@ "nodes": [ { "constant": false, - "id": 589, + "id": 586, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -333,7 +333,7 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -346,12 +346,12 @@ }, { "constant": false, - "id": 591, + "id": 588, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -360,7 +360,7 @@ "typeString": "uint64" }, "typeName": { - "id": 590, + "id": 587, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -373,12 +373,12 @@ }, { "constant": false, - "id": 593, + "id": 590, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -387,7 +387,7 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 589, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -401,12 +401,12 @@ }, { "constant": false, - "id": 595, + "id": 592, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -415,7 +415,7 @@ "typeString": "address" }, "typeName": { - "id": 594, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -429,12 +429,12 @@ }, { "constant": false, - "id": 599, + "id": 596, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -443,11 +443,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 598, + "id": 595, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 596, + "id": 593, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -465,7 +465,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 597, + "id": 594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -479,12 +479,12 @@ }, { "constant": false, - "id": 603, + "id": 600, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -494,7 +494,7 @@ }, "typeName": { "baseType": { - "id": 600, + "id": 597, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -503,10 +503,10 @@ "typeString": "uint256" } }, - "id": 602, + "id": 599, "length": { "hexValue": "3530", - "id": 601, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,23 +532,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 611, + "id": 608, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 610, + "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 602, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -557,7 +557,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 601, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -570,13 +570,13 @@ }, { "constant": false, - "id": 607, + "id": 604, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -585,7 +585,7 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 603, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -599,13 +599,13 @@ }, { "constant": false, - "id": 609, + "id": 606, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -614,7 +614,7 @@ "typeString": "uint256" }, "typeName": { - "id": 608, + "id": 605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -633,23 +633,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 615, + "id": 612, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 614, + "id": 611, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 610, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 615, + "scope": 612, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -658,7 +658,7 @@ "typeString": "uint64" }, "typeName": { - "id": 612, + "id": 609, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -677,23 +677,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 621, + "id": 618, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 620, + "id": 617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 617, + "id": 614, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -702,7 +702,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 613, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -715,13 +715,13 @@ }, { "constant": false, - "id": 619, + "id": 616, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -730,7 +730,7 @@ "typeString": "address" }, "typeName": { - "id": 618, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -750,23 +750,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 625, + "id": 622, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 624, + "id": 621, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 620, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 625, + "scope": 622, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -775,7 +775,7 @@ "typeString": "address" }, "typeName": { - "id": 622, + "id": 619, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -794,7 +794,7 @@ }, { "body": { - "id": 675, + "id": 672, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -806,17 +806,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 643, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 638, + "id": 635, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -829,7 +829,7 @@ "arguments": [ { "hexValue": "30", - "id": 641, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, @@ -851,7 +851,7 @@ "typeString": "int_const 0" } ], - "id": 640, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, @@ -863,14 +863,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 639, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 642, + "id": 639, "isConstant": false, "isLValue": false, "isPure": true, @@ -894,7 +894,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 644, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -920,7 +920,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 637, + "id": 634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -934,7 +934,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 645, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -950,7 +950,7 @@ "typeString": "tuple()" } }, - "id": 646, + "id": 643, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -962,7 +962,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 654, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -972,17 +972,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 645, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -993,7 +993,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 649, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, @@ -1020,17 +1020,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 653, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 651, + "id": 648, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1041,7 +1041,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 652, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -1069,7 +1069,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 655, + "id": 652, "isConstant": false, "isLValue": false, "isPure": true, @@ -1095,7 +1095,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 647, + "id": 644, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1109,7 +1109,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 656, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -1125,7 +1125,7 @@ "typeString": "tuple()" } }, - "id": 657, + "id": 654, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -1135,17 +1135,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 660, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 658, + "id": 655, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1156,7 +1156,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 659, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -1176,41 +1176,41 @@ "typeString": "bool" } }, - "id": 674, + "id": 671, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 673, + "id": 670, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 665, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 661, + "id": 658, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, + "referencedDeclaration": 596, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 663, + "id": 660, "indexExpression": { - "id": 662, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1231,11 +1231,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 664, + "id": 661, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1248,7 +1248,7 @@ "typeString": "uint256" } }, - "id": 666, + "id": 663, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -1256,11 +1256,11 @@ "eventCall": { "arguments": [ { - "id": 668, + "id": 665, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1268,11 +1268,11 @@ } }, { - "id": 669, + "id": 666, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1280,11 +1280,11 @@ } }, { - "id": 670, + "id": 667, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1307,18 +1307,18 @@ "typeString": "uint256" } ], - "id": 667, + "id": 664, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, + "referencedDeclaration": 608, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 671, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -1334,7 +1334,7 @@ "typeString": "tuple()" } }, - "id": 672, + "id": 669, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -1344,27 +1344,27 @@ ] }, "documentation": { - "id": 626, + "id": 623, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 676, + "id": 673, "implemented": true, "kind": "function", "modifiers": [ { - "id": 635, + "id": 632, "kind": "modifierInvocation", "modifierName": { - "id": 634, + "id": 631, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -1375,17 +1375,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 628, + "id": 625, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -1394,7 +1394,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 627, + "id": 624, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -1407,12 +1407,12 @@ }, { "constant": false, - "id": 630, + "id": 627, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -1421,7 +1421,7 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 626, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -1435,12 +1435,12 @@ }, { "constant": false, - "id": 632, + "id": 629, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -1449,7 +1449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 628, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -1464,12 +1464,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 636, + "id": 633, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 766, + "scope": 763, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -1477,23 +1477,23 @@ }, { "body": { - "id": 692, + "id": 689, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 686, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 684, + "id": 681, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1503,11 +1503,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 685, + "id": 682, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1520,7 +1520,7 @@ "typeString": "uint64" } }, - "id": 687, + "id": 684, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -1528,11 +1528,11 @@ "eventCall": { "arguments": [ { - "id": 689, + "id": 686, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1547,18 +1547,18 @@ "typeString": "uint64" } ], - "id": 688, + "id": 685, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, + "referencedDeclaration": 612, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 690, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -1574,34 +1574,34 @@ "typeString": "tuple()" } }, - "id": 691, + "id": 688, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 677, + "id": 674, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 693, + "id": 690, "implemented": true, "kind": "function", "modifiers": [ { - "id": 682, + "id": 679, "kind": "modifierInvocation", "modifierName": { - "id": 681, + "id": 678, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -1612,17 +1612,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 677, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 676, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 693, + "scope": 690, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -1631,7 +1631,7 @@ "typeString": "uint64" }, "typeName": { - "id": 678, + "id": 675, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -1646,12 +1646,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 683, + "id": 680, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 766, + "scope": 763, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -1659,7 +1659,7 @@ }, { "body": { - "id": 764, + "id": 761, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -1671,17 +1671,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 709, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 704, + "id": 701, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1694,7 +1694,7 @@ "arguments": [ { "hexValue": "30", - "id": 707, + "id": 704, "isConstant": false, "isLValue": false, "isPure": true, @@ -1716,7 +1716,7 @@ "typeString": "int_const 0" } ], - "id": 706, + "id": 703, "isConstant": false, "isLValue": false, "isPure": true, @@ -1728,14 +1728,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 705, + "id": 702, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 708, + "id": 705, "isConstant": false, "isLValue": false, "isPure": true, @@ -1759,7 +1759,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 710, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, @@ -1785,7 +1785,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 703, + "id": 700, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1799,7 +1799,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 711, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -1815,23 +1815,23 @@ "typeString": "tuple()" } }, - "id": 712, + "id": 709, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 714 + 711 ], "declarations": [ { "constant": false, - "id": 714, + "id": 711, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 764, + "scope": 761, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -1840,7 +1840,7 @@ "typeString": "bool" }, "typeName": { - "id": 713, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -1852,7 +1852,7 @@ "visibility": "internal" } ], - "id": 715, + "id": 712, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -1862,17 +1862,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 718, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 716, + "id": 713, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1883,7 +1883,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 717, + "id": 714, "isConstant": false, "isLValue": false, "isPure": true, @@ -1909,17 +1909,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 737, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 735, + "id": 732, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1930,7 +1930,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 736, + "id": 733, "isConstant": false, "isLValue": false, "isPure": true, @@ -1950,11 +1950,11 @@ "typeString": "bool" } }, - "id": 754, + "id": 751, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 753, + "id": 750, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -1966,17 +1966,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 741, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 739, + "id": 736, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1986,11 +1986,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 740, + "id": 737, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2005,7 +2005,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 742, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, @@ -2031,7 +2031,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 738, + "id": 735, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2045,7 +2045,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 743, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -2061,23 +2061,23 @@ "typeString": "tuple()" } }, - "id": 744, + "id": 741, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 747, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 745, + "id": 742, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2087,11 +2087,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 746, + "id": 743, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2104,23 +2104,23 @@ "typeString": "address" } }, - "id": 748, + "id": 745, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 751, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 749, + "id": 746, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2131,7 +2131,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 750, + "id": 747, "isConstant": false, "isLValue": false, "isPure": true, @@ -2151,18 +2151,18 @@ "typeString": "bool" } }, - "id": 752, + "id": 749, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 755, + "id": 752, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 734, + "id": 731, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -2174,17 +2174,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 722, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 720, + "id": 717, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2194,11 +2194,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 721, + "id": 718, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2213,7 +2213,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 723, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, @@ -2239,7 +2239,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 719, + "id": 716, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2253,7 +2253,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 724, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -2269,23 +2269,23 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 722, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 728, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 726, + "id": 723, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2295,11 +2295,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 727, + "id": 724, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2312,23 +2312,23 @@ "typeString": "address" } }, - "id": 729, + "id": 726, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 732, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 730, + "id": 727, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2339,7 +2339,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 731, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -2359,7 +2359,7 @@ "typeString": "bool" } }, - "id": 733, + "id": 730, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -2368,22 +2368,22 @@ }, { "condition": { - "id": 756, + "id": 753, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 763, + "id": 760, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 762, + "id": 759, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -2391,11 +2391,11 @@ "eventCall": { "arguments": [ { - "id": 758, + "id": 755, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2403,11 +2403,11 @@ } }, { - "id": 759, + "id": 756, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2426,18 +2426,18 @@ "typeString": "address" } ], - "id": 757, + "id": 754, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 621, + "referencedDeclaration": 618, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 760, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -2453,7 +2453,7 @@ "typeString": "tuple()" } }, - "id": 761, + "id": 758, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -2463,27 +2463,27 @@ ] }, "documentation": { - "id": 694, + "id": 691, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 765, + "id": 762, "implemented": true, "kind": "function", "modifiers": [ { - "id": 701, + "id": 698, "kind": "modifierInvocation", "modifierName": { - "id": 700, + "id": 697, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -2494,17 +2494,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 699, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 693, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -2513,7 +2513,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 695, + "id": 692, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -2526,12 +2526,12 @@ }, { "constant": false, - "id": 698, + "id": 695, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 694, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -2556,19 +2556,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 702, + "id": 699, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 766, + "scope": 763, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 767, + "scope": 764, "src": "276:2570:1", "usedErrors": [] } @@ -2576,30 +2576,30 @@ "src": "168:2679:1" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "GatewaySettingManager": [ - 766 + 763 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 767, + "id": 764, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 584, + "id": 581, "literals": [ "solidity", "^", @@ -2612,11 +2612,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 585, + "id": 582, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 767, - "sourceUnit": 1082, + "scope": 764, + "sourceUnit": 1079, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -2626,16 +2626,16 @@ "baseContracts": [ { "baseName": { - "id": 586, + "id": 583, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1081, + "referencedDeclaration": 1078, "src": "310:23:1" }, - "id": 587, + "id": 584, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -2644,13 +2644,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 766, + "id": 763, "linearizedBaseContracts": [ - 766, - 1081, - 1214, - 1892, - 1383 + 763, + 1078, + 1211, + 1889, + 1380 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -2658,12 +2658,12 @@ "nodes": [ { "constant": false, - "id": 589, + "id": 586, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -2672,7 +2672,7 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -2685,12 +2685,12 @@ }, { "constant": false, - "id": 591, + "id": 588, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -2699,7 +2699,7 @@ "typeString": "uint64" }, "typeName": { - "id": 590, + "id": 587, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -2712,12 +2712,12 @@ }, { "constant": false, - "id": 593, + "id": 590, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -2726,7 +2726,7 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 589, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -2740,12 +2740,12 @@ }, { "constant": false, - "id": 595, + "id": 592, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -2754,7 +2754,7 @@ "typeString": "address" }, "typeName": { - "id": 594, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -2768,12 +2768,12 @@ }, { "constant": false, - "id": 599, + "id": 596, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -2782,11 +2782,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 598, + "id": 595, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 596, + "id": 593, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -2804,7 +2804,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 597, + "id": 594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -2818,12 +2818,12 @@ }, { "constant": false, - "id": 603, + "id": 600, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -2833,7 +2833,7 @@ }, "typeName": { "baseType": { - "id": 600, + "id": 597, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -2842,10 +2842,10 @@ "typeString": "uint256" } }, - "id": 602, + "id": 599, "length": { "hexValue": "3530", - "id": 601, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, @@ -2871,23 +2871,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 611, + "id": 608, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 610, + "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 602, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -2896,7 +2896,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 601, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -2909,13 +2909,13 @@ }, { "constant": false, - "id": 607, + "id": 604, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 603, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -2938,13 +2938,13 @@ }, { "constant": false, - "id": 609, + "id": 606, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -2953,7 +2953,7 @@ "typeString": "uint256" }, "typeName": { - "id": 608, + "id": 605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -2972,23 +2972,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 615, + "id": 612, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 614, + "id": 611, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 610, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 615, + "scope": 612, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -2997,7 +2997,7 @@ "typeString": "uint64" }, "typeName": { - "id": 612, + "id": 609, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -3016,23 +3016,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 621, + "id": 618, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 620, + "id": 617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 617, + "id": 614, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -3041,7 +3041,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 613, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -3054,13 +3054,13 @@ }, { "constant": false, - "id": 619, + "id": 616, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -3069,7 +3069,7 @@ "typeString": "address" }, "typeName": { - "id": 618, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -3089,23 +3089,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 625, + "id": 622, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 624, + "id": 621, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 620, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 625, + "scope": 622, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -3114,7 +3114,7 @@ "typeString": "address" }, "typeName": { - "id": 622, + "id": 619, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -3133,7 +3133,7 @@ }, { "body": { - "id": 675, + "id": 672, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -3145,17 +3145,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 643, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 638, + "id": 635, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3168,7 +3168,7 @@ "arguments": [ { "hexValue": "30", - "id": 641, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, @@ -3190,7 +3190,7 @@ "typeString": "int_const 0" } ], - "id": 640, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, @@ -3202,14 +3202,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 639, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 642, + "id": 639, "isConstant": false, "isLValue": false, "isPure": true, @@ -3233,7 +3233,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 644, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -3259,7 +3259,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 637, + "id": 634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3273,7 +3273,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 645, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -3289,7 +3289,7 @@ "typeString": "tuple()" } }, - "id": 646, + "id": 643, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -3301,7 +3301,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 654, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -3311,17 +3311,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 645, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3332,7 +3332,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 649, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, @@ -3359,17 +3359,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 653, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 651, + "id": 648, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3380,7 +3380,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 652, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -3408,7 +3408,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 655, + "id": 652, "isConstant": false, "isLValue": false, "isPure": true, @@ -3434,7 +3434,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 647, + "id": 644, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3448,7 +3448,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 656, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -3464,7 +3464,7 @@ "typeString": "tuple()" } }, - "id": 657, + "id": 654, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -3474,17 +3474,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 660, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 658, + "id": 655, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3495,7 +3495,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 659, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -3515,41 +3515,41 @@ "typeString": "bool" } }, - "id": 674, + "id": 671, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 673, + "id": 670, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 665, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 661, + "id": 658, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, + "referencedDeclaration": 596, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 663, + "id": 660, "indexExpression": { - "id": 662, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3570,11 +3570,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 664, + "id": 661, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3587,7 +3587,7 @@ "typeString": "uint256" } }, - "id": 666, + "id": 663, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -3595,11 +3595,11 @@ "eventCall": { "arguments": [ { - "id": 668, + "id": 665, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3607,11 +3607,11 @@ } }, { - "id": 669, + "id": 666, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3619,11 +3619,11 @@ } }, { - "id": 670, + "id": 667, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3646,18 +3646,18 @@ "typeString": "uint256" } ], - "id": 667, + "id": 664, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, + "referencedDeclaration": 608, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 671, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -3673,7 +3673,7 @@ "typeString": "tuple()" } }, - "id": 672, + "id": 669, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -3683,27 +3683,27 @@ ] }, "documentation": { - "id": 626, + "id": 623, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 676, + "id": 673, "implemented": true, "kind": "function", "modifiers": [ { - "id": 635, + "id": 632, "kind": "modifierInvocation", "modifierName": { - "id": 634, + "id": 631, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -3714,17 +3714,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 628, + "id": 625, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -3733,7 +3733,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 627, + "id": 624, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -3746,12 +3746,12 @@ }, { "constant": false, - "id": 630, + "id": 627, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -3760,7 +3760,7 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 626, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -3774,12 +3774,12 @@ }, { "constant": false, - "id": 632, + "id": 629, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -3788,7 +3788,7 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 628, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -3803,12 +3803,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 636, + "id": 633, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 766, + "scope": 763, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -3816,23 +3816,23 @@ }, { "body": { - "id": 692, + "id": 689, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 686, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 684, + "id": 681, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3842,11 +3842,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 685, + "id": 682, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3859,7 +3859,7 @@ "typeString": "uint64" } }, - "id": 687, + "id": 684, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -3867,11 +3867,11 @@ "eventCall": { "arguments": [ { - "id": 689, + "id": 686, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3886,18 +3886,18 @@ "typeString": "uint64" } ], - "id": 688, + "id": 685, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, + "referencedDeclaration": 612, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 690, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -3913,34 +3913,34 @@ "typeString": "tuple()" } }, - "id": 691, + "id": 688, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 677, + "id": 674, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 693, + "id": 690, "implemented": true, "kind": "function", "modifiers": [ { - "id": 682, + "id": 679, "kind": "modifierInvocation", "modifierName": { - "id": 681, + "id": 678, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -3951,17 +3951,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 677, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 676, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 693, + "scope": 690, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -3970,7 +3970,7 @@ "typeString": "uint64" }, "typeName": { - "id": 678, + "id": 675, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -3985,12 +3985,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 683, + "id": 680, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 766, + "scope": 763, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -3998,7 +3998,7 @@ }, { "body": { - "id": 764, + "id": 761, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -4010,17 +4010,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 709, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 704, + "id": 701, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4033,7 +4033,7 @@ "arguments": [ { "hexValue": "30", - "id": 707, + "id": 704, "isConstant": false, "isLValue": false, "isPure": true, @@ -4055,7 +4055,7 @@ "typeString": "int_const 0" } ], - "id": 706, + "id": 703, "isConstant": false, "isLValue": false, "isPure": true, @@ -4067,14 +4067,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 705, + "id": 702, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 708, + "id": 705, "isConstant": false, "isLValue": false, "isPure": true, @@ -4098,7 +4098,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 710, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, @@ -4124,7 +4124,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 703, + "id": 700, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4138,7 +4138,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 711, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,23 +4154,23 @@ "typeString": "tuple()" } }, - "id": 712, + "id": 709, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 714 + 711 ], "declarations": [ { "constant": false, - "id": 714, + "id": 711, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 764, + "scope": 761, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -4179,7 +4179,7 @@ "typeString": "bool" }, "typeName": { - "id": 713, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -4191,7 +4191,7 @@ "visibility": "internal" } ], - "id": 715, + "id": 712, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -4201,17 +4201,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 718, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 716, + "id": 713, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4222,7 +4222,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 717, + "id": 714, "isConstant": false, "isLValue": false, "isPure": true, @@ -4248,17 +4248,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 737, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 735, + "id": 732, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4269,7 +4269,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 736, + "id": 733, "isConstant": false, "isLValue": false, "isPure": true, @@ -4289,11 +4289,11 @@ "typeString": "bool" } }, - "id": 754, + "id": 751, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 753, + "id": 750, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -4305,17 +4305,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 741, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 739, + "id": 736, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4325,11 +4325,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 740, + "id": 737, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4344,7 +4344,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 742, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, @@ -4370,7 +4370,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 738, + "id": 735, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4384,7 +4384,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 743, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,23 +4400,23 @@ "typeString": "tuple()" } }, - "id": 744, + "id": 741, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 747, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 745, + "id": 742, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4426,11 +4426,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 746, + "id": 743, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4443,23 +4443,23 @@ "typeString": "address" } }, - "id": 748, + "id": 745, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 751, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 749, + "id": 746, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4470,7 +4470,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 750, + "id": 747, "isConstant": false, "isLValue": false, "isPure": true, @@ -4490,18 +4490,18 @@ "typeString": "bool" } }, - "id": 752, + "id": 749, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 755, + "id": 752, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 734, + "id": 731, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -4513,17 +4513,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 722, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 720, + "id": 717, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4533,11 +4533,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 721, + "id": 718, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4552,7 +4552,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 723, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, @@ -4578,7 +4578,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 719, + "id": 716, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4592,7 +4592,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 724, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -4608,23 +4608,23 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 722, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 728, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 726, + "id": 723, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4634,11 +4634,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 727, + "id": 724, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4651,23 +4651,23 @@ "typeString": "address" } }, - "id": 729, + "id": 726, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 732, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 730, + "id": 727, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4678,7 +4678,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 731, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -4698,7 +4698,7 @@ "typeString": "bool" } }, - "id": 733, + "id": 730, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -4707,22 +4707,22 @@ }, { "condition": { - "id": 756, + "id": 753, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 763, + "id": 760, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 762, + "id": 759, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -4730,11 +4730,11 @@ "eventCall": { "arguments": [ { - "id": 758, + "id": 755, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4742,11 +4742,11 @@ } }, { - "id": 759, + "id": 756, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4765,18 +4765,18 @@ "typeString": "address" } ], - "id": 757, + "id": 754, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 621, + "referencedDeclaration": 618, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 760, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -4792,7 +4792,7 @@ "typeString": "tuple()" } }, - "id": 761, + "id": 758, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -4802,27 +4802,27 @@ ] }, "documentation": { - "id": 694, + "id": 691, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 765, + "id": 762, "implemented": true, "kind": "function", "modifiers": [ { - "id": 701, + "id": 698, "kind": "modifierInvocation", "modifierName": { - "id": 700, + "id": 697, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -4833,17 +4833,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 699, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 693, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -4852,7 +4852,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 695, + "id": 692, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -4865,12 +4865,12 @@ }, { "constant": false, - "id": 698, + "id": 695, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -4879,7 +4879,7 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 694, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -4895,19 +4895,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 702, + "id": 699, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 766, + "scope": 763, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 767, + "scope": 764, "src": "276:2570:1", "usedErrors": [] } @@ -4920,5 +4920,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.548Z" + "updatedAt": "2024-06-27T12:24:25.255Z" } \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 65c2a66..645f4a0 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -195,15 +195,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ] }, - "id": 2558, + "id": 2555, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2481, + "id": 2478, "literals": [ "solidity", "^", @@ -220,15 +220,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2482, + "id": 2479, "nodeType": "StructuredDocumentation", "src": "131:70:11", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2557, + "id": 2554, "linearizedBaseContracts": [ - 2557 + 2554 ], "name": "IERC20", "nameLocation": "212:6:11", @@ -237,29 +237,29 @@ { "anonymous": false, "documentation": { - "id": 2483, + "id": 2480, "nodeType": "StructuredDocumentation", "src": "225:158:11", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2491, + "id": 2488, "name": "Transfer", "nameLocation": "394:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2490, + "id": 2487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2485, + "id": 2482, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "419:4:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "403:20:11", "stateVariable": false, "storageLocation": "default", @@ -268,7 +268,7 @@ "typeString": "address" }, "typeName": { - "id": 2484, + "id": 2481, "name": "address", "nodeType": "ElementaryTypeName", "src": "403:7:11", @@ -282,13 +282,13 @@ }, { "constant": false, - "id": 2487, + "id": 2484, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "441:2:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "425:18:11", "stateVariable": false, "storageLocation": "default", @@ -297,7 +297,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 2483, "name": "address", "nodeType": "ElementaryTypeName", "src": "425:7:11", @@ -311,13 +311,13 @@ }, { "constant": false, - "id": 2489, + "id": 2486, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "453:5:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "445:13:11", "stateVariable": false, "storageLocation": "default", @@ -326,7 +326,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 2485, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "445:7:11", @@ -345,29 +345,29 @@ { "anonymous": false, "documentation": { - "id": 2492, + "id": 2489, "nodeType": "StructuredDocumentation", "src": "466:148:11", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2500, + "id": 2497, "name": "Approval", "nameLocation": "625:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2499, + "id": 2496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2494, + "id": 2491, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "650:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "634:21:11", "stateVariable": false, "storageLocation": "default", @@ -376,7 +376,7 @@ "typeString": "address" }, "typeName": { - "id": 2493, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:11", @@ -390,13 +390,13 @@ }, { "constant": false, - "id": 2496, + "id": 2493, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "673:7:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "657:23:11", "stateVariable": false, "storageLocation": "default", @@ -405,7 +405,7 @@ "typeString": "address" }, "typeName": { - "id": 2495, + "id": 2492, "name": "address", "nodeType": "ElementaryTypeName", "src": "657:7:11", @@ -419,13 +419,13 @@ }, { "constant": false, - "id": 2498, + "id": 2495, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "690:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "682:13:11", "stateVariable": false, "storageLocation": "default", @@ -434,7 +434,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 2494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:11", @@ -452,13 +452,13 @@ }, { "documentation": { - "id": 2501, + "id": 2498, "nodeType": "StructuredDocumentation", "src": "703:66:11", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2506, + "id": 2503, "implemented": false, "kind": "function", "modifiers": [], @@ -466,23 +466,23 @@ "nameLocation": "783:11:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2502, + "id": 2499, "nodeType": "ParameterList", "parameters": [], "src": "794:2:11" }, "returnParameters": { - "id": 2505, + "id": 2502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2504, + "id": 2501, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2506, + "scope": 2503, "src": "820:7:11", "stateVariable": false, "storageLocation": "default", @@ -491,7 +491,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "820:7:11", @@ -505,7 +505,7 @@ ], "src": "819:9:11" }, - "scope": 2557, + "scope": 2554, "src": "774:55:11", "stateMutability": "view", "virtual": false, @@ -513,13 +513,13 @@ }, { "documentation": { - "id": 2507, + "id": 2504, "nodeType": "StructuredDocumentation", "src": "835:72:11", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2514, + "id": 2511, "implemented": false, "kind": "function", "modifiers": [], @@ -527,17 +527,17 @@ "nameLocation": "921:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2510, + "id": 2507, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 2506, "mutability": "mutable", "name": "account", "nameLocation": "939:7:11", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "931:15:11", "stateVariable": false, "storageLocation": "default", @@ -546,7 +546,7 @@ "typeString": "address" }, "typeName": { - "id": 2508, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "931:7:11", @@ -562,17 +562,17 @@ "src": "930:17:11" }, "returnParameters": { - "id": 2513, + "id": 2510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2512, + "id": 2509, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "971:7:11", "stateVariable": false, "storageLocation": "default", @@ -581,7 +581,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2508, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:11", @@ -595,7 +595,7 @@ ], "src": "970:9:11" }, - "scope": 2557, + "scope": 2554, "src": "912:68:11", "stateMutability": "view", "virtual": false, @@ -603,13 +603,13 @@ }, { "documentation": { - "id": 2515, + "id": 2512, "nodeType": "StructuredDocumentation", "src": "986:202:11", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2524, + "id": 2521, "implemented": false, "kind": "function", "modifiers": [], @@ -617,17 +617,17 @@ "nameLocation": "1202:8:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2520, + "id": 2517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2517, + "id": 2514, "mutability": "mutable", "name": "to", "nameLocation": "1219:2:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1211:10:11", "stateVariable": false, "storageLocation": "default", @@ -636,7 +636,7 @@ "typeString": "address" }, "typeName": { - "id": 2516, + "id": 2513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:11", @@ -650,12 +650,12 @@ }, { "constant": false, - "id": 2519, + "id": 2516, "mutability": "mutable", "name": "amount", "nameLocation": "1231:6:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1223:14:11", "stateVariable": false, "storageLocation": "default", @@ -664,7 +664,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2518, + "id": 2515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1223:7:11", @@ -679,17 +679,17 @@ "src": "1210:28:11" }, "returnParameters": { - "id": 2523, + "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2522, + "id": 2519, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1257:4:11", "stateVariable": false, "storageLocation": "default", @@ -698,7 +698,7 @@ "typeString": "bool" }, "typeName": { - "id": 2521, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1257:4:11", @@ -712,7 +712,7 @@ ], "src": "1256:6:11" }, - "scope": 2557, + "scope": 2554, "src": "1193:70:11", "stateMutability": "nonpayable", "virtual": false, @@ -720,13 +720,13 @@ }, { "documentation": { - "id": 2525, + "id": 2522, "nodeType": "StructuredDocumentation", "src": "1269:264:11", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2534, + "id": 2531, "implemented": false, "kind": "function", "modifiers": [], @@ -734,17 +734,17 @@ "nameLocation": "1547:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2530, + "id": 2527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2527, + "id": 2524, "mutability": "mutable", "name": "owner", "nameLocation": "1565:5:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1557:13:11", "stateVariable": false, "storageLocation": "default", @@ -753,7 +753,7 @@ "typeString": "address" }, "typeName": { - "id": 2526, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:11", @@ -767,12 +767,12 @@ }, { "constant": false, - "id": 2529, + "id": 2526, "mutability": "mutable", "name": "spender", "nameLocation": "1580:7:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1572:15:11", "stateVariable": false, "storageLocation": "default", @@ -781,7 +781,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2525, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:11", @@ -797,17 +797,17 @@ "src": "1556:32:11" }, "returnParameters": { - "id": 2533, + "id": 2530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2532, + "id": 2529, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1612:7:11", "stateVariable": false, "storageLocation": "default", @@ -816,7 +816,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2531, + "id": 2528, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:11", @@ -830,7 +830,7 @@ ], "src": "1611:9:11" }, - "scope": 2557, + "scope": 2554, "src": "1538:83:11", "stateMutability": "view", "virtual": false, @@ -838,13 +838,13 @@ }, { "documentation": { - "id": 2535, + "id": 2532, "nodeType": "StructuredDocumentation", "src": "1627:642:11", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2544, + "id": 2541, "implemented": false, "kind": "function", "modifiers": [], @@ -852,17 +852,17 @@ "nameLocation": "2283:7:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2540, + "id": 2537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2537, + "id": 2534, "mutability": "mutable", "name": "spender", "nameLocation": "2299:7:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2291:15:11", "stateVariable": false, "storageLocation": "default", @@ -871,7 +871,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2291:7:11", @@ -885,12 +885,12 @@ }, { "constant": false, - "id": 2539, + "id": 2536, "mutability": "mutable", "name": "amount", "nameLocation": "2316:6:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2308:14:11", "stateVariable": false, "storageLocation": "default", @@ -899,7 +899,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2538, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2308:7:11", @@ -914,17 +914,17 @@ "src": "2290:33:11" }, "returnParameters": { - "id": 2543, + "id": 2540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2542, + "id": 2539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2342:4:11", "stateVariable": false, "storageLocation": "default", @@ -933,7 +933,7 @@ "typeString": "bool" }, "typeName": { - "id": 2541, + "id": 2538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2342:4:11", @@ -947,7 +947,7 @@ ], "src": "2341:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2274:74:11", "stateMutability": "nonpayable", "virtual": false, @@ -955,13 +955,13 @@ }, { "documentation": { - "id": 2545, + "id": 2542, "nodeType": "StructuredDocumentation", "src": "2354:287:11", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2556, + "id": 2553, "implemented": false, "kind": "function", "modifiers": [], @@ -969,17 +969,17 @@ "nameLocation": "2655:12:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2552, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2547, + "id": 2544, "mutability": "mutable", "name": "from", "nameLocation": "2676:4:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2668:12:11", "stateVariable": false, "storageLocation": "default", @@ -988,7 +988,7 @@ "typeString": "address" }, "typeName": { - "id": 2546, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", "src": "2668:7:11", @@ -1002,12 +1002,12 @@ }, { "constant": false, - "id": 2549, + "id": 2546, "mutability": "mutable", "name": "to", "nameLocation": "2690:2:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2682:10:11", "stateVariable": false, "storageLocation": "default", @@ -1016,7 +1016,7 @@ "typeString": "address" }, "typeName": { - "id": 2548, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", "src": "2682:7:11", @@ -1030,12 +1030,12 @@ }, { "constant": false, - "id": 2551, + "id": 2548, "mutability": "mutable", "name": "amount", "nameLocation": "2702:6:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2694:14:11", "stateVariable": false, "storageLocation": "default", @@ -1044,7 +1044,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2694:7:11", @@ -1059,17 +1059,17 @@ "src": "2667:42:11" }, "returnParameters": { - "id": 2555, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2554, + "id": 2551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2728:4:11", "stateVariable": false, "storageLocation": "default", @@ -1078,7 +1078,7 @@ "typeString": "bool" }, "typeName": { - "id": 2553, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2728:4:11", @@ -1092,14 +1092,14 @@ ], "src": "2727:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2646:88:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2558, + "scope": 2555, "src": "202:2534:11", "usedErrors": [] } @@ -1110,15 +1110,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ] }, - "id": 2558, + "id": 2555, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2481, + "id": 2478, "literals": [ "solidity", "^", @@ -1135,15 +1135,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2482, + "id": 2479, "nodeType": "StructuredDocumentation", "src": "131:70:11", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2557, + "id": 2554, "linearizedBaseContracts": [ - 2557 + 2554 ], "name": "IERC20", "nameLocation": "212:6:11", @@ -1152,29 +1152,29 @@ { "anonymous": false, "documentation": { - "id": 2483, + "id": 2480, "nodeType": "StructuredDocumentation", "src": "225:158:11", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2491, + "id": 2488, "name": "Transfer", "nameLocation": "394:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2490, + "id": 2487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2485, + "id": 2482, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "419:4:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "403:20:11", "stateVariable": false, "storageLocation": "default", @@ -1183,7 +1183,7 @@ "typeString": "address" }, "typeName": { - "id": 2484, + "id": 2481, "name": "address", "nodeType": "ElementaryTypeName", "src": "403:7:11", @@ -1197,13 +1197,13 @@ }, { "constant": false, - "id": 2487, + "id": 2484, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "441:2:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "425:18:11", "stateVariable": false, "storageLocation": "default", @@ -1212,7 +1212,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 2483, "name": "address", "nodeType": "ElementaryTypeName", "src": "425:7:11", @@ -1226,13 +1226,13 @@ }, { "constant": false, - "id": 2489, + "id": 2486, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "453:5:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "445:13:11", "stateVariable": false, "storageLocation": "default", @@ -1241,7 +1241,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 2485, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "445:7:11", @@ -1260,29 +1260,29 @@ { "anonymous": false, "documentation": { - "id": 2492, + "id": 2489, "nodeType": "StructuredDocumentation", "src": "466:148:11", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2500, + "id": 2497, "name": "Approval", "nameLocation": "625:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2499, + "id": 2496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2494, + "id": 2491, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "650:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "634:21:11", "stateVariable": false, "storageLocation": "default", @@ -1291,7 +1291,7 @@ "typeString": "address" }, "typeName": { - "id": 2493, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:11", @@ -1305,13 +1305,13 @@ }, { "constant": false, - "id": 2496, + "id": 2493, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "673:7:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "657:23:11", "stateVariable": false, "storageLocation": "default", @@ -1320,7 +1320,7 @@ "typeString": "address" }, "typeName": { - "id": 2495, + "id": 2492, "name": "address", "nodeType": "ElementaryTypeName", "src": "657:7:11", @@ -1334,13 +1334,13 @@ }, { "constant": false, - "id": 2498, + "id": 2495, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "690:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "682:13:11", "stateVariable": false, "storageLocation": "default", @@ -1349,7 +1349,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 2494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:11", @@ -1367,13 +1367,13 @@ }, { "documentation": { - "id": 2501, + "id": 2498, "nodeType": "StructuredDocumentation", "src": "703:66:11", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2506, + "id": 2503, "implemented": false, "kind": "function", "modifiers": [], @@ -1381,23 +1381,23 @@ "nameLocation": "783:11:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2502, + "id": 2499, "nodeType": "ParameterList", "parameters": [], "src": "794:2:11" }, "returnParameters": { - "id": 2505, + "id": 2502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2504, + "id": 2501, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2506, + "scope": 2503, "src": "820:7:11", "stateVariable": false, "storageLocation": "default", @@ -1406,7 +1406,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "820:7:11", @@ -1420,7 +1420,7 @@ ], "src": "819:9:11" }, - "scope": 2557, + "scope": 2554, "src": "774:55:11", "stateMutability": "view", "virtual": false, @@ -1428,13 +1428,13 @@ }, { "documentation": { - "id": 2507, + "id": 2504, "nodeType": "StructuredDocumentation", "src": "835:72:11", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2514, + "id": 2511, "implemented": false, "kind": "function", "modifiers": [], @@ -1442,17 +1442,17 @@ "nameLocation": "921:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2510, + "id": 2507, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 2506, "mutability": "mutable", "name": "account", "nameLocation": "939:7:11", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "931:15:11", "stateVariable": false, "storageLocation": "default", @@ -1461,7 +1461,7 @@ "typeString": "address" }, "typeName": { - "id": 2508, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "931:7:11", @@ -1477,17 +1477,17 @@ "src": "930:17:11" }, "returnParameters": { - "id": 2513, + "id": 2510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2512, + "id": 2509, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "971:7:11", "stateVariable": false, "storageLocation": "default", @@ -1496,7 +1496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2508, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:11", @@ -1510,7 +1510,7 @@ ], "src": "970:9:11" }, - "scope": 2557, + "scope": 2554, "src": "912:68:11", "stateMutability": "view", "virtual": false, @@ -1518,13 +1518,13 @@ }, { "documentation": { - "id": 2515, + "id": 2512, "nodeType": "StructuredDocumentation", "src": "986:202:11", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2524, + "id": 2521, "implemented": false, "kind": "function", "modifiers": [], @@ -1532,17 +1532,17 @@ "nameLocation": "1202:8:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2520, + "id": 2517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2517, + "id": 2514, "mutability": "mutable", "name": "to", "nameLocation": "1219:2:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1211:10:11", "stateVariable": false, "storageLocation": "default", @@ -1551,7 +1551,7 @@ "typeString": "address" }, "typeName": { - "id": 2516, + "id": 2513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:11", @@ -1565,12 +1565,12 @@ }, { "constant": false, - "id": 2519, + "id": 2516, "mutability": "mutable", "name": "amount", "nameLocation": "1231:6:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1223:14:11", "stateVariable": false, "storageLocation": "default", @@ -1579,7 +1579,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2518, + "id": 2515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1223:7:11", @@ -1594,17 +1594,17 @@ "src": "1210:28:11" }, "returnParameters": { - "id": 2523, + "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2522, + "id": 2519, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1257:4:11", "stateVariable": false, "storageLocation": "default", @@ -1613,7 +1613,7 @@ "typeString": "bool" }, "typeName": { - "id": 2521, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1257:4:11", @@ -1627,7 +1627,7 @@ ], "src": "1256:6:11" }, - "scope": 2557, + "scope": 2554, "src": "1193:70:11", "stateMutability": "nonpayable", "virtual": false, @@ -1635,13 +1635,13 @@ }, { "documentation": { - "id": 2525, + "id": 2522, "nodeType": "StructuredDocumentation", "src": "1269:264:11", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2534, + "id": 2531, "implemented": false, "kind": "function", "modifiers": [], @@ -1649,17 +1649,17 @@ "nameLocation": "1547:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2530, + "id": 2527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2527, + "id": 2524, "mutability": "mutable", "name": "owner", "nameLocation": "1565:5:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1557:13:11", "stateVariable": false, "storageLocation": "default", @@ -1668,7 +1668,7 @@ "typeString": "address" }, "typeName": { - "id": 2526, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:11", @@ -1682,12 +1682,12 @@ }, { "constant": false, - "id": 2529, + "id": 2526, "mutability": "mutable", "name": "spender", "nameLocation": "1580:7:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1572:15:11", "stateVariable": false, "storageLocation": "default", @@ -1696,7 +1696,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2525, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:11", @@ -1712,17 +1712,17 @@ "src": "1556:32:11" }, "returnParameters": { - "id": 2533, + "id": 2530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2532, + "id": 2529, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1612:7:11", "stateVariable": false, "storageLocation": "default", @@ -1731,7 +1731,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2531, + "id": 2528, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:11", @@ -1745,7 +1745,7 @@ ], "src": "1611:9:11" }, - "scope": 2557, + "scope": 2554, "src": "1538:83:11", "stateMutability": "view", "virtual": false, @@ -1753,13 +1753,13 @@ }, { "documentation": { - "id": 2535, + "id": 2532, "nodeType": "StructuredDocumentation", "src": "1627:642:11", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2544, + "id": 2541, "implemented": false, "kind": "function", "modifiers": [], @@ -1767,17 +1767,17 @@ "nameLocation": "2283:7:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2540, + "id": 2537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2537, + "id": 2534, "mutability": "mutable", "name": "spender", "nameLocation": "2299:7:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2291:15:11", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1786,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2291:7:11", @@ -1800,12 +1800,12 @@ }, { "constant": false, - "id": 2539, + "id": 2536, "mutability": "mutable", "name": "amount", "nameLocation": "2316:6:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2308:14:11", "stateVariable": false, "storageLocation": "default", @@ -1814,7 +1814,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2538, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2308:7:11", @@ -1829,17 +1829,17 @@ "src": "2290:33:11" }, "returnParameters": { - "id": 2543, + "id": 2540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2542, + "id": 2539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2342:4:11", "stateVariable": false, "storageLocation": "default", @@ -1848,7 +1848,7 @@ "typeString": "bool" }, "typeName": { - "id": 2541, + "id": 2538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2342:4:11", @@ -1862,7 +1862,7 @@ ], "src": "2341:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2274:74:11", "stateMutability": "nonpayable", "virtual": false, @@ -1870,13 +1870,13 @@ }, { "documentation": { - "id": 2545, + "id": 2542, "nodeType": "StructuredDocumentation", "src": "2354:287:11", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2556, + "id": 2553, "implemented": false, "kind": "function", "modifiers": [], @@ -1884,17 +1884,17 @@ "nameLocation": "2655:12:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2552, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2547, + "id": 2544, "mutability": "mutable", "name": "from", "nameLocation": "2676:4:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2668:12:11", "stateVariable": false, "storageLocation": "default", @@ -1903,7 +1903,7 @@ "typeString": "address" }, "typeName": { - "id": 2546, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", "src": "2668:7:11", @@ -1917,12 +1917,12 @@ }, { "constant": false, - "id": 2549, + "id": 2546, "mutability": "mutable", "name": "to", "nameLocation": "2690:2:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2682:10:11", "stateVariable": false, "storageLocation": "default", @@ -1931,7 +1931,7 @@ "typeString": "address" }, "typeName": { - "id": 2548, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", "src": "2682:7:11", @@ -1945,12 +1945,12 @@ }, { "constant": false, - "id": 2551, + "id": 2548, "mutability": "mutable", "name": "amount", "nameLocation": "2702:6:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2694:14:11", "stateVariable": false, "storageLocation": "default", @@ -1959,7 +1959,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2694:7:11", @@ -1974,17 +1974,17 @@ "src": "2667:42:11" }, "returnParameters": { - "id": 2555, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2554, + "id": 2551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2728:4:11", "stateVariable": false, "storageLocation": "default", @@ -1993,7 +1993,7 @@ "typeString": "bool" }, "typeName": { - "id": 2553, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2728:4:11", @@ -2007,14 +2007,14 @@ ], "src": "2727:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2646:88:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2558, + "scope": 2555, "src": "202:2534:11", "usedErrors": [] } @@ -2027,5 +2027,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.561Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/IERC20Metadata.json b/build/contracts/IERC20Metadata.json index 9e635b0..274e697 100644 --- a/build/contracts/IERC20Metadata.json +++ b/build/contracts/IERC20Metadata.json @@ -234,18 +234,18 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2583, + "id": 2580, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2559, + "id": 2556, "literals": [ "solidity", "^", @@ -258,11 +258,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "../IERC20.sol", - "id": 2560, + "id": 2557, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2583, - "sourceUnit": 2558, + "scope": 2580, + "sourceUnit": 2555, "src": "135:23:12", "symbolAliases": [], "unitAlias": "" @@ -272,16 +272,16 @@ "baseContracts": [ { "baseName": { - "id": 2562, + "id": 2559, "name": "IERC20", "nameLocations": [ "305:6:12" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "305:6:12" }, - "id": 2563, + "id": 2560, "nodeType": "InheritanceSpecifier", "src": "305:6:12" } @@ -290,16 +290,16 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2561, + "id": 2558, "nodeType": "StructuredDocumentation", "src": "160:116:12", "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" }, "fullyImplemented": false, - "id": 2582, + "id": 2579, "linearizedBaseContracts": [ - 2582, - 2557 + 2579, + 2554 ], "name": "IERC20Metadata", "nameLocation": "287:14:12", @@ -307,13 +307,13 @@ "nodes": [ { "documentation": { - "id": 2564, + "id": 2561, "nodeType": "StructuredDocumentation", "src": "318:54:12", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 2569, + "id": 2566, "implemented": false, "kind": "function", "modifiers": [], @@ -321,23 +321,23 @@ "nameLocation": "386:4:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2565, + "id": 2562, "nodeType": "ParameterList", "parameters": [], "src": "390:2:12" }, "returnParameters": { - "id": 2568, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2567, + "id": 2564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2569, + "scope": 2566, "src": "416:13:12", "stateVariable": false, "storageLocation": "memory", @@ -346,7 +346,7 @@ "typeString": "string" }, "typeName": { - "id": 2566, + "id": 2563, "name": "string", "nodeType": "ElementaryTypeName", "src": "416:6:12", @@ -360,7 +360,7 @@ ], "src": "415:15:12" }, - "scope": 2582, + "scope": 2579, "src": "377:54:12", "stateMutability": "view", "virtual": false, @@ -368,13 +368,13 @@ }, { "documentation": { - "id": 2570, + "id": 2567, "nodeType": "StructuredDocumentation", "src": "437:56:12", "text": " @dev Returns the symbol of the token." }, "functionSelector": "95d89b41", - "id": 2575, + "id": 2572, "implemented": false, "kind": "function", "modifiers": [], @@ -382,23 +382,23 @@ "nameLocation": "507:6:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2571, + "id": 2568, "nodeType": "ParameterList", "parameters": [], "src": "513:2:12" }, "returnParameters": { - "id": 2574, + "id": 2571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2573, + "id": 2570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2575, + "scope": 2572, "src": "539:13:12", "stateVariable": false, "storageLocation": "memory", @@ -407,7 +407,7 @@ "typeString": "string" }, "typeName": { - "id": 2572, + "id": 2569, "name": "string", "nodeType": "ElementaryTypeName", "src": "539:6:12", @@ -421,7 +421,7 @@ ], "src": "538:15:12" }, - "scope": 2582, + "scope": 2579, "src": "498:56:12", "stateMutability": "view", "virtual": false, @@ -429,13 +429,13 @@ }, { "documentation": { - "id": 2576, + "id": 2573, "nodeType": "StructuredDocumentation", "src": "560:65:12", "text": " @dev Returns the decimals places of the token." }, "functionSelector": "313ce567", - "id": 2581, + "id": 2578, "implemented": false, "kind": "function", "modifiers": [], @@ -443,23 +443,23 @@ "nameLocation": "639:8:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2574, "nodeType": "ParameterList", "parameters": [], "src": "647:2:12" }, "returnParameters": { - "id": 2580, + "id": 2577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2576, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2581, + "scope": 2578, "src": "673:5:12", "stateVariable": false, "storageLocation": "default", @@ -468,7 +468,7 @@ "typeString": "uint8" }, "typeName": { - "id": 2578, + "id": 2575, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "673:5:12", @@ -482,14 +482,14 @@ ], "src": "672:7:12" }, - "scope": 2582, + "scope": 2579, "src": "630:50:12", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2583, + "scope": 2580, "src": "277:405:12", "usedErrors": [] } @@ -500,18 +500,18 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2583, + "id": 2580, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2559, + "id": 2556, "literals": [ "solidity", "^", @@ -524,11 +524,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "../IERC20.sol", - "id": 2560, + "id": 2557, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2583, - "sourceUnit": 2558, + "scope": 2580, + "sourceUnit": 2555, "src": "135:23:12", "symbolAliases": [], "unitAlias": "" @@ -538,16 +538,16 @@ "baseContracts": [ { "baseName": { - "id": 2562, + "id": 2559, "name": "IERC20", "nameLocations": [ "305:6:12" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "305:6:12" }, - "id": 2563, + "id": 2560, "nodeType": "InheritanceSpecifier", "src": "305:6:12" } @@ -556,16 +556,16 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2561, + "id": 2558, "nodeType": "StructuredDocumentation", "src": "160:116:12", "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" }, "fullyImplemented": false, - "id": 2582, + "id": 2579, "linearizedBaseContracts": [ - 2582, - 2557 + 2579, + 2554 ], "name": "IERC20Metadata", "nameLocation": "287:14:12", @@ -573,13 +573,13 @@ "nodes": [ { "documentation": { - "id": 2564, + "id": 2561, "nodeType": "StructuredDocumentation", "src": "318:54:12", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 2569, + "id": 2566, "implemented": false, "kind": "function", "modifiers": [], @@ -587,23 +587,23 @@ "nameLocation": "386:4:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2565, + "id": 2562, "nodeType": "ParameterList", "parameters": [], "src": "390:2:12" }, "returnParameters": { - "id": 2568, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2567, + "id": 2564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2569, + "scope": 2566, "src": "416:13:12", "stateVariable": false, "storageLocation": "memory", @@ -612,7 +612,7 @@ "typeString": "string" }, "typeName": { - "id": 2566, + "id": 2563, "name": "string", "nodeType": "ElementaryTypeName", "src": "416:6:12", @@ -626,7 +626,7 @@ ], "src": "415:15:12" }, - "scope": 2582, + "scope": 2579, "src": "377:54:12", "stateMutability": "view", "virtual": false, @@ -634,13 +634,13 @@ }, { "documentation": { - "id": 2570, + "id": 2567, "nodeType": "StructuredDocumentation", "src": "437:56:12", "text": " @dev Returns the symbol of the token." }, "functionSelector": "95d89b41", - "id": 2575, + "id": 2572, "implemented": false, "kind": "function", "modifiers": [], @@ -648,23 +648,23 @@ "nameLocation": "507:6:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2571, + "id": 2568, "nodeType": "ParameterList", "parameters": [], "src": "513:2:12" }, "returnParameters": { - "id": 2574, + "id": 2571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2573, + "id": 2570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2575, + "scope": 2572, "src": "539:13:12", "stateVariable": false, "storageLocation": "memory", @@ -673,7 +673,7 @@ "typeString": "string" }, "typeName": { - "id": 2572, + "id": 2569, "name": "string", "nodeType": "ElementaryTypeName", "src": "539:6:12", @@ -687,7 +687,7 @@ ], "src": "538:15:12" }, - "scope": 2582, + "scope": 2579, "src": "498:56:12", "stateMutability": "view", "virtual": false, @@ -695,13 +695,13 @@ }, { "documentation": { - "id": 2576, + "id": 2573, "nodeType": "StructuredDocumentation", "src": "560:65:12", "text": " @dev Returns the decimals places of the token." }, "functionSelector": "313ce567", - "id": 2581, + "id": 2578, "implemented": false, "kind": "function", "modifiers": [], @@ -709,23 +709,23 @@ "nameLocation": "639:8:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2574, "nodeType": "ParameterList", "parameters": [], "src": "647:2:12" }, "returnParameters": { - "id": 2580, + "id": 2577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2576, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2581, + "scope": 2578, "src": "673:5:12", "stateVariable": false, "storageLocation": "default", @@ -734,7 +734,7 @@ "typeString": "uint8" }, "typeName": { - "id": 2578, + "id": 2575, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "673:5:12", @@ -748,14 +748,14 @@ ], "src": "672:7:12" }, - "scope": 2582, + "scope": 2579, "src": "630:50:12", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2583, + "scope": 2580, "src": "277:405:12", "usedErrors": [] } @@ -768,5 +768,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.558Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/IGateway.json b/build/contracts/IGateway.json index 4658197..339e6b1 100644 --- a/build/contracts/IGateway.json +++ b/build/contracts/IGateway.json @@ -340,23 +340,23 @@ "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';\n\n/**\n * @title IGateway\n * @notice Interface for the Gateway contract.\n */\ninterface IGateway {\n\t/* ##################################################################\n EVENTS\n ################################################################## */\n\t/**\n\t * @dev Emitted when a deposit is made.\n\t * @param sender The address of the sender.\n\t * @param token The address of the deposited token.\n\t * @param amount The amount of the deposit.\n\t * @param orderId The ID of the order.\n\t * @param rate The rate at which the deposit is made.\n\t * @param messageHash The hash of the message.\n\t */\n\tevent OrderCreated(\n\t\taddress indexed sender,\n\t\taddress indexed token,\n\t\tuint256 indexed amount,\n\t\tuint256 protocolFee,\n\t\tbytes32 orderId,\n\t\tuint256 rate,\n\t\tstring messageHash\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator settles a transaction.\n\t * @param splitOrderId The ID of the split order.\n\t * @param orderId The ID of the order.\n\t * @param liquidityProvider The address of the liquidity provider.\n\t * @param settlePercent The percentage at which the transaction is settled.\n\t */\n\tevent OrderSettled(\n\t\tbytes32 splitOrderId,\n\t\tbytes32 indexed orderId,\n\t\taddress indexed liquidityProvider,\n\t\tuint96 settlePercent\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator refunds a transaction.\n\t * @param fee The fee deducted from the refund amount.\n\t * @param orderId The ID of the order.\n\t */\n\tevent OrderRefunded(uint256 fee, bytes32 indexed orderId);\n\n\t/**\n\t * @dev Emitted when the sender's fee is transferred.\n\t * @param sender The address of the sender.\n\t * @param amount The amount of the fee transferred.\n\t */\n\tevent SenderFeeTransferred(address indexed sender, uint256 indexed amount);\n\n\t/* ##################################################################\n STRUCTS\n ################################################################## */\n\t/**\n\t * @dev Struct representing an order.\n\t * @param sender The address of the sender.\n\t * @param token The address of the token.\n\t * @param senderFeeRecipient The address of the sender fee recipient.\n\t * @param senderFee The fee to be paid to the sender fee recipient.\n\t * @param protocolFee The protocol fee to be paid.\n\t * @param isFulfilled Whether the order is fulfilled.\n\t * @param isRefunded Whether the order is refunded.\n\t * @param refundAddress The address to which the refund is made.\n\t * @param currentBPS The current basis points.\n\t * @param amount The amount of the order.\n\t */\n\tstruct Order {\n\t\taddress sender;\n\t\taddress token;\n\t\taddress senderFeeRecipient;\n\t\tuint256 senderFee;\n\t\tuint256 protocolFee;\n\t\tbool isFulfilled;\n\t\tbool isRefunded;\n\t\taddress refundAddress;\n\t\tuint96 currentBPS;\n\t\tuint256 amount;\n\t}\n\n\t/* ##################################################################\n EXTERNAL CALLS\n ################################################################## */\n\t/**\n\t * @notice Locks the sender's amount of token into Gateway.\n\t * @dev Requirements:\n\t * - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n\t * - `_token` must be an acceptable token. See {isTokenSupported}.\n\t * - `amount` must be greater than minimum.\n\t * - `_refundAddress` refund address must not be zero address.\n\t * @param _token The address of the token.\n\t * @param _amount The amount in the decimal of `_token` to be locked.\n\t * @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n\t * @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n\t * @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n\t * @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n\t * @param messageHash The hash of the message.\n\t * @return _orderId The ID of the order.\n\t */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external returns (bytes32 _orderId);\n\n\t/**\n\t * @notice Settles a transaction and distributes rewards accordingly.\n\t * @param _splitOrderId The ID of the split order.\n\t * @param _orderId The ID of the transaction.\n\t * @param _liquidityProvider The address of the liquidity provider.\n\t * @param _settlePercent The rate at which the transaction is settled.\n\t * @return bool the settlement is successful.\n\t */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external returns (bool);\n\n\t/**\n\t * @notice Refunds to the specified refundable address.\n\t * @dev Requirements:\n\t * - Only aggregators can call this function.\n\t * @param _fee The amount to be deducted from the amount to be refunded.\n\t * @param _orderId The ID of the transaction.\n\t * @return bool the refund is successful.\n\t */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external returns (bool);\n\n\t/**\n\t * @notice Checks if a token is supported by Gateway.\n\t * @param _token The address of the token to check.\n\t * @return bool the token is supported.\n\t */\n\tfunction isTokenSupported(address _token) external view returns (bool);\n\n\t/**\n\t * @notice Gets the details of an order.\n\t * @param _orderId The ID of the order.\n\t * @return Order The order details.\n\t */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory);\n\n\t/**\n\t * @notice Gets the fee details of Gateway.\n\t * @return protocolReward The protocol reward amount.\n\t * @return max_bps The maximum basis points.\n\t */\n\tfunction getFeeDetails() external view returns (uint64 protocolReward, uint256 max_bps);\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ] }, - "id": 905, + "id": 902, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 768, + "id": 765, "literals": [ "solidity", "^", @@ -369,20 +369,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 770, + "id": 767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 905, - "sourceUnit": 2558, + "scope": 902, + "sourceUnit": 2555, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 769, + "id": 766, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "73:6:2", "typeDescriptions": {} }, @@ -398,15 +398,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 771, + "id": 768, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 904, + "id": 901, "linearizedBaseContracts": [ - 904 + 901 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -415,29 +415,29 @@ { "anonymous": false, "documentation": { - "id": 772, + "id": 769, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 788, + "id": 785, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 787, + "id": 784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 774, + "id": 771, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -446,7 +446,7 @@ "typeString": "address" }, "typeName": { - "id": 773, + "id": 770, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -460,13 +460,13 @@ }, { "constant": false, - "id": 776, + "id": 773, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -475,7 +475,7 @@ "typeString": "address" }, "typeName": { - "id": 775, + "id": 772, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -489,13 +489,13 @@ }, { "constant": false, - "id": 778, + "id": 775, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -504,7 +504,7 @@ "typeString": "uint256" }, "typeName": { - "id": 777, + "id": 774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -517,13 +517,13 @@ }, { "constant": false, - "id": 780, + "id": 777, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -532,7 +532,7 @@ "typeString": "uint256" }, "typeName": { - "id": 779, + "id": 776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -545,13 +545,13 @@ }, { "constant": false, - "id": 782, + "id": 779, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -560,7 +560,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 781, + "id": 778, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -573,13 +573,13 @@ }, { "constant": false, - "id": 784, + "id": 781, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -588,7 +588,7 @@ "typeString": "uint256" }, "typeName": { - "id": 783, + "id": 780, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -601,13 +601,13 @@ }, { "constant": false, - "id": 786, + "id": 783, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -616,7 +616,7 @@ "typeString": "string" }, "typeName": { - "id": 785, + "id": 782, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -635,29 +635,29 @@ { "anonymous": false, "documentation": { - "id": 789, + "id": 786, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 799, + "id": 796, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 798, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 788, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -666,7 +666,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 790, + "id": 787, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -679,13 +679,13 @@ }, { "constant": false, - "id": 793, + "id": 790, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -694,7 +694,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 792, + "id": 789, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -707,13 +707,13 @@ }, { "constant": false, - "id": 795, + "id": 792, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -722,7 +722,7 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 791, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -736,13 +736,13 @@ }, { "constant": false, - "id": 797, + "id": 794, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -751,7 +751,7 @@ "typeString": "uint96" }, "typeName": { - "id": 796, + "id": 793, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -770,29 +770,29 @@ { "anonymous": false, "documentation": { - "id": 800, + "id": 797, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 806, + "id": 803, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 805, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 802, + "id": 799, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -801,7 +801,7 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -814,13 +814,13 @@ }, { "constant": false, - "id": 804, + "id": 801, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -829,7 +829,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 803, + "id": 800, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -848,29 +848,29 @@ { "anonymous": false, "documentation": { - "id": 807, + "id": 804, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 813, + "id": 810, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 812, + "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 809, + "id": 806, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -879,7 +879,7 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -893,13 +893,13 @@ }, { "constant": false, - "id": 811, + "id": 808, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -908,7 +908,7 @@ "typeString": "uint256" }, "typeName": { - "id": 810, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -926,16 +926,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 834, + "id": 831, "members": [ { "constant": false, - "id": 815, + "id": 812, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -944,7 +944,7 @@ "typeString": "address" }, "typeName": { - "id": 814, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -958,12 +958,12 @@ }, { "constant": false, - "id": 817, + "id": 814, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -972,7 +972,7 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 813, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -986,12 +986,12 @@ }, { "constant": false, - "id": 819, + "id": 816, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -1000,7 +1000,7 @@ "typeString": "address" }, "typeName": { - "id": 818, + "id": 815, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -1014,12 +1014,12 @@ }, { "constant": false, - "id": 821, + "id": 818, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -1028,7 +1028,7 @@ "typeString": "uint256" }, "typeName": { - "id": 820, + "id": 817, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -1041,12 +1041,12 @@ }, { "constant": false, - "id": 823, + "id": 820, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -1055,7 +1055,7 @@ "typeString": "uint256" }, "typeName": { - "id": 822, + "id": 819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -1068,12 +1068,12 @@ }, { "constant": false, - "id": 825, + "id": 822, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -1082,7 +1082,7 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 821, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -1095,12 +1095,12 @@ }, { "constant": false, - "id": 827, + "id": 824, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -1109,7 +1109,7 @@ "typeString": "bool" }, "typeName": { - "id": 826, + "id": 823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -1122,12 +1122,12 @@ }, { "constant": false, - "id": 829, + "id": 826, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -1136,7 +1136,7 @@ "typeString": "address" }, "typeName": { - "id": 828, + "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -1150,12 +1150,12 @@ }, { "constant": false, - "id": 831, + "id": 828, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -1164,7 +1164,7 @@ "typeString": "uint96" }, "typeName": { - "id": 830, + "id": 827, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -1177,12 +1177,12 @@ }, { "constant": false, - "id": 833, + "id": 830, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -1191,7 +1191,7 @@ "typeString": "uint256" }, "typeName": { - "id": 832, + "id": 829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -1206,19 +1206,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 904, + "scope": 901, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 835, + "id": 832, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 854, + "id": 851, "implemented": false, "kind": "function", "modifiers": [], @@ -1226,17 +1226,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 837, + "id": 834, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -1245,7 +1245,7 @@ "typeString": "address" }, "typeName": { - "id": 836, + "id": 833, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -1259,12 +1259,12 @@ }, { "constant": false, - "id": 839, + "id": 836, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -1273,7 +1273,7 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -1286,12 +1286,12 @@ }, { "constant": false, - "id": 841, + "id": 838, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -1300,7 +1300,7 @@ "typeString": "uint96" }, "typeName": { - "id": 840, + "id": 837, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -1313,12 +1313,12 @@ }, { "constant": false, - "id": 843, + "id": 840, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -1327,7 +1327,7 @@ "typeString": "address" }, "typeName": { - "id": 842, + "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -1341,12 +1341,12 @@ }, { "constant": false, - "id": 845, + "id": 842, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -1355,7 +1355,7 @@ "typeString": "uint256" }, "typeName": { - "id": 844, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -1368,12 +1368,12 @@ }, { "constant": false, - "id": 847, + "id": 844, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -1382,7 +1382,7 @@ "typeString": "address" }, "typeName": { - "id": 846, + "id": 843, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -1396,12 +1396,12 @@ }, { "constant": false, - "id": 849, + "id": 846, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -1410,7 +1410,7 @@ "typeString": "string" }, "typeName": { - "id": 848, + "id": 845, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -1425,17 +1425,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 853, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 849, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -1444,7 +1444,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 851, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -1458,7 +1458,7 @@ ], "src": "4218:18:2" }, - "scope": 904, + "scope": 901, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -1466,13 +1466,13 @@ }, { "documentation": { - "id": 855, + "id": 852, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 868, + "id": 865, "implemented": false, "kind": "function", "modifiers": [], @@ -1480,17 +1480,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 864, + "id": 861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 857, + "id": 854, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -1499,7 +1499,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 856, + "id": 853, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -1512,12 +1512,12 @@ }, { "constant": false, - "id": 859, + "id": 856, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -1526,7 +1526,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 858, + "id": 855, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -1539,12 +1539,12 @@ }, { "constant": false, - "id": 861, + "id": 858, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -1553,7 +1553,7 @@ "typeString": "address" }, "typeName": { - "id": 860, + "id": 857, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -1567,12 +1567,12 @@ }, { "constant": false, - "id": 863, + "id": 860, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -1581,7 +1581,7 @@ "typeString": "uint64" }, "typeName": { - "id": 862, + "id": 859, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -1596,17 +1596,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 867, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 863, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -1615,7 +1615,7 @@ "typeString": "bool" }, "typeName": { - "id": 865, + "id": 862, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -1629,7 +1629,7 @@ ], "src": "4744:6:2" }, - "scope": 904, + "scope": 901, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -1637,13 +1637,13 @@ }, { "documentation": { - "id": 869, + "id": 866, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 878, + "id": 875, "implemented": false, "kind": "function", "modifiers": [], @@ -1651,17 +1651,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 868, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -1670,7 +1670,7 @@ "typeString": "uint256" }, "typeName": { - "id": 870, + "id": 867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -1683,12 +1683,12 @@ }, { "constant": false, - "id": 873, + "id": 870, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -1697,7 +1697,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 872, + "id": 869, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -1712,17 +1712,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 877, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 873, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -1731,7 +1731,7 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 872, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -1745,7 +1745,7 @@ ], "src": "5120:6:2" }, - "scope": 904, + "scope": 901, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -1753,13 +1753,13 @@ }, { "documentation": { - "id": 879, + "id": 876, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 886, + "id": 883, "implemented": false, "kind": "function", "modifiers": [], @@ -1767,17 +1767,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 878, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1786,7 @@ "typeString": "address" }, "typeName": { - "id": 880, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -1802,17 +1802,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 885, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -1821,7 +1821,7 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -1835,7 +1835,7 @@ ], "src": "5353:6:2" }, - "scope": 904, + "scope": 901, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -1843,13 +1843,13 @@ }, { "documentation": { - "id": 887, + "id": 884, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 895, + "id": 892, "implemented": false, "kind": "function", "modifiers": [], @@ -1857,17 +1857,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 889, + "id": 886, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -1876,7 +1876,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 885, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -1891,41 +1891,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 894, + "id": 891, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 890, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 892, + "id": 889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 891, + "id": 888, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -1934,7 +1934,7 @@ ], "src": "5555:14:2" }, - "scope": 904, + "scope": 901, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -1942,13 +1942,13 @@ }, { "documentation": { - "id": 896, + "id": 893, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 903, + "id": 900, "implemented": false, "kind": "function", "modifiers": [], @@ -1956,23 +1956,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 897, + "id": 894, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 902, + "id": 899, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 899, + "id": 896, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -1981,7 +1981,7 @@ "typeString": "uint64" }, "typeName": { - "id": 898, + "id": 895, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -1994,12 +1994,12 @@ }, { "constant": false, - "id": 901, + "id": 898, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -2008,7 +2008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 900, + "id": 897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -2022,14 +2022,14 @@ ], "src": "5776:40:2" }, - "scope": 904, + "scope": 901, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 905, + "scope": 902, "src": "211:5608:2", "usedErrors": [] } @@ -2037,21 +2037,21 @@ "src": "39:5781:2" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ] }, - "id": 905, + "id": 902, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 768, + "id": 765, "literals": [ "solidity", "^", @@ -2064,20 +2064,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 770, + "id": 767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 905, - "sourceUnit": 2558, + "scope": 902, + "sourceUnit": 2555, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 769, + "id": 766, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "73:6:2", "typeDescriptions": {} }, @@ -2093,15 +2093,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 771, + "id": 768, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 904, + "id": 901, "linearizedBaseContracts": [ - 904 + 901 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -2110,29 +2110,29 @@ { "anonymous": false, "documentation": { - "id": 772, + "id": 769, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 788, + "id": 785, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 787, + "id": 784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 774, + "id": 771, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -2141,7 +2141,7 @@ "typeString": "address" }, "typeName": { - "id": 773, + "id": 770, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -2155,13 +2155,13 @@ }, { "constant": false, - "id": 776, + "id": 773, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -2170,7 +2170,7 @@ "typeString": "address" }, "typeName": { - "id": 775, + "id": 772, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -2184,13 +2184,13 @@ }, { "constant": false, - "id": 778, + "id": 775, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -2199,7 +2199,7 @@ "typeString": "uint256" }, "typeName": { - "id": 777, + "id": 774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -2212,13 +2212,13 @@ }, { "constant": false, - "id": 780, + "id": 777, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -2227,7 +2227,7 @@ "typeString": "uint256" }, "typeName": { - "id": 779, + "id": 776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -2240,13 +2240,13 @@ }, { "constant": false, - "id": 782, + "id": 779, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -2255,7 +2255,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 781, + "id": 778, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -2268,13 +2268,13 @@ }, { "constant": false, - "id": 784, + "id": 781, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -2283,7 +2283,7 @@ "typeString": "uint256" }, "typeName": { - "id": 783, + "id": 780, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -2296,13 +2296,13 @@ }, { "constant": false, - "id": 786, + "id": 783, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -2311,7 +2311,7 @@ "typeString": "string" }, "typeName": { - "id": 785, + "id": 782, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -2330,29 +2330,29 @@ { "anonymous": false, "documentation": { - "id": 789, + "id": 786, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 799, + "id": 796, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 798, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 788, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -2361,7 +2361,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 790, + "id": 787, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -2374,13 +2374,13 @@ }, { "constant": false, - "id": 793, + "id": 790, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -2389,7 +2389,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 792, + "id": 789, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -2402,13 +2402,13 @@ }, { "constant": false, - "id": 795, + "id": 792, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -2417,7 +2417,7 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 791, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -2431,13 +2431,13 @@ }, { "constant": false, - "id": 797, + "id": 794, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -2446,7 +2446,7 @@ "typeString": "uint96" }, "typeName": { - "id": 796, + "id": 793, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -2465,29 +2465,29 @@ { "anonymous": false, "documentation": { - "id": 800, + "id": 797, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 806, + "id": 803, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 805, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 802, + "id": 799, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -2496,7 +2496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -2509,13 +2509,13 @@ }, { "constant": false, - "id": 804, + "id": 801, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -2524,7 +2524,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 803, + "id": 800, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -2543,29 +2543,29 @@ { "anonymous": false, "documentation": { - "id": 807, + "id": 804, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 813, + "id": 810, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 812, + "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 809, + "id": 806, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -2574,7 +2574,7 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -2588,13 +2588,13 @@ }, { "constant": false, - "id": 811, + "id": 808, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -2603,7 +2603,7 @@ "typeString": "uint256" }, "typeName": { - "id": 810, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -2621,16 +2621,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 834, + "id": 831, "members": [ { "constant": false, - "id": 815, + "id": 812, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -2639,7 +2639,7 @@ "typeString": "address" }, "typeName": { - "id": 814, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -2653,12 +2653,12 @@ }, { "constant": false, - "id": 817, + "id": 814, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -2667,7 +2667,7 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 813, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -2681,12 +2681,12 @@ }, { "constant": false, - "id": 819, + "id": 816, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -2695,7 +2695,7 @@ "typeString": "address" }, "typeName": { - "id": 818, + "id": 815, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -2709,12 +2709,12 @@ }, { "constant": false, - "id": 821, + "id": 818, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -2723,7 +2723,7 @@ "typeString": "uint256" }, "typeName": { - "id": 820, + "id": 817, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -2736,12 +2736,12 @@ }, { "constant": false, - "id": 823, + "id": 820, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -2750,7 +2750,7 @@ "typeString": "uint256" }, "typeName": { - "id": 822, + "id": 819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -2763,12 +2763,12 @@ }, { "constant": false, - "id": 825, + "id": 822, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -2777,7 +2777,7 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 821, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -2790,12 +2790,12 @@ }, { "constant": false, - "id": 827, + "id": 824, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -2804,7 +2804,7 @@ "typeString": "bool" }, "typeName": { - "id": 826, + "id": 823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -2817,12 +2817,12 @@ }, { "constant": false, - "id": 829, + "id": 826, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -2831,7 +2831,7 @@ "typeString": "address" }, "typeName": { - "id": 828, + "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -2845,12 +2845,12 @@ }, { "constant": false, - "id": 831, + "id": 828, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -2859,7 +2859,7 @@ "typeString": "uint96" }, "typeName": { - "id": 830, + "id": 827, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -2872,12 +2872,12 @@ }, { "constant": false, - "id": 833, + "id": 830, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -2886,7 +2886,7 @@ "typeString": "uint256" }, "typeName": { - "id": 832, + "id": 829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -2901,19 +2901,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 904, + "scope": 901, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 835, + "id": 832, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 854, + "id": 851, "implemented": false, "kind": "function", "modifiers": [], @@ -2921,17 +2921,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 837, + "id": 834, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -2940,7 +2940,7 @@ "typeString": "address" }, "typeName": { - "id": 836, + "id": 833, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -2954,12 +2954,12 @@ }, { "constant": false, - "id": 839, + "id": 836, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -2968,7 +2968,7 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -2981,12 +2981,12 @@ }, { "constant": false, - "id": 841, + "id": 838, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -2995,7 +2995,7 @@ "typeString": "uint96" }, "typeName": { - "id": 840, + "id": 837, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -3008,12 +3008,12 @@ }, { "constant": false, - "id": 843, + "id": 840, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -3022,7 +3022,7 @@ "typeString": "address" }, "typeName": { - "id": 842, + "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -3036,12 +3036,12 @@ }, { "constant": false, - "id": 845, + "id": 842, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -3050,7 +3050,7 @@ "typeString": "uint256" }, "typeName": { - "id": 844, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -3063,12 +3063,12 @@ }, { "constant": false, - "id": 847, + "id": 844, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -3077,7 +3077,7 @@ "typeString": "address" }, "typeName": { - "id": 846, + "id": 843, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -3091,12 +3091,12 @@ }, { "constant": false, - "id": 849, + "id": 846, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -3105,7 +3105,7 @@ "typeString": "string" }, "typeName": { - "id": 848, + "id": 845, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -3120,17 +3120,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 853, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 849, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -3139,7 +3139,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 851, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -3153,7 +3153,7 @@ ], "src": "4218:18:2" }, - "scope": 904, + "scope": 901, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -3161,13 +3161,13 @@ }, { "documentation": { - "id": 855, + "id": 852, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 868, + "id": 865, "implemented": false, "kind": "function", "modifiers": [], @@ -3175,17 +3175,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 864, + "id": 861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 857, + "id": 854, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -3194,7 +3194,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 856, + "id": 853, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -3207,12 +3207,12 @@ }, { "constant": false, - "id": 859, + "id": 856, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -3221,7 +3221,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 858, + "id": 855, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -3234,12 +3234,12 @@ }, { "constant": false, - "id": 861, + "id": 858, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -3248,7 +3248,7 @@ "typeString": "address" }, "typeName": { - "id": 860, + "id": 857, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -3262,12 +3262,12 @@ }, { "constant": false, - "id": 863, + "id": 860, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -3276,7 +3276,7 @@ "typeString": "uint64" }, "typeName": { - "id": 862, + "id": 859, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -3291,17 +3291,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 867, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 863, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -3310,7 +3310,7 @@ "typeString": "bool" }, "typeName": { - "id": 865, + "id": 862, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -3324,7 +3324,7 @@ ], "src": "4744:6:2" }, - "scope": 904, + "scope": 901, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -3332,13 +3332,13 @@ }, { "documentation": { - "id": 869, + "id": 866, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 878, + "id": 875, "implemented": false, "kind": "function", "modifiers": [], @@ -3346,17 +3346,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 868, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -3365,7 +3365,7 @@ "typeString": "uint256" }, "typeName": { - "id": 870, + "id": 867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -3378,12 +3378,12 @@ }, { "constant": false, - "id": 873, + "id": 870, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -3392,7 +3392,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 872, + "id": 869, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -3407,17 +3407,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 877, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 873, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -3426,7 +3426,7 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 872, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -3440,7 +3440,7 @@ ], "src": "5120:6:2" }, - "scope": 904, + "scope": 901, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -3448,13 +3448,13 @@ }, { "documentation": { - "id": 879, + "id": 876, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 886, + "id": 883, "implemented": false, "kind": "function", "modifiers": [], @@ -3462,17 +3462,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 878, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -3481,7 +3481,7 @@ "typeString": "address" }, "typeName": { - "id": 880, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -3497,17 +3497,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 885, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -3516,7 +3516,7 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -3530,7 +3530,7 @@ ], "src": "5353:6:2" }, - "scope": 904, + "scope": 901, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -3538,13 +3538,13 @@ }, { "documentation": { - "id": 887, + "id": 884, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 895, + "id": 892, "implemented": false, "kind": "function", "modifiers": [], @@ -3552,17 +3552,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 889, + "id": 886, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -3571,7 +3571,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 885, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -3586,41 +3586,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 894, + "id": 891, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 890, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 892, + "id": 889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 891, + "id": 888, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -3629,7 +3629,7 @@ ], "src": "5555:14:2" }, - "scope": 904, + "scope": 901, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -3637,13 +3637,13 @@ }, { "documentation": { - "id": 896, + "id": 893, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 903, + "id": 900, "implemented": false, "kind": "function", "modifiers": [], @@ -3651,23 +3651,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 897, + "id": 894, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 902, + "id": 899, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 899, + "id": 896, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -3676,7 +3676,7 @@ "typeString": "uint64" }, "typeName": { - "id": 898, + "id": 895, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -3689,12 +3689,12 @@ }, { "constant": false, - "id": 901, + "id": 898, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -3703,7 +3703,7 @@ "typeString": "uint256" }, "typeName": { - "id": 900, + "id": 897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -3717,14 +3717,14 @@ ], "src": "5776:40:2" }, - "scope": 904, + "scope": 901, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 905, + "scope": 902, "src": "211:5608:2", "usedErrors": [] } @@ -3737,5 +3737,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.546Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/Initializable.json b/build/contracts/Initializable.json index 4bc873d..b5e3068 100644 --- a/build/contracts/Initializable.json +++ b/build/contracts/Initializable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1384, + "id": 1381, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1216, + "id": 1213, "literals": [ "solidity", "^", @@ -49,11 +49,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1217, + "id": 1214, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1384, - "sourceUnit": 1842, + "scope": 1381, + "sourceUnit": 1839, "src": "138:44:6", "symbolAliases": [], "unitAlias": "" @@ -65,15 +65,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1218, + "id": 1215, "nodeType": "StructuredDocumentation", "src": "184:2209:6", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1383, + "id": 1380, "linearizedBaseContracts": [ - 1383 + 1380 ], "name": "Initializable", "nameLocation": "2412:13:6", @@ -82,17 +82,17 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1216, "nodeType": "StructuredDocumentation", "src": "2432:109:6", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1221, + "id": 1218, "mutability": "mutable", "name": "_initialized", "nameLocation": "2560:12:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2546:26:6", "stateVariable": true, "storageLocation": "default", @@ -101,7 +101,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1220, + "id": 1217, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2546:5:6", @@ -115,17 +115,17 @@ { "constant": false, "documentation": { - "id": 1222, + "id": 1219, "nodeType": "StructuredDocumentation", "src": "2579:91:6", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1224, + "id": 1221, "mutability": "mutable", "name": "_initializing", "nameLocation": "2688:13:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2675:26:6", "stateVariable": true, "storageLocation": "default", @@ -134,7 +134,7 @@ "typeString": "bool" }, "typeName": { - "id": 1223, + "id": 1220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2675:4:6", @@ -148,29 +148,29 @@ { "anonymous": false, "documentation": { - "id": 1225, + "id": 1222, "nodeType": "StructuredDocumentation", "src": "2708:90:6", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1229, + "id": 1226, "name": "Initialized", "nameLocation": "2809:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1224, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "2827:7:6", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1226, "src": "2821:13:6", "stateVariable": false, "storageLocation": "default", @@ -179,7 +179,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1226, + "id": 1223, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2821:5:6", @@ -197,23 +197,23 @@ }, { "body": { - "id": 1284, + "id": 1281, "nodeType": "Block", "src": "3269:483:6", "statements": [ { "assignments": [ - 1233 + 1230 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1230, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "3284:14:6", "nodeType": "VariableDeclaration", - "scope": 1284, + "scope": 1281, "src": "3279:19:6", "stateVariable": false, "storageLocation": "default", @@ -222,7 +222,7 @@ "typeString": "bool" }, "typeName": { - "id": 1232, + "id": 1229, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3279:4:6", @@ -234,9 +234,9 @@ "visibility": "internal" } ], - "id": 1236, + "id": 1233, "initialValue": { - "id": 1235, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -246,11 +246,11 @@ "prefix": true, "src": "3301:14:6", "subExpression": { - "id": 1234, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3302:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -273,7 +273,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1257, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -285,17 +285,17 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1242, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1235, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3347:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -309,17 +309,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1241, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1239, + "id": 1236, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3365:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -330,7 +330,7 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1240, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, @@ -357,7 +357,7 @@ } } ], - "id": 1243, + "id": 1240, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -379,13 +379,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1255, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1251, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, @@ -399,14 +399,14 @@ { "arguments": [ { - "id": 1248, + "id": 1245, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "3426:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } } @@ -414,11 +414,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } ], - "id": 1247, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, @@ -430,14 +430,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1246, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3418:7:6", "typeDescriptions": {} } }, - "id": 1249, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -462,18 +462,18 @@ } ], "expression": { - "id": 1244, + "id": 1241, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1838, "src": "3388:18:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1841_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1245, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -481,14 +481,14 @@ "memberLocation": "3407:10:6", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "3388:29:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1250, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -516,17 +516,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1254, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1252, + "id": 1249, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3436:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -537,7 +537,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1253, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -564,7 +564,7 @@ } } ], - "id": 1256, + "id": 1253, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -585,7 +585,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1258, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": true, @@ -611,7 +611,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1237, + "id": 1234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -625,7 +625,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1259, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -641,23 +641,23 @@ "typeString": "tuple()" } }, - "id": 1260, + "id": 1257, "nodeType": "ExpressionStatement", "src": "3325:201:6" }, { "expression": { - "id": 1263, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1261, + "id": 1258, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3536:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -668,7 +668,7 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1262, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, @@ -688,44 +688,44 @@ "typeString": "uint8" } }, - "id": 1264, + "id": 1261, "nodeType": "ExpressionStatement", "src": "3536:16:6" }, { "condition": { - "id": 1265, + "id": 1262, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3566:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1271, + "id": 1268, "nodeType": "IfStatement", "src": "3562:65:6", "trueBody": { - "id": 1270, + "id": 1267, "nodeType": "Block", "src": "3582:45:6", "statements": [ { "expression": { - "id": 1268, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1266, + "id": 1263, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3596:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -736,7 +736,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1267, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -756,7 +756,7 @@ "typeString": "bool" } }, - "id": 1269, + "id": 1266, "nodeType": "ExpressionStatement", "src": "3596:20:6" } @@ -764,44 +764,44 @@ } }, { - "id": 1272, + "id": 1269, "nodeType": "PlaceholderStatement", "src": "3636:1:6" }, { "condition": { - "id": 1273, + "id": 1270, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3651:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1283, + "id": 1280, "nodeType": "IfStatement", "src": "3647:99:6", "trueBody": { - "id": 1282, + "id": 1279, "nodeType": "Block", "src": "3667:79:6", "statements": [ { "expression": { - "id": 1276, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1274, + "id": 1271, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3681:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -812,7 +812,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1275, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, @@ -832,7 +832,7 @@ "typeString": "bool" } }, - "id": 1277, + "id": 1274, "nodeType": "ExpressionStatement", "src": "3681:21:6" }, @@ -841,7 +841,7 @@ "arguments": [ { "hexValue": "31", - "id": 1279, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": true, @@ -863,18 +863,18 @@ "typeString": "int_const 1" } ], - "id": 1278, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "3721:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1280, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, @@ -890,7 +890,7 @@ "typeString": "tuple()" } }, - "id": 1281, + "id": 1278, "nodeType": "EmitStatement", "src": "3716:19:6" } @@ -900,17 +900,17 @@ ] }, "documentation": { - "id": 1230, + "id": 1227, "nodeType": "StructuredDocumentation", "src": "2842:399:6", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1285, + "id": 1282, "name": "initializer", "nameLocation": "3255:11:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1231, + "id": 1228, "nodeType": "ParameterList", "parameters": [], "src": "3266:2:6" @@ -921,7 +921,7 @@ }, { "body": { - "id": 1317, + "id": 1314, "nodeType": "Block", "src": "4863:255:6", "statements": [ @@ -933,13 +933,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1296, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1292, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -949,11 +949,11 @@ "prefix": true, "src": "4881:14:6", "subExpression": { - "id": 1291, + "id": 1288, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "4882:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -972,17 +972,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1295, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1293, + "id": 1290, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4899:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -992,11 +992,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1294, + "id": 1291, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4914:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1017,7 +1017,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1297, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, @@ -1043,7 +1043,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1290, + "id": 1287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1057,7 +1057,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1298, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, @@ -1073,23 +1073,23 @@ "typeString": "tuple()" } }, - "id": 1299, + "id": 1296, "nodeType": "ExpressionStatement", "src": "4873:99:6" }, { "expression": { - "id": 1302, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1300, + "id": 1297, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4982:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1099,11 +1099,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1301, + "id": 1298, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1116,23 +1116,23 @@ "typeString": "uint8" } }, - "id": 1303, + "id": 1300, "nodeType": "ExpressionStatement", "src": "4982:22:6" }, { "expression": { - "id": 1306, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1304, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5014:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1143,7 +1143,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1305, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, @@ -1163,28 +1163,28 @@ "typeString": "bool" } }, - "id": 1307, + "id": 1304, "nodeType": "ExpressionStatement", "src": "5014:20:6" }, { - "id": 1308, + "id": 1305, "nodeType": "PlaceholderStatement", "src": "5044:1:6" }, { "expression": { - "id": 1311, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1309, + "id": 1306, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5055:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1195,7 +1195,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1310, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, @@ -1215,7 +1215,7 @@ "typeString": "bool" } }, - "id": 1312, + "id": 1309, "nodeType": "ExpressionStatement", "src": "5055:21:6" }, @@ -1223,11 +1223,11 @@ "eventCall": { "arguments": [ { - "id": 1314, + "id": 1311, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "5103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1242,18 +1242,18 @@ "typeString": "uint8" } ], - "id": 1313, + "id": 1310, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "5091:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1315, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, @@ -1269,34 +1269,34 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1313, "nodeType": "EmitStatement", "src": "5086:25:6" } ] }, "documentation": { - "id": 1286, + "id": 1283, "nodeType": "StructuredDocumentation", "src": "3758:1062:6", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1318, + "id": 1315, "name": "reinitializer", "nameLocation": "4834:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1289, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1285, "mutability": "mutable", "name": "version", "nameLocation": "4854:7:6", "nodeType": "VariableDeclaration", - "scope": 1318, + "scope": 1315, "src": "4848:13:6", "stateVariable": false, "storageLocation": "default", @@ -1305,7 +1305,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1287, + "id": 1284, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4848:5:6", @@ -1325,7 +1325,7 @@ }, { "body": { - "id": 1327, + "id": 1324, "nodeType": "Block", "src": "5356:97:6", "statements": [ @@ -1333,11 +1333,11 @@ "expression": { "arguments": [ { - "id": 1322, + "id": 1319, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5374:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1346,7 +1346,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1323, + "id": 1320, "isConstant": false, "isLValue": false, "isPure": true, @@ -1372,7 +1372,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1321, + "id": 1318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1386,7 +1386,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -1402,29 +1402,29 @@ "typeString": "tuple()" } }, - "id": 1325, + "id": 1322, "nodeType": "ExpressionStatement", "src": "5366:69:6" }, { - "id": 1326, + "id": 1323, "nodeType": "PlaceholderStatement", "src": "5445:1:6" } ] }, "documentation": { - "id": 1319, + "id": 1316, "nodeType": "StructuredDocumentation", "src": "5124:199:6", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1328, + "id": 1325, "name": "onlyInitializing", "nameLocation": "5337:16:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1320, + "id": 1317, "nodeType": "ParameterList", "parameters": [], "src": "5353:2:6" @@ -1435,7 +1435,7 @@ }, { "body": { - "id": 1363, + "id": 1360, "nodeType": "Block", "src": "5988:231:6", "statements": [ @@ -1443,7 +1443,7 @@ "expression": { "arguments": [ { - "id": 1334, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -1453,11 +1453,11 @@ "prefix": true, "src": "6006:14:6", "subExpression": { - "id": 1333, + "id": 1330, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6007:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1471,7 +1471,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1335, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, @@ -1497,7 +1497,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1332, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1511,7 +1511,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1336, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -1527,7 +1527,7 @@ "typeString": "tuple()" } }, - "id": 1337, + "id": 1334, "nodeType": "ExpressionStatement", "src": "5998:66:6" }, @@ -1537,17 +1537,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1344, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1338, + "id": 1335, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6078:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1560,7 +1560,7 @@ "expression": { "arguments": [ { - "id": 1341, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, @@ -1572,7 +1572,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1340, + "id": 1337, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6099:5:6", @@ -1587,7 +1587,7 @@ "typeString": "type(uint8)" } ], - "id": 1339, + "id": 1336, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1598,7 +1598,7 @@ "typeString": "function () pure" } }, - "id": 1342, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, @@ -1614,7 +1614,7 @@ "typeString": "type(uint8)" } }, - "id": 1343, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": true, @@ -1634,27 +1634,27 @@ "typeString": "bool" } }, - "id": 1362, + "id": 1359, "nodeType": "IfStatement", "src": "6074:139:6", "trueBody": { - "id": 1361, + "id": 1358, "nodeType": "Block", "src": "6111:102:6", "statements": [ { "expression": { - "id": 1351, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1345, + "id": 1342, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6125:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1667,7 +1667,7 @@ "expression": { "arguments": [ { - "id": 1348, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": true, @@ -1679,7 +1679,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1347, + "id": 1344, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6145:5:6", @@ -1694,7 +1694,7 @@ "typeString": "type(uint8)" } ], - "id": 1346, + "id": 1343, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1705,7 +1705,7 @@ "typeString": "function () pure" } }, - "id": 1349, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, @@ -1721,7 +1721,7 @@ "typeString": "type(uint8)" } }, - "id": 1350, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": true, @@ -1741,7 +1741,7 @@ "typeString": "uint8" } }, - "id": 1352, + "id": 1349, "nodeType": "ExpressionStatement", "src": "6125:30:6" }, @@ -1752,7 +1752,7 @@ "expression": { "arguments": [ { - "id": 1356, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, @@ -1764,7 +1764,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1355, + "id": 1352, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6191:5:6", @@ -1779,7 +1779,7 @@ "typeString": "type(uint8)" } ], - "id": 1354, + "id": 1351, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1790,7 +1790,7 @@ "typeString": "function () pure" } }, - "id": 1357, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -1806,7 +1806,7 @@ "typeString": "type(uint8)" } }, - "id": 1358, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -1828,18 +1828,18 @@ "typeString": "uint8" } ], - "id": 1353, + "id": 1350, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "6174:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1359, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -1855,7 +1855,7 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1357, "nodeType": "EmitStatement", "src": "6169:33:6" } @@ -1865,12 +1865,12 @@ ] }, "documentation": { - "id": 1329, + "id": 1326, "nodeType": "StructuredDocumentation", "src": "5459:475:6", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1364, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -1878,18 +1878,18 @@ "nameLocation": "5948:20:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1330, + "id": 1327, "nodeType": "ParameterList", "parameters": [], "src": "5968:2:6" }, "returnParameters": { - "id": 1331, + "id": 1328, "nodeType": "ParameterList", "parameters": [], "src": "5988:0:6" }, - "scope": 1383, + "scope": 1380, "src": "5939:280:6", "stateMutability": "nonpayable", "virtual": true, @@ -1897,37 +1897,37 @@ }, { "body": { - "id": 1372, + "id": 1369, "nodeType": "Block", "src": "6393:36:6", "statements": [ { "expression": { - "id": 1370, + "id": 1367, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1369, - "id": 1371, + "functionReturnParameters": 1366, + "id": 1368, "nodeType": "Return", "src": "6403:19:6" } ] }, "documentation": { - "id": 1365, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6225:99:6", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1373, + "id": 1370, "implemented": true, "kind": "function", "modifiers": [], @@ -1935,23 +1935,23 @@ "nameLocation": "6338:22:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1366, + "id": 1363, "nodeType": "ParameterList", "parameters": [], "src": "6360:2:6" }, "returnParameters": { - "id": 1369, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1368, + "id": 1365, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1370, "src": "6386:5:6", "stateVariable": false, "storageLocation": "default", @@ -1960,7 +1960,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1367, + "id": 1364, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6386:5:6", @@ -1974,7 +1974,7 @@ ], "src": "6385:7:6" }, - "scope": 1383, + "scope": 1380, "src": "6329:100:6", "stateMutability": "view", "virtual": false, @@ -1982,37 +1982,37 @@ }, { "body": { - "id": 1381, + "id": 1378, "nodeType": "Block", "src": "6601:37:6", "statements": [ { "expression": { - "id": 1379, + "id": 1376, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6618:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1378, - "id": 1380, + "functionReturnParameters": 1375, + "id": 1377, "nodeType": "Return", "src": "6611:20:6" } ] }, "documentation": { - "id": 1374, + "id": 1371, "nodeType": "StructuredDocumentation", "src": "6435:105:6", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1382, + "id": 1379, "implemented": true, "kind": "function", "modifiers": [], @@ -2020,23 +2020,23 @@ "nameLocation": "6554:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1375, + "id": 1372, "nodeType": "ParameterList", "parameters": [], "src": "6569:2:6" }, "returnParameters": { - "id": 1378, + "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1377, + "id": 1374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1379, "src": "6595:4:6", "stateVariable": false, "storageLocation": "default", @@ -2045,7 +2045,7 @@ "typeString": "bool" }, "typeName": { - "id": 1376, + "id": 1373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6595:4:6", @@ -2059,14 +2059,14 @@ ], "src": "6594:6:6" }, - "scope": 1383, + "scope": 1380, "src": "6545:93:6", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1384, + "scope": 1381, "src": "2394:4246:6", "usedErrors": [] } @@ -2077,18 +2077,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1384, + "id": 1381, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1216, + "id": 1213, "literals": [ "solidity", "^", @@ -2101,11 +2101,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1217, + "id": 1214, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1384, - "sourceUnit": 1842, + "scope": 1381, + "sourceUnit": 1839, "src": "138:44:6", "symbolAliases": [], "unitAlias": "" @@ -2117,15 +2117,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1218, + "id": 1215, "nodeType": "StructuredDocumentation", "src": "184:2209:6", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1383, + "id": 1380, "linearizedBaseContracts": [ - 1383 + 1380 ], "name": "Initializable", "nameLocation": "2412:13:6", @@ -2134,17 +2134,17 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1216, "nodeType": "StructuredDocumentation", "src": "2432:109:6", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1221, + "id": 1218, "mutability": "mutable", "name": "_initialized", "nameLocation": "2560:12:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2546:26:6", "stateVariable": true, "storageLocation": "default", @@ -2153,7 +2153,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1220, + "id": 1217, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2546:5:6", @@ -2167,17 +2167,17 @@ { "constant": false, "documentation": { - "id": 1222, + "id": 1219, "nodeType": "StructuredDocumentation", "src": "2579:91:6", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1224, + "id": 1221, "mutability": "mutable", "name": "_initializing", "nameLocation": "2688:13:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2675:26:6", "stateVariable": true, "storageLocation": "default", @@ -2186,7 +2186,7 @@ "typeString": "bool" }, "typeName": { - "id": 1223, + "id": 1220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2675:4:6", @@ -2200,29 +2200,29 @@ { "anonymous": false, "documentation": { - "id": 1225, + "id": 1222, "nodeType": "StructuredDocumentation", "src": "2708:90:6", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1229, + "id": 1226, "name": "Initialized", "nameLocation": "2809:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1224, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "2827:7:6", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1226, "src": "2821:13:6", "stateVariable": false, "storageLocation": "default", @@ -2231,7 +2231,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1226, + "id": 1223, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2821:5:6", @@ -2249,23 +2249,23 @@ }, { "body": { - "id": 1284, + "id": 1281, "nodeType": "Block", "src": "3269:483:6", "statements": [ { "assignments": [ - 1233 + 1230 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1230, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "3284:14:6", "nodeType": "VariableDeclaration", - "scope": 1284, + "scope": 1281, "src": "3279:19:6", "stateVariable": false, "storageLocation": "default", @@ -2274,7 +2274,7 @@ "typeString": "bool" }, "typeName": { - "id": 1232, + "id": 1229, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3279:4:6", @@ -2286,9 +2286,9 @@ "visibility": "internal" } ], - "id": 1236, + "id": 1233, "initialValue": { - "id": 1235, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -2298,11 +2298,11 @@ "prefix": true, "src": "3301:14:6", "subExpression": { - "id": 1234, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3302:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2325,7 +2325,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1257, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2337,17 +2337,17 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1242, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1235, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3347:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2361,17 +2361,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1241, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1239, + "id": 1236, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3365:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2382,7 +2382,7 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1240, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, @@ -2409,7 +2409,7 @@ } } ], - "id": 1243, + "id": 1240, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -2431,13 +2431,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1255, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1251, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, @@ -2451,14 +2451,14 @@ { "arguments": [ { - "id": 1248, + "id": 1245, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "3426:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } } @@ -2466,11 +2466,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } ], - "id": 1247, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, @@ -2482,14 +2482,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1246, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3418:7:6", "typeDescriptions": {} } }, - "id": 1249, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -2514,18 +2514,18 @@ } ], "expression": { - "id": 1244, + "id": 1241, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1838, "src": "3388:18:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1841_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1245, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -2533,14 +2533,14 @@ "memberLocation": "3407:10:6", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "3388:29:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1250, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -2568,17 +2568,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1254, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1252, + "id": 1249, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3436:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2589,7 +2589,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1253, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -2616,7 +2616,7 @@ } } ], - "id": 1256, + "id": 1253, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -2637,7 +2637,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1258, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": true, @@ -2663,7 +2663,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1237, + "id": 1234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2677,7 +2677,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1259, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -2693,23 +2693,23 @@ "typeString": "tuple()" } }, - "id": 1260, + "id": 1257, "nodeType": "ExpressionStatement", "src": "3325:201:6" }, { "expression": { - "id": 1263, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1261, + "id": 1258, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3536:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2720,7 +2720,7 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1262, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, @@ -2740,44 +2740,44 @@ "typeString": "uint8" } }, - "id": 1264, + "id": 1261, "nodeType": "ExpressionStatement", "src": "3536:16:6" }, { "condition": { - "id": 1265, + "id": 1262, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3566:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1271, + "id": 1268, "nodeType": "IfStatement", "src": "3562:65:6", "trueBody": { - "id": 1270, + "id": 1267, "nodeType": "Block", "src": "3582:45:6", "statements": [ { "expression": { - "id": 1268, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1266, + "id": 1263, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3596:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2788,7 +2788,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1267, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -2808,7 +2808,7 @@ "typeString": "bool" } }, - "id": 1269, + "id": 1266, "nodeType": "ExpressionStatement", "src": "3596:20:6" } @@ -2816,44 +2816,44 @@ } }, { - "id": 1272, + "id": 1269, "nodeType": "PlaceholderStatement", "src": "3636:1:6" }, { "condition": { - "id": 1273, + "id": 1270, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3651:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1283, + "id": 1280, "nodeType": "IfStatement", "src": "3647:99:6", "trueBody": { - "id": 1282, + "id": 1279, "nodeType": "Block", "src": "3667:79:6", "statements": [ { "expression": { - "id": 1276, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1274, + "id": 1271, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3681:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2864,7 +2864,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1275, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, @@ -2884,7 +2884,7 @@ "typeString": "bool" } }, - "id": 1277, + "id": 1274, "nodeType": "ExpressionStatement", "src": "3681:21:6" }, @@ -2893,7 +2893,7 @@ "arguments": [ { "hexValue": "31", - "id": 1279, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": true, @@ -2915,18 +2915,18 @@ "typeString": "int_const 1" } ], - "id": 1278, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "3721:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1280, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, @@ -2942,7 +2942,7 @@ "typeString": "tuple()" } }, - "id": 1281, + "id": 1278, "nodeType": "EmitStatement", "src": "3716:19:6" } @@ -2952,17 +2952,17 @@ ] }, "documentation": { - "id": 1230, + "id": 1227, "nodeType": "StructuredDocumentation", "src": "2842:399:6", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1285, + "id": 1282, "name": "initializer", "nameLocation": "3255:11:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1231, + "id": 1228, "nodeType": "ParameterList", "parameters": [], "src": "3266:2:6" @@ -2973,7 +2973,7 @@ }, { "body": { - "id": 1317, + "id": 1314, "nodeType": "Block", "src": "4863:255:6", "statements": [ @@ -2985,13 +2985,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1296, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1292, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -3001,11 +3001,11 @@ "prefix": true, "src": "4881:14:6", "subExpression": { - "id": 1291, + "id": 1288, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "4882:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3024,17 +3024,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1295, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1293, + "id": 1290, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4899:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3044,11 +3044,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1294, + "id": 1291, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4914:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3069,7 +3069,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1297, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, @@ -3095,7 +3095,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1290, + "id": 1287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3109,7 +3109,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1298, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, @@ -3125,23 +3125,23 @@ "typeString": "tuple()" } }, - "id": 1299, + "id": 1296, "nodeType": "ExpressionStatement", "src": "4873:99:6" }, { "expression": { - "id": 1302, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1300, + "id": 1297, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4982:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3151,11 +3151,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1301, + "id": 1298, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3168,23 +3168,23 @@ "typeString": "uint8" } }, - "id": 1303, + "id": 1300, "nodeType": "ExpressionStatement", "src": "4982:22:6" }, { "expression": { - "id": 1306, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1304, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5014:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3195,7 +3195,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1305, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, @@ -3215,28 +3215,28 @@ "typeString": "bool" } }, - "id": 1307, + "id": 1304, "nodeType": "ExpressionStatement", "src": "5014:20:6" }, { - "id": 1308, + "id": 1305, "nodeType": "PlaceholderStatement", "src": "5044:1:6" }, { "expression": { - "id": 1311, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1309, + "id": 1306, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5055:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3247,7 +3247,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1310, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, @@ -3267,7 +3267,7 @@ "typeString": "bool" } }, - "id": 1312, + "id": 1309, "nodeType": "ExpressionStatement", "src": "5055:21:6" }, @@ -3275,11 +3275,11 @@ "eventCall": { "arguments": [ { - "id": 1314, + "id": 1311, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "5103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3294,18 +3294,18 @@ "typeString": "uint8" } ], - "id": 1313, + "id": 1310, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "5091:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1315, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, @@ -3321,34 +3321,34 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1313, "nodeType": "EmitStatement", "src": "5086:25:6" } ] }, "documentation": { - "id": 1286, + "id": 1283, "nodeType": "StructuredDocumentation", "src": "3758:1062:6", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1318, + "id": 1315, "name": "reinitializer", "nameLocation": "4834:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1289, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1285, "mutability": "mutable", "name": "version", "nameLocation": "4854:7:6", "nodeType": "VariableDeclaration", - "scope": 1318, + "scope": 1315, "src": "4848:13:6", "stateVariable": false, "storageLocation": "default", @@ -3357,7 +3357,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1287, + "id": 1284, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4848:5:6", @@ -3377,7 +3377,7 @@ }, { "body": { - "id": 1327, + "id": 1324, "nodeType": "Block", "src": "5356:97:6", "statements": [ @@ -3385,11 +3385,11 @@ "expression": { "arguments": [ { - "id": 1322, + "id": 1319, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5374:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3398,7 +3398,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1323, + "id": 1320, "isConstant": false, "isLValue": false, "isPure": true, @@ -3424,7 +3424,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1321, + "id": 1318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3438,7 +3438,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -3454,29 +3454,29 @@ "typeString": "tuple()" } }, - "id": 1325, + "id": 1322, "nodeType": "ExpressionStatement", "src": "5366:69:6" }, { - "id": 1326, + "id": 1323, "nodeType": "PlaceholderStatement", "src": "5445:1:6" } ] }, "documentation": { - "id": 1319, + "id": 1316, "nodeType": "StructuredDocumentation", "src": "5124:199:6", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1328, + "id": 1325, "name": "onlyInitializing", "nameLocation": "5337:16:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1320, + "id": 1317, "nodeType": "ParameterList", "parameters": [], "src": "5353:2:6" @@ -3487,7 +3487,7 @@ }, { "body": { - "id": 1363, + "id": 1360, "nodeType": "Block", "src": "5988:231:6", "statements": [ @@ -3495,7 +3495,7 @@ "expression": { "arguments": [ { - "id": 1334, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -3505,11 +3505,11 @@ "prefix": true, "src": "6006:14:6", "subExpression": { - "id": 1333, + "id": 1330, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6007:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3523,7 +3523,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1335, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, @@ -3549,7 +3549,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1332, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3563,7 +3563,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1336, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -3579,7 +3579,7 @@ "typeString": "tuple()" } }, - "id": 1337, + "id": 1334, "nodeType": "ExpressionStatement", "src": "5998:66:6" }, @@ -3589,17 +3589,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1344, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1338, + "id": 1335, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6078:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3612,7 +3612,7 @@ "expression": { "arguments": [ { - "id": 1341, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, @@ -3624,7 +3624,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1340, + "id": 1337, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6099:5:6", @@ -3639,7 +3639,7 @@ "typeString": "type(uint8)" } ], - "id": 1339, + "id": 1336, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3650,7 +3650,7 @@ "typeString": "function () pure" } }, - "id": 1342, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, @@ -3666,7 +3666,7 @@ "typeString": "type(uint8)" } }, - "id": 1343, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": true, @@ -3686,27 +3686,27 @@ "typeString": "bool" } }, - "id": 1362, + "id": 1359, "nodeType": "IfStatement", "src": "6074:139:6", "trueBody": { - "id": 1361, + "id": 1358, "nodeType": "Block", "src": "6111:102:6", "statements": [ { "expression": { - "id": 1351, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1345, + "id": 1342, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6125:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3719,7 +3719,7 @@ "expression": { "arguments": [ { - "id": 1348, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": true, @@ -3731,7 +3731,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1347, + "id": 1344, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6145:5:6", @@ -3746,7 +3746,7 @@ "typeString": "type(uint8)" } ], - "id": 1346, + "id": 1343, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3757,7 +3757,7 @@ "typeString": "function () pure" } }, - "id": 1349, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, @@ -3773,7 +3773,7 @@ "typeString": "type(uint8)" } }, - "id": 1350, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": true, @@ -3793,7 +3793,7 @@ "typeString": "uint8" } }, - "id": 1352, + "id": 1349, "nodeType": "ExpressionStatement", "src": "6125:30:6" }, @@ -3804,7 +3804,7 @@ "expression": { "arguments": [ { - "id": 1356, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, @@ -3816,7 +3816,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1355, + "id": 1352, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6191:5:6", @@ -3831,7 +3831,7 @@ "typeString": "type(uint8)" } ], - "id": 1354, + "id": 1351, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3842,7 +3842,7 @@ "typeString": "function () pure" } }, - "id": 1357, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -3858,7 +3858,7 @@ "typeString": "type(uint8)" } }, - "id": 1358, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -3880,18 +3880,18 @@ "typeString": "uint8" } ], - "id": 1353, + "id": 1350, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "6174:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1359, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -3907,7 +3907,7 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1357, "nodeType": "EmitStatement", "src": "6169:33:6" } @@ -3917,12 +3917,12 @@ ] }, "documentation": { - "id": 1329, + "id": 1326, "nodeType": "StructuredDocumentation", "src": "5459:475:6", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1364, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -3930,18 +3930,18 @@ "nameLocation": "5948:20:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1330, + "id": 1327, "nodeType": "ParameterList", "parameters": [], "src": "5968:2:6" }, "returnParameters": { - "id": 1331, + "id": 1328, "nodeType": "ParameterList", "parameters": [], "src": "5988:0:6" }, - "scope": 1383, + "scope": 1380, "src": "5939:280:6", "stateMutability": "nonpayable", "virtual": true, @@ -3949,37 +3949,37 @@ }, { "body": { - "id": 1372, + "id": 1369, "nodeType": "Block", "src": "6393:36:6", "statements": [ { "expression": { - "id": 1370, + "id": 1367, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1369, - "id": 1371, + "functionReturnParameters": 1366, + "id": 1368, "nodeType": "Return", "src": "6403:19:6" } ] }, "documentation": { - "id": 1365, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6225:99:6", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1373, + "id": 1370, "implemented": true, "kind": "function", "modifiers": [], @@ -3987,23 +3987,23 @@ "nameLocation": "6338:22:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1366, + "id": 1363, "nodeType": "ParameterList", "parameters": [], "src": "6360:2:6" }, "returnParameters": { - "id": 1369, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1368, + "id": 1365, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1370, "src": "6386:5:6", "stateVariable": false, "storageLocation": "default", @@ -4012,7 +4012,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1367, + "id": 1364, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6386:5:6", @@ -4026,7 +4026,7 @@ ], "src": "6385:7:6" }, - "scope": 1383, + "scope": 1380, "src": "6329:100:6", "stateMutability": "view", "virtual": false, @@ -4034,37 +4034,37 @@ }, { "body": { - "id": 1381, + "id": 1378, "nodeType": "Block", "src": "6601:37:6", "statements": [ { "expression": { - "id": 1379, + "id": 1376, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6618:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1378, - "id": 1380, + "functionReturnParameters": 1375, + "id": 1377, "nodeType": "Return", "src": "6611:20:6" } ] }, "documentation": { - "id": 1374, + "id": 1371, "nodeType": "StructuredDocumentation", "src": "6435:105:6", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1382, + "id": 1379, "implemented": true, "kind": "function", "modifiers": [], @@ -4072,23 +4072,23 @@ "nameLocation": "6554:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1375, + "id": 1372, "nodeType": "ParameterList", "parameters": [], "src": "6569:2:6" }, "returnParameters": { - "id": 1378, + "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1377, + "id": 1374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1379, "src": "6595:4:6", "stateVariable": false, "storageLocation": "default", @@ -4097,7 +4097,7 @@ "typeString": "bool" }, "typeName": { - "id": 1376, + "id": 1373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6595:4:6", @@ -4111,14 +4111,14 @@ ], "src": "6594:6:6" }, - "scope": 1383, + "scope": 1380, "src": "6545:93:6", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1384, + "scope": 1381, "src": "2394:4246:6", "usedErrors": [] } @@ -4131,5 +4131,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.552Z" + "updatedAt": "2024-06-27T12:24:25.256Z" } \ No newline at end of file diff --git a/build/contracts/MockUSDT.json b/build/contracts/MockUSDT.json index 991a59b..4c9f990 100644 --- a/build/contracts/MockUSDT.json +++ b/build/contracts/MockUSDT.json @@ -310,28 +310,28 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506040518060400160405280600881526020017f4d6f636b554453430000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d555344430000000000000000000000000000000000000000000000000000008152508160039081620000ab9190620004d3565b508060049081620000bd9190620004d3565b505050620000dc3369d3c21bcecceda1000000620000e260201b60201c565b620006d5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200061b565b60405180910390fd5b62000168600083836200024f60201b60201c565b80600260008282546200017c91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022f9190620006b8565b60405180910390a36200024b600083836200025460201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002db57607f821691505b602082108103620002f157620002f062000293565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200031c565b6200036786836200031c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b4620003ae620003a8846200037f565b62000389565b6200037f565b9050919050565b6000819050919050565b620003d08362000393565b620003e8620003df82620003bb565b84845462000329565b825550505050565b600090565b620003ff620003f0565b6200040c818484620003c5565b505050565b5b81811015620004345762000428600082620003f5565b60018101905062000412565b5050565b601f82111562000483576200044d81620002f7565b62000458846200030c565b8101602085101562000468578190505b6200048062000477856200030c565b83018262000411565b50505b505050565b600082821c905092915050565b6000620004a86000198460080262000488565b1980831691505092915050565b6000620004c3838362000495565b9150826002028217905092915050565b620004de8262000259565b67ffffffffffffffff811115620004fa57620004f962000264565b5b620005068254620002c2565b6200051382828562000438565b600060209050601f8311600181146200054b576000841562000536578287015190505b620005428582620004b5565b865550620005b2565b601f1984166200055b86620002f7565b60005b8281101562000585578489015182556001820191506020850194506020810190506200055e565b86831015620005a55784890151620005a1601f89168262000495565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000603601f83620005ba565b91506200061082620005cb565b602082019050919050565b600060208201905081810360008301526200063681620005f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000679826200037f565b915062000686836200037f565b9250828201905080821115620006a157620006a06200063d565b5b92915050565b620006b2816200037f565b82525050565b6000602082019050620006cf6000830184620006a7565b92915050565b6118bb80620006e56000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220d51abe46434b1aa994e9309960c30d10a198f9655da44a6998ddc7989842aba864736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220d51abe46434b1aa994e9309960c30d10a198f9655da44a6998ddc7989842aba864736f6c63430008120033", + "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506040518060400160405280600881526020017f4d6f636b554453430000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d555344430000000000000000000000000000000000000000000000000000008152508160039081620000ab9190620004d3565b508060049081620000bd9190620004d3565b505050620000dc3369d3c21bcecceda1000000620000e260201b60201c565b620006d5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200061b565b60405180910390fd5b62000168600083836200024f60201b60201c565b80600260008282546200017c91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022f9190620006b8565b60405180910390a36200024b600083836200025460201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002db57607f821691505b602082108103620002f157620002f062000293565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200031c565b6200036786836200031c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b4620003ae620003a8846200037f565b62000389565b6200037f565b9050919050565b6000819050919050565b620003d08362000393565b620003e8620003df82620003bb565b84845462000329565b825550505050565b600090565b620003ff620003f0565b6200040c818484620003c5565b505050565b5b81811015620004345762000428600082620003f5565b60018101905062000412565b5050565b601f82111562000483576200044d81620002f7565b62000458846200030c565b8101602085101562000468578190505b6200048062000477856200030c565b83018262000411565b50505b505050565b600082821c905092915050565b6000620004a86000198460080262000488565b1980831691505092915050565b6000620004c3838362000495565b9150826002028217905092915050565b620004de8262000259565b67ffffffffffffffff811115620004fa57620004f962000264565b5b620005068254620002c2565b6200051382828562000438565b600060209050601f8311600181146200054b576000841562000536578287015190505b620005428582620004b5565b865550620005b2565b601f1984166200055b86620002f7565b60005b8281101562000585578489015182556001820191506020850194506020810190506200055e565b86831015620005a55784890151620005a1601f89168262000495565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000603601f83620005ba565b91506200061082620005cb565b602082019050919050565b600060208201905081810360008301526200063681620005f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000679826200037f565b915062000686836200037f565b9250828201905080821115620006a157620006a06200063d565b5b92915050565b620006b2816200037f565b82525050565b6000602082019050620006cf6000830184620006a7565b92915050565b6118bb80620006e56000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220e9fa28f94069e8bdb096aaa91496264e103a5b1682d15ae8976276ba708d33f764736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220e9fa28f94069e8bdb096aaa91496264e103a5b1682d15ae8976276ba708d33f764736f6c63430008120033", "sourceMap": "162:496:3:-:0;;;195:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:113:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;:::i;:::-;;1980:113;;246:31:3::1;252:10;264:12;246:5;;;:31;;:::i;:::-;162:496:::0;;8520:535:10;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:14:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:169::-;5318:11;5352:6;5347:3;5340:19;5392:4;5387:3;5383:14;5368:29;;5234:169;;;;:::o;5409:181::-;5549:33;5545:1;5537:6;5533:14;5526:57;5409:181;:::o;5596:366::-;5738:3;5759:67;5823:2;5818:3;5759:67;:::i;:::-;5752:74;;5835:93;5924:3;5835:93;:::i;:::-;5953:2;5948:3;5944:12;5937:19;;5596:366;;;:::o;5968:419::-;6134:4;6172:2;6161:9;6157:18;6149:26;;6221:9;6215:4;6211:20;6207:1;6196:9;6192:17;6185:47;6249:131;6375:4;6249:131;:::i;:::-;6241:139;;5968:419;;;:::o;6393:180::-;6441:77;6438:1;6431:88;6538:4;6535:1;6528:15;6562:4;6559:1;6552:15;6579:191;6619:3;6638:20;6656:1;6638:20;:::i;:::-;6633:25;;6672:20;6690:1;6672:20;:::i;:::-;6667:25;;6715:1;6712;6708:9;6701:16;;6736:3;6733:1;6730:10;6727:36;;;6743:18;;:::i;:::-;6727:36;6579:191;;;;:::o;6776:118::-;6863:24;6881:5;6863:24;:::i;:::-;6858:3;6851:37;6776:118;;:::o;6900:222::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:71;7112:1;7101:9;7097:17;7088:6;7044:71;:::i;:::-;6900:222;;;;:::o;162:496:3:-;;;;;;;", "deployedSourceMap": "162:496:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;379:83:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3419:125:10;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;468:188:3;;;:::i;:::-;;290:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6575:427:10;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;3104:91::-;3162:5;3186:2;3179:9;;3104:91;:::o;5854:234::-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;379:83:3:-;429:26;435:10;447:7;429:5;:26::i;:::-;379:83;:::o;3419:125:10:-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;468:188:3:-;506:18;527:21;537:10;527:9;:21::i;:::-;506:42;;579:1;566:10;:14;558:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;620:29;626:10;638;620:5;:29::i;:::-;496:160;468:188::o;290:83::-;340:26;346:10;358:7;340:5;:26::i;:::-;290:83;:::o;6575:427:10:-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;655:96:13:-;708:7;734:10;727:17;;655:96;:::o;10457:340:10:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;9375:659::-;9477:1;9458:21;;:7;:21;;;9450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;9588:22;9613:9;:18;9623:7;9613:18;;;;;;;;;;;;;;;;9588:43;;9667:6;9649:14;:24;;9641:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:6;9767:14;:23;9746:9;:18;9756:7;9746:18;;;;;;;;;;;;;;;:44;;;;9899:6;9883:12;;:22;;;;;;;;;;;9957:1;9931:37;;9940:7;9931:37;;;9961:6;9931:37;;;;;;:::i;:::-;;;;;;;;9979:48;9999:7;10016:1;10020:6;9979:19;:48::i;:::-;9440:594;9375:659;;:::o;8520:535::-;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;:49::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;:48::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:14:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:128;1713:7;1753:44;1746:5;1742:56;1731:67;;1676:128;;;:::o;1810:122::-;1883:24;1901:5;1883:24;:::i;:::-;1876:5;1873:35;1863:63;;1922:1;1919;1912:12;1863:63;1810:122;:::o;1938:126::-;1975:7;2015:42;2008:5;2004:54;1993:65;;1938:126;;;:::o;2070:96::-;2107:7;2136:24;2154:5;2136:24;:::i;:::-;2125:35;;2070:96;;;:::o;2172:181::-;2218:5;2256:6;2243:20;2234:29;;2272:33;2299:5;2272:33;:::i;:::-;2323:24;2341:5;2323:24;:::i;:::-;2314:33;;2172:181;;;;:::o;2359:77::-;2396:7;2425:5;2414:16;;2359:77;;;:::o;2442:122::-;2515:24;2533:5;2515:24;:::i;:::-;2508:5;2505:35;2495:63;;2554:1;2551;2544:12;2495:63;2442:122;:::o;2570:139::-;2616:5;2654:6;2641:20;2632:29;;2670:33;2697:5;2670:33;:::i;:::-;2570:139;;;;:::o;2715:474::-;2783:6;2791;2840:2;2828:9;2819:7;2815:23;2811:32;2808:119;;;2846:79;;:::i;:::-;2808:119;2966:1;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2937:117;3093:2;3119:53;3164:7;3155:6;3144:9;3140:22;3119:53;:::i;:::-;3109:63;;3064:118;2715:474;;;;;:::o;3195:90::-;3229:7;3272:5;3265:13;3258:21;3247:32;;3195:90;;;:::o;3291:109::-;3372:21;3387:5;3372:21;:::i;:::-;3367:3;3360:34;3291:109;;:::o;3406:210::-;3493:4;3531:2;3520:9;3516:18;3508:26;;3544:65;3606:1;3595:9;3591:17;3582:6;3544:65;:::i;:::-;3406:210;;;;:::o;3622:118::-;3709:24;3727:5;3709:24;:::i;:::-;3704:3;3697:37;3622:118;;:::o;3746:222::-;3839:4;3877:2;3866:9;3862:18;3854:26;;3890:71;3958:1;3947:9;3943:17;3934:6;3890:71;:::i;:::-;3746:222;;;;:::o;3974:619::-;4051:6;4059;4067;4116:2;4104:9;4095:7;4091:23;4087:32;4084:119;;;4122:79;;:::i;:::-;4084:119;4242:1;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4213:117;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;4497:2;4523:53;4568:7;4559:6;4548:9;4544:22;4523:53;:::i;:::-;4513:63;;4468:118;3974:619;;;;;:::o;4599:86::-;4634:7;4674:4;4667:5;4663:16;4652:27;;4599:86;;;:::o;4691:112::-;4774:22;4790:5;4774:22;:::i;:::-;4769:3;4762:35;4691:112;;:::o;4809:214::-;4898:4;4936:2;4925:9;4921:18;4913:26;;4949:67;5013:1;5002:9;4998:17;4989:6;4949:67;:::i;:::-;4809:214;;;;:::o;5029:329::-;5088:6;5137:2;5125:9;5116:7;5112:23;5108:32;5105:119;;;5143:79;;:::i;:::-;5105:119;5263:1;5288:53;5333:7;5324:6;5313:9;5309:22;5288:53;:::i;:::-;5278:63;;5234:117;5029:329;;;;:::o;5364:::-;5423:6;5472:2;5460:9;5451:7;5447:23;5443:32;5440:119;;;5478:79;;:::i;:::-;5440:119;5598:1;5623:53;5668:7;5659:6;5648:9;5644:22;5623:53;:::i;:::-;5613:63;;5569:117;5364:329;;;;:::o;5699:474::-;5767:6;5775;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;6077:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6048:118;5699:474;;;;;:::o;6179:180::-;6227:77;6224:1;6217:88;6324:4;6321:1;6314:15;6348:4;6345:1;6338:15;6365:320;6409:6;6446:1;6440:4;6436:12;6426:22;;6493:1;6487:4;6483:12;6514:18;6504:81;;6570:4;6562:6;6558:17;6548:27;;6504:81;6632:2;6624:6;6621:14;6601:18;6598:38;6595:84;;6651:18;;:::i;:::-;6595:84;6416:269;6365:320;;;:::o;6691:180::-;6739:77;6736:1;6729:88;6836:4;6833:1;6826:15;6860:4;6857:1;6850:15;6877:191;6917:3;6936:20;6954:1;6936:20;:::i;:::-;6931:25;;6970:20;6988:1;6970:20;:::i;:::-;6965:25;;7013:1;7010;7006:9;6999:16;;7034:3;7031:1;7028:10;7025:36;;;7041:18;;:::i;:::-;7025:36;6877:191;;;;:::o;7074:175::-;7214:27;7210:1;7202:6;7198:14;7191:51;7074:175;:::o;7255:366::-;7397:3;7418:67;7482:2;7477:3;7418:67;:::i;:::-;7411:74;;7494:93;7583:3;7494:93;:::i;:::-;7612:2;7607:3;7603:12;7596:19;;7255:366;;;:::o;7627:419::-;7793:4;7831:2;7820:9;7816:18;7808:26;;7880:9;7874:4;7870:20;7866:1;7855:9;7851:17;7844:47;7908:131;8034:4;7908:131;:::i;:::-;7900:139;;7627:419;;;:::o;8052:224::-;8192:34;8188:1;8180:6;8176:14;8169:58;8261:7;8256:2;8248:6;8244:15;8237:32;8052:224;:::o;8282:366::-;8424:3;8445:67;8509:2;8504:3;8445:67;:::i;:::-;8438:74;;8521:93;8610:3;8521:93;:::i;:::-;8639:2;8634:3;8630:12;8623:19;;8282:366;;;:::o;8654:419::-;8820:4;8858:2;8847:9;8843:18;8835:26;;8907:9;8901:4;8897:20;8893:1;8882:9;8878:17;8871:47;8935:131;9061:4;8935:131;:::i;:::-;8927:139;;8654:419;;;:::o;9079:223::-;9219:34;9215:1;9207:6;9203:14;9196:58;9288:6;9283:2;9275:6;9271:15;9264:31;9079:223;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9308:366;;;:::o;9680:419::-;9846:4;9884:2;9873:9;9869:18;9861:26;;9933:9;9927:4;9923:20;9919:1;9908:9;9904:17;9897:47;9961:131;10087:4;9961:131;:::i;:::-;9953:139;;9680:419;;;:::o;10105:221::-;10245:34;10241:1;10233:6;10229:14;10222:58;10314:4;10309:2;10301:6;10297:15;10290:29;10105:221;:::o;10332:366::-;10474:3;10495:67;10559:2;10554:3;10495:67;:::i;:::-;10488:74;;10571:93;10660:3;10571:93;:::i;:::-;10689:2;10684:3;10680:12;10673:19;;10332:366;;;:::o;10704:419::-;10870:4;10908:2;10897:9;10893:18;10885:26;;10957:9;10951:4;10947:20;10943:1;10932:9;10928:17;10921:47;10985:131;11111:4;10985:131;:::i;:::-;10977:139;;10704:419;;;:::o;11129:179::-;11269:31;11265:1;11257:6;11253:14;11246:55;11129:179;:::o;11314:366::-;11456:3;11477:67;11541:2;11536:3;11477:67;:::i;:::-;11470:74;;11553:93;11642:3;11553:93;:::i;:::-;11671:2;11666:3;11662:12;11655:19;;11314:366;;;:::o;11686:419::-;11852:4;11890:2;11879:9;11875:18;11867:26;;11939:9;11933:4;11929:20;11925:1;11914:9;11910:17;11903:47;11967:131;12093:4;11967:131;:::i;:::-;11959:139;;11686:419;;;:::o;12111:224::-;12251:34;12247:1;12239:6;12235:14;12228:58;12320:7;12315:2;12307:6;12303:15;12296:32;12111:224;:::o;12341:366::-;12483:3;12504:67;12568:2;12563:3;12504:67;:::i;:::-;12497:74;;12580:93;12669:3;12580:93;:::i;:::-;12698:2;12693:3;12689:12;12682:19;;12341:366;;;:::o;12713:419::-;12879:4;12917:2;12906:9;12902:18;12894:26;;12966:9;12960:4;12956:20;12952:1;12941:9;12937:17;12930:47;12994:131;13120:4;12994:131;:::i;:::-;12986:139;;12713:419;;;:::o;13138:222::-;13278:34;13274:1;13266:6;13262:14;13255:58;13347:5;13342:2;13334:6;13330:15;13323:30;13138:222;:::o;13366:366::-;13508:3;13529:67;13593:2;13588:3;13529:67;:::i;:::-;13522:74;;13605:93;13694:3;13605:93;:::i;:::-;13723:2;13718:3;13714:12;13707:19;;13366:366;;;:::o;13738:419::-;13904:4;13942:2;13931:9;13927:18;13919:26;;13991:9;13985:4;13981:20;13977:1;13966:9;13962:17;13955:47;14019:131;14145:4;14019:131;:::i;:::-;14011:139;;13738:419;;;:::o;14163:225::-;14303:34;14299:1;14291:6;14287:14;14280:58;14372:8;14367:2;14359:6;14355:15;14348:33;14163:225;:::o;14394:366::-;14536:3;14557:67;14621:2;14616:3;14557:67;:::i;:::-;14550:74;;14633:93;14722:3;14633:93;:::i;:::-;14751:2;14746:3;14742:12;14735:19;;14394:366;;;:::o;14766:419::-;14932:4;14970:2;14959:9;14955:18;14947:26;;15019:9;15013:4;15009:20;15005:1;14994:9;14990:17;14983:47;15047:131;15173:4;15047:131;:::i;:::-;15039:139;;14766:419;;;:::o;15191:220::-;15331:34;15327:1;15319:6;15315:14;15308:58;15400:3;15395:2;15387:6;15383:15;15376:28;15191:220;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:221::-;16354:34;16350:1;16342:6;16338:14;16331:58;16423:4;16418:2;16410:6;16406:15;16399:29;16214:221;:::o;16441:366::-;16583:3;16604:67;16668:2;16663:3;16604:67;:::i;:::-;16597:74;;16680:93;16769:3;16680:93;:::i;:::-;16798:2;16793:3;16789:12;16782:19;;16441:366;;;:::o;16813:419::-;16979:4;17017:2;17006:9;17002:18;16994:26;;17066:9;17060:4;17056:20;17052:1;17041:9;17037:17;17030:47;17094:131;17220:4;17094:131;:::i;:::-;17086:139;;16813:419;;;:::o;17238:181::-;17378:33;17374:1;17366:6;17362:14;17355:57;17238:181;:::o;17425:366::-;17567:3;17588:67;17652:2;17647:3;17588:67;:::i;:::-;17581:74;;17664:93;17753:3;17664:93;:::i;:::-;17782:2;17777:3;17773:12;17766:19;;17425:366;;;:::o;17797:419::-;17963:4;18001:2;17990:9;17986:18;17978:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18078:131;18204:4;18078:131;:::i;:::-;18070:139;;17797:419;;;:::o", "source": "//SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n/// @dev Mock mintable USDC\ncontract MockUSDT is ERC20 {\n constructor() ERC20(\"MockUDSC\", \"MUSDC\") {\n _mint(msg.sender, 1_000_000E18);\n }\n\n function mint(uint256 _amount) external {\n _mint(msg.sender, _amount);\n }\n\n function burn(uint256 _amount) external {\n _burn(msg.sender, _amount);\n }\n\n function burnAll() external {\n uint256 _balanceOf = balanceOf(msg.sender);\n require(_balanceOf > 0, \"MockUSDT: Nothing to burn\");\n _burn(msg.sender, _balanceOf);\n }\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "exportedSymbols": { "ERC20": [ - 2479 + 2476 ], "MockUSDT": [ - 974 + 971 ] }, - "id": 975, + "id": 972, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 906, + "id": 903, "literals": [ "solidity", "^", @@ -344,20 +344,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "id": 908, + "id": 905, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 975, - "sourceUnit": 2480, + "scope": 972, + "sourceUnit": 2477, "src": "64:68:3", "symbolAliases": [ { "foreign": { - "id": 907, + "id": 904, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "72:5:3", "typeDescriptions": {} }, @@ -371,16 +371,16 @@ "baseContracts": [ { "baseName": { - "id": 910, + "id": 907, "name": "ERC20", "nameLocations": [ "183:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "183:5:3" }, - "id": 911, + "id": 908, "nodeType": "InheritanceSpecifier", "src": "183:5:3" } @@ -389,19 +389,19 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 909, + "id": 906, "nodeType": "StructuredDocumentation", "src": "134:28:3", "text": "@dev Mock mintable USDC" }, "fullyImplemented": true, - "id": 974, + "id": 971, "linearizedBaseContracts": [ - 974, - 2479, - 2582, - 2557, - 2612 + 971, + 2476, + 2579, + 2554, + 2609 ], "name": "MockUSDT", "nameLocation": "171:8:3", @@ -409,7 +409,7 @@ "nodes": [ { "body": { - "id": 924, + "id": 921, "nodeType": "Block", "src": "236:48:3", "statements": [ @@ -418,7 +418,7 @@ "arguments": [ { "expression": { - "id": 919, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -429,7 +429,7 @@ "typeString": "msg" } }, - "id": 920, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -445,7 +445,7 @@ }, { "hexValue": "315f3030305f303030453138", - "id": 921, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, @@ -471,18 +471,18 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 918, + "id": 915, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "246:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 922, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -498,13 +498,13 @@ "typeString": "tuple()" } }, - "id": 923, + "id": 920, "nodeType": "ExpressionStatement", "src": "246:31:3" } ] }, - "id": 925, + "id": 922, "implemented": true, "kind": "constructor", "modifiers": [ @@ -512,7 +512,7 @@ "arguments": [ { "hexValue": "4d6f636b55445343", - "id": 914, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, @@ -528,7 +528,7 @@ }, { "hexValue": "4d55534443", - "id": 915, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, @@ -543,16 +543,16 @@ "value": "MUSDC" } ], - "id": 916, + "id": 913, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 913, + "id": 910, "name": "ERC20", "nameLocations": [ "209:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "209:5:3" }, "nodeType": "ModifierInvocation", @@ -563,18 +563,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 909, "nodeType": "ParameterList", "parameters": [], "src": "206:2:3" }, "returnParameters": { - "id": 917, + "id": 914, "nodeType": "ParameterList", "parameters": [], "src": "236:0:3" }, - "scope": 974, + "scope": 971, "src": "195:89:3", "stateMutability": "nonpayable", "virtual": false, @@ -582,7 +582,7 @@ }, { "body": { - "id": 936, + "id": 933, "nodeType": "Block", "src": "330:43:3", "statements": [ @@ -591,7 +591,7 @@ "arguments": [ { "expression": { - "id": 931, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -602,7 +602,7 @@ "typeString": "msg" } }, - "id": 932, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,11 +617,11 @@ } }, { - "id": 933, + "id": 930, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 927, + "referencedDeclaration": 924, "src": "358:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -640,18 +640,18 @@ "typeString": "uint256" } ], - "id": 930, + "id": 927, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "340:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 934, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -667,14 +667,14 @@ "typeString": "tuple()" } }, - "id": 935, + "id": 932, "nodeType": "ExpressionStatement", "src": "340:26:3" } ] }, "functionSelector": "a0712d68", - "id": 937, + "id": 934, "implemented": true, "kind": "function", "modifiers": [], @@ -682,17 +682,17 @@ "nameLocation": "299:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 928, + "id": 925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 924, "mutability": "mutable", "name": "_amount", "nameLocation": "312:7:3", "nodeType": "VariableDeclaration", - "scope": 937, + "scope": 934, "src": "304:15:3", "stateVariable": false, "storageLocation": "default", @@ -701,7 +701,7 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "304:7:3", @@ -716,12 +716,12 @@ "src": "303:17:3" }, "returnParameters": { - "id": 929, + "id": 926, "nodeType": "ParameterList", "parameters": [], "src": "330:0:3" }, - "scope": 974, + "scope": 971, "src": "290:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -729,7 +729,7 @@ }, { "body": { - "id": 948, + "id": 945, "nodeType": "Block", "src": "419:43:3", "statements": [ @@ -738,7 +738,7 @@ "arguments": [ { "expression": { - "id": 943, + "id": 940, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -749,7 +749,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -764,11 +764,11 @@ } }, { - "id": 945, + "id": 942, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 936, "src": "447:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -787,18 +787,18 @@ "typeString": "uint256" } ], - "id": 942, + "id": 939, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "429:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 946, + "id": 943, "isConstant": false, "isLValue": false, "isPure": false, @@ -814,14 +814,14 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 944, "nodeType": "ExpressionStatement", "src": "429:26:3" } ] }, "functionSelector": "42966c68", - "id": 949, + "id": 946, "implemented": true, "kind": "function", "modifiers": [], @@ -829,17 +829,17 @@ "nameLocation": "388:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 940, + "id": 937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 939, + "id": 936, "mutability": "mutable", "name": "_amount", "nameLocation": "401:7:3", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 946, "src": "393:15:3", "stateVariable": false, "storageLocation": "default", @@ -848,7 +848,7 @@ "typeString": "uint256" }, "typeName": { - "id": 938, + "id": 935, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "393:7:3", @@ -863,12 +863,12 @@ "src": "392:17:3" }, "returnParameters": { - "id": 941, + "id": 938, "nodeType": "ParameterList", "parameters": [], "src": "419:0:3" }, - "scope": 974, + "scope": 971, "src": "379:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -876,23 +876,23 @@ }, { "body": { - "id": 972, + "id": 969, "nodeType": "Block", "src": "496:160:3", "statements": [ { "assignments": [ - 953 + 950 ], "declarations": [ { "constant": false, - "id": 953, + "id": 950, "mutability": "mutable", "name": "_balanceOf", "nameLocation": "514:10:3", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 969, "src": "506:18:3", "stateVariable": false, "storageLocation": "default", @@ -901,7 +901,7 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 949, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "506:7:3", @@ -913,12 +913,12 @@ "visibility": "internal" } ], - "id": 958, + "id": 955, "initialValue": { "arguments": [ { "expression": { - "id": 955, + "id": 952, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -929,7 +929,7 @@ "typeString": "msg" } }, - "id": 956, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,18 +951,18 @@ "typeString": "address" } ], - "id": 954, + "id": 951, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1991, + "referencedDeclaration": 1988, "src": "527:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 957, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -989,17 +989,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 960, + "id": 957, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "566:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1010,7 +1010,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 961, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -1032,7 +1032,7 @@ }, { "hexValue": "4d6f636b555344543a204e6f7468696e6720746f206275726e", - "id": 963, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, @@ -1058,7 +1058,7 @@ "typeString": "literal_string \"MockUSDT: Nothing to burn\"" } ], - "id": 959, + "id": 956, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1072,7 +1072,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 964, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1088,7 +1088,7 @@ "typeString": "tuple()" } }, - "id": 965, + "id": 962, "nodeType": "ExpressionStatement", "src": "558:52:3" }, @@ -1097,7 +1097,7 @@ "arguments": [ { "expression": { - "id": 967, + "id": 964, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1108,7 +1108,7 @@ "typeString": "msg" } }, - "id": 968, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,11 +1123,11 @@ } }, { - "id": 969, + "id": 966, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "638:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1146,18 +1146,18 @@ "typeString": "uint256" } ], - "id": 966, + "id": 963, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "620:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 970, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -1173,14 +1173,14 @@ "typeString": "tuple()" } }, - "id": 971, + "id": 968, "nodeType": "ExpressionStatement", "src": "620:29:3" } ] }, "functionSelector": "9975038c", - "id": 973, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -1188,25 +1188,25 @@ "nameLocation": "477:7:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 950, + "id": 947, "nodeType": "ParameterList", "parameters": [], "src": "484:2:3" }, "returnParameters": { - "id": 951, + "id": 948, "nodeType": "ParameterList", "parameters": [], "src": "496:0:3" }, - "scope": 974, + "scope": 971, "src": "468:188:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 975, + "scope": 972, "src": "162:496:3", "usedErrors": [] } @@ -1214,21 +1214,21 @@ "src": "38:621:3" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "exportedSymbols": { "ERC20": [ - 2479 + 2476 ], "MockUSDT": [ - 974 + 971 ] }, - "id": 975, + "id": 972, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 906, + "id": 903, "literals": [ "solidity", "^", @@ -1241,20 +1241,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "id": 908, + "id": 905, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 975, - "sourceUnit": 2480, + "scope": 972, + "sourceUnit": 2477, "src": "64:68:3", "symbolAliases": [ { "foreign": { - "id": 907, + "id": 904, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "72:5:3", "typeDescriptions": {} }, @@ -1268,16 +1268,16 @@ "baseContracts": [ { "baseName": { - "id": 910, + "id": 907, "name": "ERC20", "nameLocations": [ "183:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "183:5:3" }, - "id": 911, + "id": 908, "nodeType": "InheritanceSpecifier", "src": "183:5:3" } @@ -1286,19 +1286,19 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 909, + "id": 906, "nodeType": "StructuredDocumentation", "src": "134:28:3", "text": "@dev Mock mintable USDC" }, "fullyImplemented": true, - "id": 974, + "id": 971, "linearizedBaseContracts": [ - 974, - 2479, - 2582, - 2557, - 2612 + 971, + 2476, + 2579, + 2554, + 2609 ], "name": "MockUSDT", "nameLocation": "171:8:3", @@ -1306,7 +1306,7 @@ "nodes": [ { "body": { - "id": 924, + "id": 921, "nodeType": "Block", "src": "236:48:3", "statements": [ @@ -1315,7 +1315,7 @@ "arguments": [ { "expression": { - "id": 919, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1326,7 +1326,7 @@ "typeString": "msg" } }, - "id": 920, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -1342,7 +1342,7 @@ }, { "hexValue": "315f3030305f303030453138", - "id": 921, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, @@ -1368,18 +1368,18 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 918, + "id": 915, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "246:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 922, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -1395,13 +1395,13 @@ "typeString": "tuple()" } }, - "id": 923, + "id": 920, "nodeType": "ExpressionStatement", "src": "246:31:3" } ] }, - "id": 925, + "id": 922, "implemented": true, "kind": "constructor", "modifiers": [ @@ -1409,7 +1409,7 @@ "arguments": [ { "hexValue": "4d6f636b55445343", - "id": 914, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, @@ -1425,7 +1425,7 @@ }, { "hexValue": "4d55534443", - "id": 915, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, @@ -1440,16 +1440,16 @@ "value": "MUSDC" } ], - "id": 916, + "id": 913, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 913, + "id": 910, "name": "ERC20", "nameLocations": [ "209:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "209:5:3" }, "nodeType": "ModifierInvocation", @@ -1460,18 +1460,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 909, "nodeType": "ParameterList", "parameters": [], "src": "206:2:3" }, "returnParameters": { - "id": 917, + "id": 914, "nodeType": "ParameterList", "parameters": [], "src": "236:0:3" }, - "scope": 974, + "scope": 971, "src": "195:89:3", "stateMutability": "nonpayable", "virtual": false, @@ -1479,7 +1479,7 @@ }, { "body": { - "id": 936, + "id": 933, "nodeType": "Block", "src": "330:43:3", "statements": [ @@ -1488,7 +1488,7 @@ "arguments": [ { "expression": { - "id": 931, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1499,7 +1499,7 @@ "typeString": "msg" } }, - "id": 932, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -1514,11 +1514,11 @@ } }, { - "id": 933, + "id": 930, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 927, + "referencedDeclaration": 924, "src": "358:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1537,18 +1537,18 @@ "typeString": "uint256" } ], - "id": 930, + "id": 927, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "340:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 934, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -1564,14 +1564,14 @@ "typeString": "tuple()" } }, - "id": 935, + "id": 932, "nodeType": "ExpressionStatement", "src": "340:26:3" } ] }, "functionSelector": "a0712d68", - "id": 937, + "id": 934, "implemented": true, "kind": "function", "modifiers": [], @@ -1579,17 +1579,17 @@ "nameLocation": "299:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 928, + "id": 925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 924, "mutability": "mutable", "name": "_amount", "nameLocation": "312:7:3", "nodeType": "VariableDeclaration", - "scope": 937, + "scope": 934, "src": "304:15:3", "stateVariable": false, "storageLocation": "default", @@ -1598,7 +1598,7 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "304:7:3", @@ -1613,12 +1613,12 @@ "src": "303:17:3" }, "returnParameters": { - "id": 929, + "id": 926, "nodeType": "ParameterList", "parameters": [], "src": "330:0:3" }, - "scope": 974, + "scope": 971, "src": "290:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -1626,7 +1626,7 @@ }, { "body": { - "id": 948, + "id": 945, "nodeType": "Block", "src": "419:43:3", "statements": [ @@ -1635,7 +1635,7 @@ "arguments": [ { "expression": { - "id": 943, + "id": 940, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1646,7 +1646,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -1661,11 +1661,11 @@ } }, { - "id": 945, + "id": 942, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 936, "src": "447:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1684,18 +1684,18 @@ "typeString": "uint256" } ], - "id": 942, + "id": 939, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "429:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 946, + "id": 943, "isConstant": false, "isLValue": false, "isPure": false, @@ -1711,14 +1711,14 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 944, "nodeType": "ExpressionStatement", "src": "429:26:3" } ] }, "functionSelector": "42966c68", - "id": 949, + "id": 946, "implemented": true, "kind": "function", "modifiers": [], @@ -1726,17 +1726,17 @@ "nameLocation": "388:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 940, + "id": 937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 939, + "id": 936, "mutability": "mutable", "name": "_amount", "nameLocation": "401:7:3", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 946, "src": "393:15:3", "stateVariable": false, "storageLocation": "default", @@ -1745,7 +1745,7 @@ "typeString": "uint256" }, "typeName": { - "id": 938, + "id": 935, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "393:7:3", @@ -1760,12 +1760,12 @@ "src": "392:17:3" }, "returnParameters": { - "id": 941, + "id": 938, "nodeType": "ParameterList", "parameters": [], "src": "419:0:3" }, - "scope": 974, + "scope": 971, "src": "379:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -1773,23 +1773,23 @@ }, { "body": { - "id": 972, + "id": 969, "nodeType": "Block", "src": "496:160:3", "statements": [ { "assignments": [ - 953 + 950 ], "declarations": [ { "constant": false, - "id": 953, + "id": 950, "mutability": "mutable", "name": "_balanceOf", "nameLocation": "514:10:3", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 969, "src": "506:18:3", "stateVariable": false, "storageLocation": "default", @@ -1798,7 +1798,7 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 949, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "506:7:3", @@ -1810,12 +1810,12 @@ "visibility": "internal" } ], - "id": 958, + "id": 955, "initialValue": { "arguments": [ { "expression": { - "id": 955, + "id": 952, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1826,7 +1826,7 @@ "typeString": "msg" } }, - "id": 956, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -1848,18 +1848,18 @@ "typeString": "address" } ], - "id": 954, + "id": 951, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1991, + "referencedDeclaration": 1988, "src": "527:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 957, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -1886,17 +1886,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 960, + "id": 957, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "566:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1907,7 +1907,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 961, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -1929,7 +1929,7 @@ }, { "hexValue": "4d6f636b555344543a204e6f7468696e6720746f206275726e", - "id": 963, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, @@ -1955,7 +1955,7 @@ "typeString": "literal_string \"MockUSDT: Nothing to burn\"" } ], - "id": 959, + "id": 956, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1969,7 +1969,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 964, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1985,7 +1985,7 @@ "typeString": "tuple()" } }, - "id": 965, + "id": 962, "nodeType": "ExpressionStatement", "src": "558:52:3" }, @@ -1994,7 +1994,7 @@ "arguments": [ { "expression": { - "id": 967, + "id": 964, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2005,7 +2005,7 @@ "typeString": "msg" } }, - "id": 968, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -2020,11 +2020,11 @@ } }, { - "id": 969, + "id": 966, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "638:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2043,18 +2043,18 @@ "typeString": "uint256" } ], - "id": 966, + "id": 963, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "620:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 970, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -2070,14 +2070,14 @@ "typeString": "tuple()" } }, - "id": 971, + "id": 968, "nodeType": "ExpressionStatement", "src": "620:29:3" } ] }, "functionSelector": "9975038c", - "id": 973, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -2085,25 +2085,25 @@ "nameLocation": "477:7:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 950, + "id": 947, "nodeType": "ParameterList", "parameters": [], "src": "484:2:3" }, "returnParameters": { - "id": 951, + "id": 948, "nodeType": "ParameterList", "parameters": [], "src": "496:0:3" }, - "scope": 974, + "scope": 971, "src": "468:188:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 975, + "scope": 972, "src": "162:496:3", "usedErrors": [] } @@ -2116,5 +2116,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.550Z" + "updatedAt": "2024-06-27T12:24:25.250Z" } \ No newline at end of file diff --git a/build/contracts/Ownable2StepUpgradeable.json b/build/contracts/Ownable2StepUpgradeable.json index 5176e16..54737b5 100644 --- a/build/contracts/Ownable2StepUpgradeable.json +++ b/build/contracts/Ownable2StepUpgradeable.json @@ -116,24 +116,24 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1082, + "id": 1079, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 976, + "id": 973, "literals": [ "solidity", "^", @@ -146,11 +146,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 977, + "id": 974, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1215, + "scope": 1079, + "sourceUnit": 1212, "src": "132:34:4", "symbolAliases": [], "unitAlias": "" @@ -158,20 +158,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 979, + "id": 976, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1384, + "scope": 1079, + "sourceUnit": 1381, "src": "167:63:4", "symbolAliases": [ { "foreign": { - "id": 978, + "id": 975, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "175:13:4", "typeDescriptions": {} }, @@ -185,31 +185,31 @@ "baseContracts": [ { "baseName": { - "id": 981, + "id": 978, "name": "Initializable", "nameLocations": [ "719:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "719:13:4" }, - "id": 982, + "id": 979, "nodeType": "InheritanceSpecifier", "src": "719:13:4" }, { "baseName": { - "id": 983, + "id": 980, "name": "OwnableUpgradeable", "nameLocations": [ "734:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1214, + "referencedDeclaration": 1211, "src": "734:18:4" }, - "id": 984, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "734:18:4" } @@ -218,18 +218,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 980, + "id": 977, "nodeType": "StructuredDocumentation", "src": "232:441:4", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1081, + "id": 1078, "linearizedBaseContracts": [ - 1081, - 1214, - 1892, - 1383 + 1078, + 1211, + 1889, + 1380 ], "name": "Ownable2StepUpgradeable", "nameLocation": "692:23:4", @@ -237,12 +237,12 @@ "nodes": [ { "constant": false, - "id": 986, + "id": 983, "mutability": "mutable", "name": "_pendingOwner", "nameLocation": "775:13:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "759:29:4", "stateVariable": true, "storageLocation": "default", @@ -251,7 +251,7 @@ "typeString": "address" }, "typeName": { - "id": 985, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:4", @@ -266,23 +266,23 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 992, + "id": 989, "name": "OwnershipTransferStarted", "nameLocation": "801:24:4", "nodeType": "EventDefinition", "parameters": { - "id": 991, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 988, + "id": 985, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "842:13:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "826:29:4", "stateVariable": false, "storageLocation": "default", @@ -291,7 +291,7 @@ "typeString": "address" }, "typeName": { - "id": 987, + "id": 984, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:4", @@ -305,13 +305,13 @@ }, { "constant": false, - "id": 990, + "id": 987, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "873:8:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "857:24:4", "stateVariable": false, "storageLocation": "default", @@ -320,7 +320,7 @@ "typeString": "address" }, "typeName": { - "id": 989, + "id": 986, "name": "address", "nodeType": "ElementaryTypeName", "src": "857:7:4", @@ -339,7 +339,7 @@ }, { "body": { - "id": 1000, + "id": 997, "nodeType": "Block", "src": "946:43:4", "statements": [ @@ -348,18 +348,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 997, + "id": 994, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "956:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 998, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -375,27 +375,27 @@ "typeString": "tuple()" } }, - "id": 999, + "id": 996, "nodeType": "ExpressionStatement", "src": "956:26:4" } ] }, - "id": 1001, + "id": 998, "implemented": true, "kind": "function", "modifiers": [ { - "id": 995, + "id": 992, "kind": "modifierInvocation", "modifierName": { - "id": 994, + "id": 991, "name": "onlyInitializing", "nameLocations": [ "929:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "929:16:4" }, "nodeType": "ModifierInvocation", @@ -406,18 +406,18 @@ "nameLocation": "898:19:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 993, + "id": 990, "nodeType": "ParameterList", "parameters": [], "src": "917:2:4" }, "returnParameters": { - "id": 996, + "id": 993, "nodeType": "ParameterList", "parameters": [], "src": "946:0:4" }, - "scope": 1081, + "scope": 1078, "src": "889:100:4", "stateMutability": "nonpayable", "virtual": false, @@ -425,26 +425,26 @@ }, { "body": { - "id": 1006, + "id": 1003, "nodeType": "Block", "src": "1062:7:4", "statements": [] }, - "id": 1007, + "id": 1004, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1004, + "id": 1001, "kind": "modifierInvocation", "modifierName": { - "id": 1003, + "id": 1000, "name": "onlyInitializing", "nameLocations": [ "1045:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1045:16:4" }, "nodeType": "ModifierInvocation", @@ -455,18 +455,18 @@ "nameLocation": "1004:29:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "1033:2:4" }, "returnParameters": { - "id": 1005, + "id": 1002, "nodeType": "ParameterList", "parameters": [], "src": "1062:0:4" }, - "scope": 1081, + "scope": 1078, "src": "995:74:4", "stateMutability": "nonpayable", "virtual": false, @@ -474,38 +474,38 @@ }, { "body": { - "id": 1015, + "id": 1012, "nodeType": "Block", "src": "1206:37:4", "statements": [ { "expression": { - "id": 1013, + "id": 1010, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1223:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1012, - "id": 1014, + "functionReturnParameters": 1009, + "id": 1011, "nodeType": "Return", "src": "1216:20:4" } ] }, "documentation": { - "id": 1008, + "id": 1005, "nodeType": "StructuredDocumentation", "src": "1074:65:4", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1016, + "id": 1013, "implemented": true, "kind": "function", "modifiers": [], @@ -513,23 +513,23 @@ "nameLocation": "1153:12:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1009, + "id": 1006, "nodeType": "ParameterList", "parameters": [], "src": "1165:2:4" }, "returnParameters": { - "id": 1012, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1011, + "id": 1008, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1016, + "scope": 1013, "src": "1197:7:4", "stateVariable": false, "storageLocation": "default", @@ -538,7 +538,7 @@ "typeString": "address" }, "typeName": { - "id": 1010, + "id": 1007, "name": "address", "nodeType": "ElementaryTypeName", "src": "1197:7:4", @@ -553,7 +553,7 @@ ], "src": "1196:9:4" }, - "scope": 1081, + "scope": 1078, "src": "1144:99:4", "stateMutability": "view", "virtual": true, @@ -561,26 +561,26 @@ }, { "baseFunctions": [ - 1188 + 1185 ], "body": { - "id": 1035, + "id": 1032, "nodeType": "Block", "src": "1515:99:4", "statements": [ { "expression": { - "id": 1027, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1025, + "id": 1022, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1525:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -590,11 +590,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1026, + "id": 1023, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1541:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -607,7 +607,7 @@ "typeString": "address" } }, - "id": 1028, + "id": 1025, "nodeType": "ExpressionStatement", "src": "1525:24:4" }, @@ -618,18 +618,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1030, + "id": 1027, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1589:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1031, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -646,11 +646,11 @@ } }, { - "id": 1032, + "id": 1029, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1598:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -669,18 +669,18 @@ "typeString": "address" } ], - "id": 1029, + "id": 1026, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, + "referencedDeclaration": 989, "src": "1564:24:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1033, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -696,34 +696,34 @@ "typeString": "tuple()" } }, - "id": 1034, + "id": 1031, "nodeType": "EmitStatement", "src": "1559:48:4" } ] }, "documentation": { - "id": 1017, + "id": 1014, "nodeType": "StructuredDocumentation", "src": "1249:182:4", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1036, + "id": 1033, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1023, + "id": 1020, "kind": "modifierInvocation", "modifierName": { - "id": 1022, + "id": 1019, "name": "onlyOwner", "nameLocations": [ "1505:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1505:9:4" }, "nodeType": "ModifierInvocation", @@ -734,23 +734,23 @@ "nameLocation": "1445:17:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1021, + "id": 1018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1496:8:4" }, "parameters": { - "id": 1020, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1019, + "id": 1016, "mutability": "mutable", "name": "newOwner", "nameLocation": "1471:8:4", "nodeType": "VariableDeclaration", - "scope": 1036, + "scope": 1033, "src": "1463:16:4", "stateVariable": false, "storageLocation": "default", @@ -759,7 +759,7 @@ "typeString": "address" }, "typeName": { - "id": 1018, + "id": 1015, "name": "address", "nodeType": "ElementaryTypeName", "src": "1463:7:4", @@ -775,12 +775,12 @@ "src": "1462:18:4" }, "returnParameters": { - "id": 1024, + "id": 1021, "nodeType": "ParameterList", "parameters": [], "src": "1515:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1436:178:4", "stateMutability": "nonpayable", "virtual": true, @@ -788,16 +788,16 @@ }, { "baseFunctions": [ - 1208 + 1205 ], "body": { - "id": 1052, + "id": 1049, "nodeType": "Block", "src": "1870:81:4", "statements": [ { "expression": { - "id": 1044, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -807,11 +807,11 @@ "prefix": true, "src": "1880:20:4", "subExpression": { - "id": 1043, + "id": 1040, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1887:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -823,7 +823,7 @@ "typeString": "tuple()" } }, - "id": 1045, + "id": 1042, "nodeType": "ExpressionStatement", "src": "1880:20:4" }, @@ -831,11 +831,11 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1046, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1039, + "referencedDeclaration": 1036, "src": "1935:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -851,18 +851,18 @@ } ], "expression": { - "id": 1046, + "id": 1043, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, "src": "1910:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1081_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1048, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -870,14 +870,14 @@ "memberLocation": "1916:18:4", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1910:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1050, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -893,19 +893,19 @@ "typeString": "tuple()" } }, - "id": 1051, + "id": 1048, "nodeType": "ExpressionStatement", "src": "1910:34:4" } ] }, "documentation": { - "id": 1037, + "id": 1034, "nodeType": "StructuredDocumentation", "src": "1620:173:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1053, + "id": 1050, "implemented": true, "kind": "function", "modifiers": [], @@ -913,23 +913,23 @@ "nameLocation": "1807:18:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1041, + "id": 1038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1861:8:4" }, "parameters": { - "id": 1040, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1039, + "id": 1036, "mutability": "mutable", "name": "newOwner", "nameLocation": "1834:8:4", "nodeType": "VariableDeclaration", - "scope": 1053, + "scope": 1050, "src": "1826:16:4", "stateVariable": false, "storageLocation": "default", @@ -938,7 +938,7 @@ "typeString": "address" }, "typeName": { - "id": 1038, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1826:7:4", @@ -954,12 +954,12 @@ "src": "1825:18:4" }, "returnParameters": { - "id": 1042, + "id": 1039, "nodeType": "ParameterList", "parameters": [], "src": "1870:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1798:153:4", "stateMutability": "nonpayable", "virtual": true, @@ -967,23 +967,23 @@ }, { "body": { - "id": 1074, + "id": 1071, "nodeType": "Block", "src": "2073:170:4", "statements": [ { "assignments": [ - 1058 + 1055 ], "declarations": [ { "constant": false, - "id": 1058, + "id": 1055, "mutability": "mutable", "name": "sender", "nameLocation": "2091:6:4", "nodeType": "VariableDeclaration", - "scope": 1074, + "scope": 1071, "src": "2083:14:4", "stateVariable": false, "storageLocation": "default", @@ -992,7 +992,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:4", @@ -1005,23 +1005,23 @@ "visibility": "internal" } ], - "id": 1061, + "id": 1058, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1059, + "id": 1056, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2100:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1060, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, @@ -1048,7 +1048,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1066, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -1057,18 +1057,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1063, + "id": 1060, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, + "referencedDeclaration": 1013, "src": "2130:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1064, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -1087,11 +1087,11 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1065, + "id": 1062, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2148:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1106,7 +1106,7 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1067, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, @@ -1132,7 +1132,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1062, + "id": 1059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1146,7 +1146,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -1162,7 +1162,7 @@ "typeString": "tuple()" } }, - "id": 1069, + "id": 1066, "nodeType": "ExpressionStatement", "src": "2122:78:4" }, @@ -1170,11 +1170,11 @@ "expression": { "arguments": [ { - "id": 1071, + "id": 1068, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2229:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1189,20 +1189,20 @@ "typeString": "address" } ], - "id": 1070, + "id": 1067, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1053 + 1050 ], - "referencedDeclaration": 1053, + "referencedDeclaration": 1050, "src": "2210:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1072, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1218,20 +1218,20 @@ "typeString": "tuple()" } }, - "id": 1073, + "id": 1070, "nodeType": "ExpressionStatement", "src": "2210:26:4" } ] }, "documentation": { - "id": 1054, + "id": 1051, "nodeType": "StructuredDocumentation", "src": "1957:69:4", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1075, + "id": 1072, "implemented": true, "kind": "function", "modifiers": [], @@ -1239,18 +1239,18 @@ "nameLocation": "2040:15:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1055, + "id": 1052, "nodeType": "ParameterList", "parameters": [], "src": "2055:2:4" }, "returnParameters": { - "id": 1056, + "id": 1053, "nodeType": "ParameterList", "parameters": [], "src": "2073:0:4" }, - "scope": 1081, + "scope": 1078, "src": "2031:212:4", "stateMutability": "nonpayable", "virtual": true, @@ -1259,17 +1259,17 @@ { "constant": false, "documentation": { - "id": 1076, + "id": 1073, "nodeType": "StructuredDocumentation", "src": "2249:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1080, + "id": 1077, "mutability": "mutable", "name": "__gap", "nameLocation": "2528:5:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "2508:25:4", "stateVariable": true, "storageLocation": "default", @@ -1279,7 +1279,7 @@ }, "typeName": { "baseType": { - "id": 1077, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2508:7:4", @@ -1288,10 +1288,10 @@ "typeString": "uint256" } }, - "id": 1079, + "id": 1076, "length": { "hexValue": "3439", - "id": 1078, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -1315,7 +1315,7 @@ "visibility": "private" } ], - "scope": 1082, + "scope": 1079, "src": "674:1862:4", "usedErrors": [] } @@ -1326,24 +1326,24 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1082, + "id": 1079, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 976, + "id": 973, "literals": [ "solidity", "^", @@ -1356,11 +1356,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 977, + "id": 974, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1215, + "scope": 1079, + "sourceUnit": 1212, "src": "132:34:4", "symbolAliases": [], "unitAlias": "" @@ -1368,20 +1368,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 979, + "id": 976, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1384, + "scope": 1079, + "sourceUnit": 1381, "src": "167:63:4", "symbolAliases": [ { "foreign": { - "id": 978, + "id": 975, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "175:13:4", "typeDescriptions": {} }, @@ -1395,31 +1395,31 @@ "baseContracts": [ { "baseName": { - "id": 981, + "id": 978, "name": "Initializable", "nameLocations": [ "719:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "719:13:4" }, - "id": 982, + "id": 979, "nodeType": "InheritanceSpecifier", "src": "719:13:4" }, { "baseName": { - "id": 983, + "id": 980, "name": "OwnableUpgradeable", "nameLocations": [ "734:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1214, + "referencedDeclaration": 1211, "src": "734:18:4" }, - "id": 984, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "734:18:4" } @@ -1428,18 +1428,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 980, + "id": 977, "nodeType": "StructuredDocumentation", "src": "232:441:4", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1081, + "id": 1078, "linearizedBaseContracts": [ - 1081, - 1214, - 1892, - 1383 + 1078, + 1211, + 1889, + 1380 ], "name": "Ownable2StepUpgradeable", "nameLocation": "692:23:4", @@ -1447,12 +1447,12 @@ "nodes": [ { "constant": false, - "id": 986, + "id": 983, "mutability": "mutable", "name": "_pendingOwner", "nameLocation": "775:13:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "759:29:4", "stateVariable": true, "storageLocation": "default", @@ -1461,7 +1461,7 @@ "typeString": "address" }, "typeName": { - "id": 985, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:4", @@ -1476,23 +1476,23 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 992, + "id": 989, "name": "OwnershipTransferStarted", "nameLocation": "801:24:4", "nodeType": "EventDefinition", "parameters": { - "id": 991, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 988, + "id": 985, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "842:13:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "826:29:4", "stateVariable": false, "storageLocation": "default", @@ -1501,7 +1501,7 @@ "typeString": "address" }, "typeName": { - "id": 987, + "id": 984, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:4", @@ -1515,13 +1515,13 @@ }, { "constant": false, - "id": 990, + "id": 987, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "873:8:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "857:24:4", "stateVariable": false, "storageLocation": "default", @@ -1530,7 +1530,7 @@ "typeString": "address" }, "typeName": { - "id": 989, + "id": 986, "name": "address", "nodeType": "ElementaryTypeName", "src": "857:7:4", @@ -1549,7 +1549,7 @@ }, { "body": { - "id": 1000, + "id": 997, "nodeType": "Block", "src": "946:43:4", "statements": [ @@ -1558,18 +1558,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 997, + "id": 994, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "956:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 998, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -1585,27 +1585,27 @@ "typeString": "tuple()" } }, - "id": 999, + "id": 996, "nodeType": "ExpressionStatement", "src": "956:26:4" } ] }, - "id": 1001, + "id": 998, "implemented": true, "kind": "function", "modifiers": [ { - "id": 995, + "id": 992, "kind": "modifierInvocation", "modifierName": { - "id": 994, + "id": 991, "name": "onlyInitializing", "nameLocations": [ "929:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "929:16:4" }, "nodeType": "ModifierInvocation", @@ -1616,18 +1616,18 @@ "nameLocation": "898:19:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 993, + "id": 990, "nodeType": "ParameterList", "parameters": [], "src": "917:2:4" }, "returnParameters": { - "id": 996, + "id": 993, "nodeType": "ParameterList", "parameters": [], "src": "946:0:4" }, - "scope": 1081, + "scope": 1078, "src": "889:100:4", "stateMutability": "nonpayable", "virtual": false, @@ -1635,26 +1635,26 @@ }, { "body": { - "id": 1006, + "id": 1003, "nodeType": "Block", "src": "1062:7:4", "statements": [] }, - "id": 1007, + "id": 1004, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1004, + "id": 1001, "kind": "modifierInvocation", "modifierName": { - "id": 1003, + "id": 1000, "name": "onlyInitializing", "nameLocations": [ "1045:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1045:16:4" }, "nodeType": "ModifierInvocation", @@ -1665,18 +1665,18 @@ "nameLocation": "1004:29:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "1033:2:4" }, "returnParameters": { - "id": 1005, + "id": 1002, "nodeType": "ParameterList", "parameters": [], "src": "1062:0:4" }, - "scope": 1081, + "scope": 1078, "src": "995:74:4", "stateMutability": "nonpayable", "virtual": false, @@ -1684,38 +1684,38 @@ }, { "body": { - "id": 1015, + "id": 1012, "nodeType": "Block", "src": "1206:37:4", "statements": [ { "expression": { - "id": 1013, + "id": 1010, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1223:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1012, - "id": 1014, + "functionReturnParameters": 1009, + "id": 1011, "nodeType": "Return", "src": "1216:20:4" } ] }, "documentation": { - "id": 1008, + "id": 1005, "nodeType": "StructuredDocumentation", "src": "1074:65:4", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1016, + "id": 1013, "implemented": true, "kind": "function", "modifiers": [], @@ -1723,23 +1723,23 @@ "nameLocation": "1153:12:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1009, + "id": 1006, "nodeType": "ParameterList", "parameters": [], "src": "1165:2:4" }, "returnParameters": { - "id": 1012, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1011, + "id": 1008, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1016, + "scope": 1013, "src": "1197:7:4", "stateVariable": false, "storageLocation": "default", @@ -1748,7 +1748,7 @@ "typeString": "address" }, "typeName": { - "id": 1010, + "id": 1007, "name": "address", "nodeType": "ElementaryTypeName", "src": "1197:7:4", @@ -1763,7 +1763,7 @@ ], "src": "1196:9:4" }, - "scope": 1081, + "scope": 1078, "src": "1144:99:4", "stateMutability": "view", "virtual": true, @@ -1771,26 +1771,26 @@ }, { "baseFunctions": [ - 1188 + 1185 ], "body": { - "id": 1035, + "id": 1032, "nodeType": "Block", "src": "1515:99:4", "statements": [ { "expression": { - "id": 1027, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1025, + "id": 1022, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1525:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1800,11 +1800,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1026, + "id": 1023, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1541:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1817,7 +1817,7 @@ "typeString": "address" } }, - "id": 1028, + "id": 1025, "nodeType": "ExpressionStatement", "src": "1525:24:4" }, @@ -1828,18 +1828,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1030, + "id": 1027, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1589:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1031, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -1856,11 +1856,11 @@ } }, { - "id": 1032, + "id": 1029, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1598:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1879,18 +1879,18 @@ "typeString": "address" } ], - "id": 1029, + "id": 1026, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, + "referencedDeclaration": 989, "src": "1564:24:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1033, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -1906,34 +1906,34 @@ "typeString": "tuple()" } }, - "id": 1034, + "id": 1031, "nodeType": "EmitStatement", "src": "1559:48:4" } ] }, "documentation": { - "id": 1017, + "id": 1014, "nodeType": "StructuredDocumentation", "src": "1249:182:4", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1036, + "id": 1033, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1023, + "id": 1020, "kind": "modifierInvocation", "modifierName": { - "id": 1022, + "id": 1019, "name": "onlyOwner", "nameLocations": [ "1505:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1505:9:4" }, "nodeType": "ModifierInvocation", @@ -1944,23 +1944,23 @@ "nameLocation": "1445:17:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1021, + "id": 1018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1496:8:4" }, "parameters": { - "id": 1020, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1019, + "id": 1016, "mutability": "mutable", "name": "newOwner", "nameLocation": "1471:8:4", "nodeType": "VariableDeclaration", - "scope": 1036, + "scope": 1033, "src": "1463:16:4", "stateVariable": false, "storageLocation": "default", @@ -1969,7 +1969,7 @@ "typeString": "address" }, "typeName": { - "id": 1018, + "id": 1015, "name": "address", "nodeType": "ElementaryTypeName", "src": "1463:7:4", @@ -1985,12 +1985,12 @@ "src": "1462:18:4" }, "returnParameters": { - "id": 1024, + "id": 1021, "nodeType": "ParameterList", "parameters": [], "src": "1515:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1436:178:4", "stateMutability": "nonpayable", "virtual": true, @@ -1998,16 +1998,16 @@ }, { "baseFunctions": [ - 1208 + 1205 ], "body": { - "id": 1052, + "id": 1049, "nodeType": "Block", "src": "1870:81:4", "statements": [ { "expression": { - "id": 1044, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -2017,11 +2017,11 @@ "prefix": true, "src": "1880:20:4", "subExpression": { - "id": 1043, + "id": 1040, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1887:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2033,7 +2033,7 @@ "typeString": "tuple()" } }, - "id": 1045, + "id": 1042, "nodeType": "ExpressionStatement", "src": "1880:20:4" }, @@ -2041,11 +2041,11 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1046, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1039, + "referencedDeclaration": 1036, "src": "1935:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2061,18 +2061,18 @@ } ], "expression": { - "id": 1046, + "id": 1043, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, "src": "1910:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1081_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1048, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -2080,14 +2080,14 @@ "memberLocation": "1916:18:4", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1910:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1050, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -2103,19 +2103,19 @@ "typeString": "tuple()" } }, - "id": 1051, + "id": 1048, "nodeType": "ExpressionStatement", "src": "1910:34:4" } ] }, "documentation": { - "id": 1037, + "id": 1034, "nodeType": "StructuredDocumentation", "src": "1620:173:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1053, + "id": 1050, "implemented": true, "kind": "function", "modifiers": [], @@ -2123,23 +2123,23 @@ "nameLocation": "1807:18:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1041, + "id": 1038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1861:8:4" }, "parameters": { - "id": 1040, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1039, + "id": 1036, "mutability": "mutable", "name": "newOwner", "nameLocation": "1834:8:4", "nodeType": "VariableDeclaration", - "scope": 1053, + "scope": 1050, "src": "1826:16:4", "stateVariable": false, "storageLocation": "default", @@ -2148,7 +2148,7 @@ "typeString": "address" }, "typeName": { - "id": 1038, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1826:7:4", @@ -2164,12 +2164,12 @@ "src": "1825:18:4" }, "returnParameters": { - "id": 1042, + "id": 1039, "nodeType": "ParameterList", "parameters": [], "src": "1870:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1798:153:4", "stateMutability": "nonpayable", "virtual": true, @@ -2177,23 +2177,23 @@ }, { "body": { - "id": 1074, + "id": 1071, "nodeType": "Block", "src": "2073:170:4", "statements": [ { "assignments": [ - 1058 + 1055 ], "declarations": [ { "constant": false, - "id": 1058, + "id": 1055, "mutability": "mutable", "name": "sender", "nameLocation": "2091:6:4", "nodeType": "VariableDeclaration", - "scope": 1074, + "scope": 1071, "src": "2083:14:4", "stateVariable": false, "storageLocation": "default", @@ -2202,7 +2202,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:4", @@ -2215,23 +2215,23 @@ "visibility": "internal" } ], - "id": 1061, + "id": 1058, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1059, + "id": 1056, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2100:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1060, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, @@ -2258,7 +2258,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1066, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -2267,18 +2267,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1063, + "id": 1060, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, + "referencedDeclaration": 1013, "src": "2130:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1064, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -2297,11 +2297,11 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1065, + "id": 1062, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2148:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2316,7 +2316,7 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1067, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, @@ -2342,7 +2342,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1062, + "id": 1059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2356,7 +2356,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -2372,7 +2372,7 @@ "typeString": "tuple()" } }, - "id": 1069, + "id": 1066, "nodeType": "ExpressionStatement", "src": "2122:78:4" }, @@ -2380,11 +2380,11 @@ "expression": { "arguments": [ { - "id": 1071, + "id": 1068, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2229:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2399,20 +2399,20 @@ "typeString": "address" } ], - "id": 1070, + "id": 1067, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1053 + 1050 ], - "referencedDeclaration": 1053, + "referencedDeclaration": 1050, "src": "2210:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1072, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2428,20 +2428,20 @@ "typeString": "tuple()" } }, - "id": 1073, + "id": 1070, "nodeType": "ExpressionStatement", "src": "2210:26:4" } ] }, "documentation": { - "id": 1054, + "id": 1051, "nodeType": "StructuredDocumentation", "src": "1957:69:4", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1075, + "id": 1072, "implemented": true, "kind": "function", "modifiers": [], @@ -2449,18 +2449,18 @@ "nameLocation": "2040:15:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1055, + "id": 1052, "nodeType": "ParameterList", "parameters": [], "src": "2055:2:4" }, "returnParameters": { - "id": 1056, + "id": 1053, "nodeType": "ParameterList", "parameters": [], "src": "2073:0:4" }, - "scope": 1081, + "scope": 1078, "src": "2031:212:4", "stateMutability": "nonpayable", "virtual": true, @@ -2469,17 +2469,17 @@ { "constant": false, "documentation": { - "id": 1076, + "id": 1073, "nodeType": "StructuredDocumentation", "src": "2249:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1080, + "id": 1077, "mutability": "mutable", "name": "__gap", "nameLocation": "2528:5:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "2508:25:4", "stateVariable": true, "storageLocation": "default", @@ -2489,7 +2489,7 @@ }, "typeName": { "baseType": { - "id": 1077, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2508:7:4", @@ -2498,10 +2498,10 @@ "typeString": "uint256" } }, - "id": 1079, + "id": 1076, "length": { "hexValue": "3439", - "id": 1078, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -2525,7 +2525,7 @@ "visibility": "private" } ], - "scope": 1082, + "scope": 1079, "src": "674:1862:4", "usedErrors": [] } @@ -2538,5 +2538,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.550Z" + "updatedAt": "2024-06-27T12:24:25.257Z" } \ No newline at end of file diff --git a/build/contracts/OwnableUpgradeable.json b/build/contracts/OwnableUpgradeable.json index 34f3a83..433e7f5 100644 --- a/build/contracts/OwnableUpgradeable.json +++ b/build/contracts/OwnableUpgradeable.json @@ -77,21 +77,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1215, + "id": 1212, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1083, + "id": 1080, "literals": [ "solidity", "^", @@ -104,11 +104,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1084, + "id": 1081, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1893, + "scope": 1212, + "sourceUnit": 1890, "src": "127:41:5", "symbolAliases": [], "unitAlias": "" @@ -116,20 +116,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1086, + "id": 1083, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1384, + "scope": 1212, + "sourceUnit": 1381, "src": "169:63:5", "symbolAliases": [ { "foreign": { - "id": 1085, + "id": 1082, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "177:13:5", "typeDescriptions": {} }, @@ -143,31 +143,31 @@ "baseContracts": [ { "baseName": { - "id": 1088, + "id": 1085, "name": "Initializable", "nameLocations": [ "769:13:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "769:13:5" }, - "id": 1089, + "id": 1086, "nodeType": "InheritanceSpecifier", "src": "769:13:5" }, { "baseName": { - "id": 1090, + "id": 1087, "name": "ContextUpgradeable", "nameLocations": [ "784:18:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "784:18:5" }, - "id": 1091, + "id": 1088, "nodeType": "InheritanceSpecifier", "src": "784:18:5" } @@ -176,17 +176,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1087, + "id": 1084, "nodeType": "StructuredDocumentation", "src": "234:494:5", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1214, + "id": 1211, "linearizedBaseContracts": [ - 1214, - 1892, - 1383 + 1211, + 1889, + 1380 ], "name": "OwnableUpgradeable", "nameLocation": "747:18:5", @@ -194,12 +194,12 @@ "nodes": [ { "constant": false, - "id": 1093, + "id": 1090, "mutability": "mutable", "name": "_owner", "nameLocation": "825:6:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "809:22:5", "stateVariable": true, "storageLocation": "default", @@ -208,7 +208,7 @@ "typeString": "address" }, "typeName": { - "id": 1092, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", "src": "809:7:5", @@ -223,23 +223,23 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1099, + "id": 1096, "name": "OwnershipTransferred", "nameLocation": "844:20:5", "nodeType": "EventDefinition", "parameters": { - "id": 1098, + "id": 1095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1095, + "id": 1092, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "881:13:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "865:29:5", "stateVariable": false, "storageLocation": "default", @@ -248,7 +248,7 @@ "typeString": "address" }, "typeName": { - "id": 1094, + "id": 1091, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:5", @@ -262,13 +262,13 @@ }, { "constant": false, - "id": 1097, + "id": 1094, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "912:8:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "896:24:5", "stateVariable": false, "storageLocation": "default", @@ -277,7 +277,7 @@ "typeString": "address" }, "typeName": { - "id": 1096, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "896:7:5", @@ -296,7 +296,7 @@ }, { "body": { - "id": 1108, + "id": 1105, "nodeType": "Block", "src": "1076:43:5", "statements": [ @@ -305,18 +305,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1105, + "id": 1102, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "1086:24:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1106, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -332,33 +332,33 @@ "typeString": "tuple()" } }, - "id": 1107, + "id": 1104, "nodeType": "ExpressionStatement", "src": "1086:26:5" } ] }, "documentation": { - "id": 1100, + "id": 1097, "nodeType": "StructuredDocumentation", "src": "928:91:5", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1109, + "id": 1106, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1103, + "id": 1100, "kind": "modifierInvocation", "modifierName": { - "id": 1102, + "id": 1099, "name": "onlyInitializing", "nameLocations": [ "1059:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1059:16:5" }, "nodeType": "ModifierInvocation", @@ -369,18 +369,18 @@ "nameLocation": "1033:14:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1098, "nodeType": "ParameterList", "parameters": [], "src": "1047:2:5" }, "returnParameters": { - "id": 1104, + "id": 1101, "nodeType": "ParameterList", "parameters": [], "src": "1076:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1024:95:5", "stateMutability": "nonpayable", "virtual": false, @@ -388,7 +388,7 @@ }, { "body": { - "id": 1119, + "id": 1116, "nodeType": "Block", "src": "1187:49:5", "statements": [ @@ -399,18 +399,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1115, + "id": 1112, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1216:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1116, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -434,18 +434,18 @@ "typeString": "address" } ], - "id": 1114, + "id": 1111, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1197:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1117, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -461,27 +461,27 @@ "typeString": "tuple()" } }, - "id": 1118, + "id": 1115, "nodeType": "ExpressionStatement", "src": "1197:32:5" } ] }, - "id": 1120, + "id": 1117, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1112, + "id": 1109, "kind": "modifierInvocation", "modifierName": { - "id": 1111, + "id": 1108, "name": "onlyInitializing", "nameLocations": [ "1170:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1170:16:5" }, "nodeType": "ModifierInvocation", @@ -492,18 +492,18 @@ "nameLocation": "1134:24:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1110, + "id": 1107, "nodeType": "ParameterList", "parameters": [], "src": "1158:2:5" }, "returnParameters": { - "id": 1113, + "id": 1110, "nodeType": "ParameterList", "parameters": [], "src": "1187:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1125:111:5", "stateMutability": "nonpayable", "virtual": false, @@ -511,7 +511,7 @@ }, { "body": { - "id": 1127, + "id": 1124, "nodeType": "Block", "src": "1345:41:5", "statements": [ @@ -520,18 +520,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1123, + "id": 1120, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1148, "src": "1355:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1124, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -547,29 +547,29 @@ "typeString": "tuple()" } }, - "id": 1125, + "id": 1122, "nodeType": "ExpressionStatement", "src": "1355:13:5" }, { - "id": 1126, + "id": 1123, "nodeType": "PlaceholderStatement", "src": "1378:1:5" } ] }, "documentation": { - "id": 1121, + "id": 1118, "nodeType": "StructuredDocumentation", "src": "1242:77:5", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1128, + "id": 1125, "name": "onlyOwner", "nameLocation": "1333:9:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1122, + "id": 1119, "nodeType": "ParameterList", "parameters": [], "src": "1342:2:5" @@ -580,38 +580,38 @@ }, { "body": { - "id": 1136, + "id": 1133, "nodeType": "Block", "src": "1517:30:5", "statements": [ { "expression": { - "id": 1134, + "id": 1131, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "1534:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1133, - "id": 1135, + "functionReturnParameters": 1130, + "id": 1132, "nodeType": "Return", "src": "1527:13:5" } ] }, "documentation": { - "id": 1129, + "id": 1126, "nodeType": "StructuredDocumentation", "src": "1392:65:5", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1137, + "id": 1134, "implemented": true, "kind": "function", "modifiers": [], @@ -619,23 +619,23 @@ "nameLocation": "1471:5:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1130, + "id": 1127, "nodeType": "ParameterList", "parameters": [], "src": "1476:2:5" }, "returnParameters": { - "id": 1133, + "id": 1130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1132, + "id": 1129, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1134, "src": "1508:7:5", "stateVariable": false, "storageLocation": "default", @@ -644,7 +644,7 @@ "typeString": "address" }, "typeName": { - "id": 1131, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", "src": "1508:7:5", @@ -659,7 +659,7 @@ ], "src": "1507:9:5" }, - "scope": 1214, + "scope": 1211, "src": "1462:85:5", "stateMutability": "view", "virtual": true, @@ -667,7 +667,7 @@ }, { "body": { - "id": 1150, + "id": 1147, "nodeType": "Block", "src": "1665:85:5", "statements": [ @@ -679,7 +679,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1146, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,18 +688,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1142, + "id": 1139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1683:5:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1143, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -721,18 +721,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1144, + "id": 1141, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1694:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1145, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -756,7 +756,7 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1147, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": true, @@ -782,7 +782,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1141, + "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -796,7 +796,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1148, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -812,19 +812,19 @@ "typeString": "tuple()" } }, - "id": 1149, + "id": 1146, "nodeType": "ExpressionStatement", "src": "1675:68:5" } ] }, "documentation": { - "id": 1138, + "id": 1135, "nodeType": "StructuredDocumentation", "src": "1553:62:5", "text": " @dev Throws if the sender is not the owner." }, - "id": 1151, + "id": 1148, "implemented": true, "kind": "function", "modifiers": [], @@ -832,18 +832,18 @@ "nameLocation": "1629:11:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "1640:2:5" }, "returnParameters": { - "id": 1140, + "id": 1137, "nodeType": "ParameterList", "parameters": [], "src": "1665:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1620:130:5", "stateMutability": "view", "virtual": true, @@ -851,7 +851,7 @@ }, { "body": { - "id": 1164, + "id": 1161, "nodeType": "Block", "src": "2139:47:5", "statements": [ @@ -862,7 +862,7 @@ "arguments": [ { "hexValue": "30", - "id": 1160, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, @@ -884,7 +884,7 @@ "typeString": "int_const 0" } ], - "id": 1159, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, @@ -896,14 +896,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1158, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2168:7:5", "typeDescriptions": {} } }, - "id": 1161, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, @@ -927,18 +927,18 @@ "typeString": "address" } ], - "id": 1157, + "id": 1154, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2149:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1162, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -954,34 +954,34 @@ "typeString": "tuple()" } }, - "id": 1163, + "id": 1160, "nodeType": "ExpressionStatement", "src": "2149:30:5" } ] }, "documentation": { - "id": 1152, + "id": 1149, "nodeType": "StructuredDocumentation", "src": "1756:324:5", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1165, + "id": 1162, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1155, + "id": 1152, "kind": "modifierInvocation", "modifierName": { - "id": 1154, + "id": 1151, "name": "onlyOwner", "nameLocations": [ "2129:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2129:9:5" }, "nodeType": "ModifierInvocation", @@ -992,18 +992,18 @@ "nameLocation": "2094:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1153, + "id": 1150, "nodeType": "ParameterList", "parameters": [], "src": "2111:2:5" }, "returnParameters": { - "id": 1156, + "id": 1153, "nodeType": "ParameterList", "parameters": [], "src": "2139:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2085:101:5", "stateMutability": "nonpayable", "virtual": true, @@ -1011,7 +1011,7 @@ }, { "body": { - "id": 1187, + "id": 1184, "nodeType": "Block", "src": "2405:128:5", "statements": [ @@ -1023,17 +1023,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1179, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1174, + "id": 1171, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2423:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1046,7 +1046,7 @@ "arguments": [ { "hexValue": "30", - "id": 1177, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, @@ -1068,7 +1068,7 @@ "typeString": "int_const 0" } ], - "id": 1176, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": true, @@ -1080,14 +1080,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1175, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", "src": "2435:7:5", "typeDescriptions": {} } }, - "id": 1178, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, @@ -1111,7 +1111,7 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1180, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, @@ -1137,7 +1137,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1173, + "id": 1170, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1151,7 +1151,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1181, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -1167,7 +1167,7 @@ "typeString": "tuple()" } }, - "id": 1182, + "id": 1179, "nodeType": "ExpressionStatement", "src": "2415:73:5" }, @@ -1175,11 +1175,11 @@ "expression": { "arguments": [ { - "id": 1184, + "id": 1181, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2517:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1194,18 +1194,18 @@ "typeString": "address" } ], - "id": 1183, + "id": 1180, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2498:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1185, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -1221,34 +1221,34 @@ "typeString": "tuple()" } }, - "id": 1186, + "id": 1183, "nodeType": "ExpressionStatement", "src": "2498:28:5" } ] }, "documentation": { - "id": 1166, + "id": 1163, "nodeType": "StructuredDocumentation", "src": "2192:138:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1188, + "id": 1185, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1171, + "id": 1168, "kind": "modifierInvocation", "modifierName": { - "id": 1170, + "id": 1167, "name": "onlyOwner", "nameLocations": [ "2395:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2395:9:5" }, "nodeType": "ModifierInvocation", @@ -1259,17 +1259,17 @@ "nameLocation": "2344:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 1165, "mutability": "mutable", "name": "newOwner", "nameLocation": "2370:8:5", "nodeType": "VariableDeclaration", - "scope": 1188, + "scope": 1185, "src": "2362:16:5", "stateVariable": false, "storageLocation": "default", @@ -1278,7 +1278,7 @@ "typeString": "address" }, "typeName": { - "id": 1167, + "id": 1164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:5", @@ -1294,12 +1294,12 @@ "src": "2361:18:5" }, "returnParameters": { - "id": 1172, + "id": 1169, "nodeType": "ParameterList", "parameters": [], "src": "2405:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2335:198:5", "stateMutability": "nonpayable", "virtual": true, @@ -1307,23 +1307,23 @@ }, { "body": { - "id": 1207, + "id": 1204, "nodeType": "Block", "src": "2750:124:5", "statements": [ { "assignments": [ - 1195 + 1192 ], "declarations": [ { "constant": false, - "id": 1195, + "id": 1192, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2768:8:5", "nodeType": "VariableDeclaration", - "scope": 1207, + "scope": 1204, "src": "2760:16:5", "stateVariable": false, "storageLocation": "default", @@ -1332,7 +1332,7 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "2760:7:5", @@ -1345,13 +1345,13 @@ "visibility": "internal" } ], - "id": 1197, + "id": 1194, "initialValue": { - "id": 1196, + "id": 1193, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2779:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1363,17 +1363,17 @@ }, { "expression": { - "id": 1200, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1198, + "id": 1195, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2795:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1383,11 +1383,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1199, + "id": 1196, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2804:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1400,7 +1400,7 @@ "typeString": "address" } }, - "id": 1201, + "id": 1198, "nodeType": "ExpressionStatement", "src": "2795:17:5" }, @@ -1408,11 +1408,11 @@ "eventCall": { "arguments": [ { - "id": 1203, + "id": 1200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, + "referencedDeclaration": 1192, "src": "2848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1420,11 +1420,11 @@ } }, { - "id": 1204, + "id": 1201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2858:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1443,18 +1443,18 @@ "typeString": "address" } ], - "id": 1202, + "id": 1199, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1096, "src": "2827:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1205, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -1470,19 +1470,19 @@ "typeString": "tuple()" } }, - "id": 1206, + "id": 1203, "nodeType": "EmitStatement", "src": "2822:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1186, "nodeType": "StructuredDocumentation", "src": "2539:143:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1208, + "id": 1205, "implemented": true, "kind": "function", "modifiers": [], @@ -1490,17 +1490,17 @@ "nameLocation": "2696:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1192, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1188, "mutability": "mutable", "name": "newOwner", "nameLocation": "2723:8:5", "nodeType": "VariableDeclaration", - "scope": 1208, + "scope": 1205, "src": "2715:16:5", "stateVariable": false, "storageLocation": "default", @@ -1509,7 +1509,7 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1187, "name": "address", "nodeType": "ElementaryTypeName", "src": "2715:7:5", @@ -1525,12 +1525,12 @@ "src": "2714:18:5" }, "returnParameters": { - "id": 1193, + "id": 1190, "nodeType": "ParameterList", "parameters": [], "src": "2750:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2687:187:5", "stateMutability": "nonpayable", "virtual": true, @@ -1539,17 +1539,17 @@ { "constant": false, "documentation": { - "id": 1209, + "id": 1206, "nodeType": "StructuredDocumentation", "src": "2880:254:5", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1213, + "id": 1210, "mutability": "mutable", "name": "__gap", "nameLocation": "3159:5:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "3139:25:5", "stateVariable": true, "storageLocation": "default", @@ -1559,7 +1559,7 @@ }, "typeName": { "baseType": { - "id": 1210, + "id": 1207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3139:7:5", @@ -1568,10 +1568,10 @@ "typeString": "uint256" } }, - "id": 1212, + "id": 1209, "length": { "hexValue": "3439", - "id": 1211, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -1595,7 +1595,7 @@ "visibility": "private" } ], - "scope": 1215, + "scope": 1212, "src": "729:2438:5", "usedErrors": [] } @@ -1606,21 +1606,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1215, + "id": 1212, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1083, + "id": 1080, "literals": [ "solidity", "^", @@ -1633,11 +1633,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1084, + "id": 1081, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1893, + "scope": 1212, + "sourceUnit": 1890, "src": "127:41:5", "symbolAliases": [], "unitAlias": "" @@ -1645,20 +1645,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1086, + "id": 1083, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1384, + "scope": 1212, + "sourceUnit": 1381, "src": "169:63:5", "symbolAliases": [ { "foreign": { - "id": 1085, + "id": 1082, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "177:13:5", "typeDescriptions": {} }, @@ -1672,31 +1672,31 @@ "baseContracts": [ { "baseName": { - "id": 1088, + "id": 1085, "name": "Initializable", "nameLocations": [ "769:13:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "769:13:5" }, - "id": 1089, + "id": 1086, "nodeType": "InheritanceSpecifier", "src": "769:13:5" }, { "baseName": { - "id": 1090, + "id": 1087, "name": "ContextUpgradeable", "nameLocations": [ "784:18:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "784:18:5" }, - "id": 1091, + "id": 1088, "nodeType": "InheritanceSpecifier", "src": "784:18:5" } @@ -1705,17 +1705,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1087, + "id": 1084, "nodeType": "StructuredDocumentation", "src": "234:494:5", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1214, + "id": 1211, "linearizedBaseContracts": [ - 1214, - 1892, - 1383 + 1211, + 1889, + 1380 ], "name": "OwnableUpgradeable", "nameLocation": "747:18:5", @@ -1723,12 +1723,12 @@ "nodes": [ { "constant": false, - "id": 1093, + "id": 1090, "mutability": "mutable", "name": "_owner", "nameLocation": "825:6:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "809:22:5", "stateVariable": true, "storageLocation": "default", @@ -1737,7 +1737,7 @@ "typeString": "address" }, "typeName": { - "id": 1092, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", "src": "809:7:5", @@ -1752,23 +1752,23 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1099, + "id": 1096, "name": "OwnershipTransferred", "nameLocation": "844:20:5", "nodeType": "EventDefinition", "parameters": { - "id": 1098, + "id": 1095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1095, + "id": 1092, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "881:13:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "865:29:5", "stateVariable": false, "storageLocation": "default", @@ -1777,7 +1777,7 @@ "typeString": "address" }, "typeName": { - "id": 1094, + "id": 1091, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:5", @@ -1791,13 +1791,13 @@ }, { "constant": false, - "id": 1097, + "id": 1094, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "912:8:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "896:24:5", "stateVariable": false, "storageLocation": "default", @@ -1806,7 +1806,7 @@ "typeString": "address" }, "typeName": { - "id": 1096, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "896:7:5", @@ -1825,7 +1825,7 @@ }, { "body": { - "id": 1108, + "id": 1105, "nodeType": "Block", "src": "1076:43:5", "statements": [ @@ -1834,18 +1834,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1105, + "id": 1102, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "1086:24:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1106, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -1861,33 +1861,33 @@ "typeString": "tuple()" } }, - "id": 1107, + "id": 1104, "nodeType": "ExpressionStatement", "src": "1086:26:5" } ] }, "documentation": { - "id": 1100, + "id": 1097, "nodeType": "StructuredDocumentation", "src": "928:91:5", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1109, + "id": 1106, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1103, + "id": 1100, "kind": "modifierInvocation", "modifierName": { - "id": 1102, + "id": 1099, "name": "onlyInitializing", "nameLocations": [ "1059:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1059:16:5" }, "nodeType": "ModifierInvocation", @@ -1898,18 +1898,18 @@ "nameLocation": "1033:14:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1098, "nodeType": "ParameterList", "parameters": [], "src": "1047:2:5" }, "returnParameters": { - "id": 1104, + "id": 1101, "nodeType": "ParameterList", "parameters": [], "src": "1076:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1024:95:5", "stateMutability": "nonpayable", "virtual": false, @@ -1917,7 +1917,7 @@ }, { "body": { - "id": 1119, + "id": 1116, "nodeType": "Block", "src": "1187:49:5", "statements": [ @@ -1928,18 +1928,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1115, + "id": 1112, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1216:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1116, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -1963,18 +1963,18 @@ "typeString": "address" } ], - "id": 1114, + "id": 1111, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1197:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1117, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -1990,27 +1990,27 @@ "typeString": "tuple()" } }, - "id": 1118, + "id": 1115, "nodeType": "ExpressionStatement", "src": "1197:32:5" } ] }, - "id": 1120, + "id": 1117, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1112, + "id": 1109, "kind": "modifierInvocation", "modifierName": { - "id": 1111, + "id": 1108, "name": "onlyInitializing", "nameLocations": [ "1170:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1170:16:5" }, "nodeType": "ModifierInvocation", @@ -2021,18 +2021,18 @@ "nameLocation": "1134:24:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1110, + "id": 1107, "nodeType": "ParameterList", "parameters": [], "src": "1158:2:5" }, "returnParameters": { - "id": 1113, + "id": 1110, "nodeType": "ParameterList", "parameters": [], "src": "1187:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1125:111:5", "stateMutability": "nonpayable", "virtual": false, @@ -2040,7 +2040,7 @@ }, { "body": { - "id": 1127, + "id": 1124, "nodeType": "Block", "src": "1345:41:5", "statements": [ @@ -2049,18 +2049,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1123, + "id": 1120, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1148, "src": "1355:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1124, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -2076,29 +2076,29 @@ "typeString": "tuple()" } }, - "id": 1125, + "id": 1122, "nodeType": "ExpressionStatement", "src": "1355:13:5" }, { - "id": 1126, + "id": 1123, "nodeType": "PlaceholderStatement", "src": "1378:1:5" } ] }, "documentation": { - "id": 1121, + "id": 1118, "nodeType": "StructuredDocumentation", "src": "1242:77:5", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1128, + "id": 1125, "name": "onlyOwner", "nameLocation": "1333:9:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1122, + "id": 1119, "nodeType": "ParameterList", "parameters": [], "src": "1342:2:5" @@ -2109,38 +2109,38 @@ }, { "body": { - "id": 1136, + "id": 1133, "nodeType": "Block", "src": "1517:30:5", "statements": [ { "expression": { - "id": 1134, + "id": 1131, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "1534:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1133, - "id": 1135, + "functionReturnParameters": 1130, + "id": 1132, "nodeType": "Return", "src": "1527:13:5" } ] }, "documentation": { - "id": 1129, + "id": 1126, "nodeType": "StructuredDocumentation", "src": "1392:65:5", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1137, + "id": 1134, "implemented": true, "kind": "function", "modifiers": [], @@ -2148,23 +2148,23 @@ "nameLocation": "1471:5:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1130, + "id": 1127, "nodeType": "ParameterList", "parameters": [], "src": "1476:2:5" }, "returnParameters": { - "id": 1133, + "id": 1130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1132, + "id": 1129, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1134, "src": "1508:7:5", "stateVariable": false, "storageLocation": "default", @@ -2173,7 +2173,7 @@ "typeString": "address" }, "typeName": { - "id": 1131, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", "src": "1508:7:5", @@ -2188,7 +2188,7 @@ ], "src": "1507:9:5" }, - "scope": 1214, + "scope": 1211, "src": "1462:85:5", "stateMutability": "view", "virtual": true, @@ -2196,7 +2196,7 @@ }, { "body": { - "id": 1150, + "id": 1147, "nodeType": "Block", "src": "1665:85:5", "statements": [ @@ -2208,7 +2208,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1146, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -2217,18 +2217,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1142, + "id": 1139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1683:5:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1143, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -2250,18 +2250,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1144, + "id": 1141, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1694:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1145, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -2285,7 +2285,7 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1147, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": true, @@ -2311,7 +2311,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1141, + "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2325,7 +2325,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1148, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -2341,19 +2341,19 @@ "typeString": "tuple()" } }, - "id": 1149, + "id": 1146, "nodeType": "ExpressionStatement", "src": "1675:68:5" } ] }, "documentation": { - "id": 1138, + "id": 1135, "nodeType": "StructuredDocumentation", "src": "1553:62:5", "text": " @dev Throws if the sender is not the owner." }, - "id": 1151, + "id": 1148, "implemented": true, "kind": "function", "modifiers": [], @@ -2361,18 +2361,18 @@ "nameLocation": "1629:11:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "1640:2:5" }, "returnParameters": { - "id": 1140, + "id": 1137, "nodeType": "ParameterList", "parameters": [], "src": "1665:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1620:130:5", "stateMutability": "view", "virtual": true, @@ -2380,7 +2380,7 @@ }, { "body": { - "id": 1164, + "id": 1161, "nodeType": "Block", "src": "2139:47:5", "statements": [ @@ -2391,7 +2391,7 @@ "arguments": [ { "hexValue": "30", - "id": 1160, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, @@ -2413,7 +2413,7 @@ "typeString": "int_const 0" } ], - "id": 1159, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, @@ -2425,14 +2425,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1158, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2168:7:5", "typeDescriptions": {} } }, - "id": 1161, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, @@ -2456,18 +2456,18 @@ "typeString": "address" } ], - "id": 1157, + "id": 1154, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2149:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1162, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -2483,34 +2483,34 @@ "typeString": "tuple()" } }, - "id": 1163, + "id": 1160, "nodeType": "ExpressionStatement", "src": "2149:30:5" } ] }, "documentation": { - "id": 1152, + "id": 1149, "nodeType": "StructuredDocumentation", "src": "1756:324:5", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1165, + "id": 1162, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1155, + "id": 1152, "kind": "modifierInvocation", "modifierName": { - "id": 1154, + "id": 1151, "name": "onlyOwner", "nameLocations": [ "2129:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2129:9:5" }, "nodeType": "ModifierInvocation", @@ -2521,18 +2521,18 @@ "nameLocation": "2094:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1153, + "id": 1150, "nodeType": "ParameterList", "parameters": [], "src": "2111:2:5" }, "returnParameters": { - "id": 1156, + "id": 1153, "nodeType": "ParameterList", "parameters": [], "src": "2139:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2085:101:5", "stateMutability": "nonpayable", "virtual": true, @@ -2540,7 +2540,7 @@ }, { "body": { - "id": 1187, + "id": 1184, "nodeType": "Block", "src": "2405:128:5", "statements": [ @@ -2552,17 +2552,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1179, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1174, + "id": 1171, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2423:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2575,7 +2575,7 @@ "arguments": [ { "hexValue": "30", - "id": 1177, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, @@ -2597,7 +2597,7 @@ "typeString": "int_const 0" } ], - "id": 1176, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": true, @@ -2609,14 +2609,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1175, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", "src": "2435:7:5", "typeDescriptions": {} } }, - "id": 1178, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, @@ -2640,7 +2640,7 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1180, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, @@ -2666,7 +2666,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1173, + "id": 1170, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2680,7 +2680,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1181, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -2696,7 +2696,7 @@ "typeString": "tuple()" } }, - "id": 1182, + "id": 1179, "nodeType": "ExpressionStatement", "src": "2415:73:5" }, @@ -2704,11 +2704,11 @@ "expression": { "arguments": [ { - "id": 1184, + "id": 1181, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2517:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2723,18 +2723,18 @@ "typeString": "address" } ], - "id": 1183, + "id": 1180, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2498:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1185, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -2750,34 +2750,34 @@ "typeString": "tuple()" } }, - "id": 1186, + "id": 1183, "nodeType": "ExpressionStatement", "src": "2498:28:5" } ] }, "documentation": { - "id": 1166, + "id": 1163, "nodeType": "StructuredDocumentation", "src": "2192:138:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1188, + "id": 1185, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1171, + "id": 1168, "kind": "modifierInvocation", "modifierName": { - "id": 1170, + "id": 1167, "name": "onlyOwner", "nameLocations": [ "2395:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2395:9:5" }, "nodeType": "ModifierInvocation", @@ -2788,17 +2788,17 @@ "nameLocation": "2344:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 1165, "mutability": "mutable", "name": "newOwner", "nameLocation": "2370:8:5", "nodeType": "VariableDeclaration", - "scope": 1188, + "scope": 1185, "src": "2362:16:5", "stateVariable": false, "storageLocation": "default", @@ -2807,7 +2807,7 @@ "typeString": "address" }, "typeName": { - "id": 1167, + "id": 1164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:5", @@ -2823,12 +2823,12 @@ "src": "2361:18:5" }, "returnParameters": { - "id": 1172, + "id": 1169, "nodeType": "ParameterList", "parameters": [], "src": "2405:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2335:198:5", "stateMutability": "nonpayable", "virtual": true, @@ -2836,23 +2836,23 @@ }, { "body": { - "id": 1207, + "id": 1204, "nodeType": "Block", "src": "2750:124:5", "statements": [ { "assignments": [ - 1195 + 1192 ], "declarations": [ { "constant": false, - "id": 1195, + "id": 1192, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2768:8:5", "nodeType": "VariableDeclaration", - "scope": 1207, + "scope": 1204, "src": "2760:16:5", "stateVariable": false, "storageLocation": "default", @@ -2861,7 +2861,7 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "2760:7:5", @@ -2874,13 +2874,13 @@ "visibility": "internal" } ], - "id": 1197, + "id": 1194, "initialValue": { - "id": 1196, + "id": 1193, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2779:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2892,17 +2892,17 @@ }, { "expression": { - "id": 1200, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1198, + "id": 1195, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2795:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2912,11 +2912,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1199, + "id": 1196, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2804:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2929,7 +2929,7 @@ "typeString": "address" } }, - "id": 1201, + "id": 1198, "nodeType": "ExpressionStatement", "src": "2795:17:5" }, @@ -2937,11 +2937,11 @@ "eventCall": { "arguments": [ { - "id": 1203, + "id": 1200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, + "referencedDeclaration": 1192, "src": "2848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2949,11 +2949,11 @@ } }, { - "id": 1204, + "id": 1201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2858:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2972,18 +2972,18 @@ "typeString": "address" } ], - "id": 1202, + "id": 1199, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1096, "src": "2827:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1205, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -2999,19 +2999,19 @@ "typeString": "tuple()" } }, - "id": 1206, + "id": 1203, "nodeType": "EmitStatement", "src": "2822:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1186, "nodeType": "StructuredDocumentation", "src": "2539:143:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1208, + "id": 1205, "implemented": true, "kind": "function", "modifiers": [], @@ -3019,17 +3019,17 @@ "nameLocation": "2696:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1192, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1188, "mutability": "mutable", "name": "newOwner", "nameLocation": "2723:8:5", "nodeType": "VariableDeclaration", - "scope": 1208, + "scope": 1205, "src": "2715:16:5", "stateVariable": false, "storageLocation": "default", @@ -3038,7 +3038,7 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1187, "name": "address", "nodeType": "ElementaryTypeName", "src": "2715:7:5", @@ -3054,12 +3054,12 @@ "src": "2714:18:5" }, "returnParameters": { - "id": 1193, + "id": 1190, "nodeType": "ParameterList", "parameters": [], "src": "2750:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2687:187:5", "stateMutability": "nonpayable", "virtual": true, @@ -3068,17 +3068,17 @@ { "constant": false, "documentation": { - "id": 1209, + "id": 1206, "nodeType": "StructuredDocumentation", "src": "2880:254:5", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1213, + "id": 1210, "mutability": "mutable", "name": "__gap", "nameLocation": "3159:5:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "3139:25:5", "stateVariable": true, "storageLocation": "default", @@ -3088,7 +3088,7 @@ }, "typeName": { "baseType": { - "id": 1210, + "id": 1207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3139:7:5", @@ -3097,10 +3097,10 @@ "typeString": "uint256" } }, - "id": 1212, + "id": 1209, "length": { "hexValue": "3439", - "id": 1211, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -3124,7 +3124,7 @@ "visibility": "private" } ], - "scope": 1215, + "scope": 1212, "src": "729:2438:5", "usedErrors": [] } @@ -3137,5 +3137,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.551Z" + "updatedAt": "2024-06-27T12:24:25.262Z" } \ No newline at end of file diff --git a/build/contracts/PausableUpgradeable.json b/build/contracts/PausableUpgradeable.json index 9fa7b4f..2ddae33 100644 --- a/build/contracts/PausableUpgradeable.json +++ b/build/contracts/PausableUpgradeable.json @@ -64,21 +64,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 1512, + "id": 1509, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1385, + "id": 1382, "literals": [ "solidity", "^", @@ -91,11 +91,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1386, + "id": 1383, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1893, + "scope": 1509, + "sourceUnit": 1890, "src": "130:41:7", "symbolAliases": [], "unitAlias": "" @@ -103,20 +103,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1388, + "id": 1385, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1384, + "scope": 1509, + "sourceUnit": 1381, "src": "172:63:7", "symbolAliases": [ { "foreign": { - "id": 1387, + "id": 1384, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "180:13:7", "typeDescriptions": {} }, @@ -130,31 +130,31 @@ "baseContracts": [ { "baseName": { - "id": 1390, + "id": 1387, "name": "Initializable", "nameLocations": [ "718:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "718:13:7" }, - "id": 1391, + "id": 1388, "nodeType": "InheritanceSpecifier", "src": "718:13:7" }, { "baseName": { - "id": 1392, + "id": 1389, "name": "ContextUpgradeable", "nameLocations": [ "733:18:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "733:18:7" }, - "id": 1393, + "id": 1390, "nodeType": "InheritanceSpecifier", "src": "733:18:7" } @@ -163,17 +163,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1389, + "id": 1386, "nodeType": "StructuredDocumentation", "src": "237:439:7", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1511, + "id": 1508, "linearizedBaseContracts": [ - 1511, - 1892, - 1383 + 1508, + 1889, + 1380 ], "name": "PausableUpgradeable", "nameLocation": "695:19:7", @@ -182,29 +182,29 @@ { "anonymous": false, "documentation": { - "id": 1394, + "id": 1391, "nodeType": "StructuredDocumentation", "src": "758:73:7", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1398, + "id": 1395, "name": "Paused", "nameLocation": "842:6:7", "nodeType": "EventDefinition", "parameters": { - "id": 1397, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1393, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "857:7:7", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1395, "src": "849:15:7", "stateVariable": false, "storageLocation": "default", @@ -213,7 +213,7 @@ "typeString": "address" }, "typeName": { - "id": 1395, + "id": 1392, "name": "address", "nodeType": "ElementaryTypeName", "src": "849:7:7", @@ -233,29 +233,29 @@ { "anonymous": false, "documentation": { - "id": 1399, + "id": 1396, "nodeType": "StructuredDocumentation", "src": "872:70:7", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1403, + "id": 1400, "name": "Unpaused", "nameLocation": "953:8:7", "nodeType": "EventDefinition", "parameters": { - "id": 1402, + "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1401, + "id": 1398, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "970:7:7", "nodeType": "VariableDeclaration", - "scope": 1403, + "scope": 1400, "src": "962:15:7", "stateVariable": false, "storageLocation": "default", @@ -264,7 +264,7 @@ "typeString": "address" }, "typeName": { - "id": 1400, + "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "962:7:7", @@ -283,12 +283,12 @@ }, { "constant": false, - "id": 1405, + "id": 1402, "mutability": "mutable", "name": "_paused", "nameLocation": "998:7:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "985:20:7", "stateVariable": true, "storageLocation": "default", @@ -297,7 +297,7 @@ "typeString": "bool" }, "typeName": { - "id": 1404, + "id": 1401, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:7", @@ -310,7 +310,7 @@ }, { "body": { - "id": 1414, + "id": 1411, "nodeType": "Block", "src": "1137:44:7", "statements": [ @@ -319,18 +319,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1411, + "id": 1408, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, + "referencedDeclaration": 1422, "src": "1147:25:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1412, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": false, @@ -346,33 +346,33 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1410, "nodeType": "ExpressionStatement", "src": "1147:27:7" } ] }, "documentation": { - "id": 1406, + "id": 1403, "nodeType": "StructuredDocumentation", "src": "1012:67:7", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1415, + "id": 1412, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1409, + "id": 1406, "kind": "modifierInvocation", "modifierName": { - "id": 1408, + "id": 1405, "name": "onlyInitializing", "nameLocations": [ "1120:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1120:16:7" }, "nodeType": "ModifierInvocation", @@ -383,18 +383,18 @@ "nameLocation": "1093:15:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1404, "nodeType": "ParameterList", "parameters": [], "src": "1108:2:7" }, "returnParameters": { - "id": 1410, + "id": 1407, "nodeType": "ParameterList", "parameters": [], "src": "1137:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1084:97:7", "stateMutability": "nonpayable", "virtual": false, @@ -402,23 +402,23 @@ }, { "body": { - "id": 1424, + "id": 1421, "nodeType": "Block", "src": "1250:32:7", "statements": [ { "expression": { - "id": 1422, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1420, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1260:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -429,7 +429,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1421, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, @@ -449,27 +449,27 @@ "typeString": "bool" } }, - "id": 1423, + "id": 1420, "nodeType": "ExpressionStatement", "src": "1260:15:7" } ] }, - "id": 1425, + "id": 1422, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1418, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1417, + "id": 1414, "name": "onlyInitializing", "nameLocations": [ "1233:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1233:16:7" }, "nodeType": "ModifierInvocation", @@ -480,18 +480,18 @@ "nameLocation": "1196:25:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1416, + "id": 1413, "nodeType": "ParameterList", "parameters": [], "src": "1221:2:7" }, "returnParameters": { - "id": 1419, + "id": 1416, "nodeType": "ParameterList", "parameters": [], "src": "1250:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1187:95:7", "stateMutability": "nonpayable", "virtual": false, @@ -499,7 +499,7 @@ }, { "body": { - "id": 1432, + "id": 1429, "nodeType": "Block", "src": "1493:47:7", "statements": [ @@ -508,18 +508,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1428, + "id": 1425, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1462, + "referencedDeclaration": 1459, "src": "1503:17:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1429, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,29 +535,29 @@ "typeString": "tuple()" } }, - "id": 1430, + "id": 1427, "nodeType": "ExpressionStatement", "src": "1503:19:7" }, { - "id": 1431, + "id": 1428, "nodeType": "PlaceholderStatement", "src": "1532:1:7" } ] }, "documentation": { - "id": 1426, + "id": 1423, "nodeType": "StructuredDocumentation", "src": "1288:175:7", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1433, + "id": 1430, "name": "whenNotPaused", "nameLocation": "1477:13:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1427, + "id": 1424, "nodeType": "ParameterList", "parameters": [], "src": "1490:2:7" @@ -568,7 +568,7 @@ }, { "body": { - "id": 1440, + "id": 1437, "nodeType": "Block", "src": "1740:44:7", "statements": [ @@ -577,18 +577,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1436, + "id": 1433, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1470, "src": "1750:14:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1437, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, @@ -604,29 +604,29 @@ "typeString": "tuple()" } }, - "id": 1438, + "id": 1435, "nodeType": "ExpressionStatement", "src": "1750:16:7" }, { - "id": 1439, + "id": 1436, "nodeType": "PlaceholderStatement", "src": "1776:1:7" } ] }, "documentation": { - "id": 1434, + "id": 1431, "nodeType": "StructuredDocumentation", "src": "1546:167:7", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1441, + "id": 1438, "name": "whenPaused", "nameLocation": "1727:10:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1432, "nodeType": "ParameterList", "parameters": [], "src": "1737:2:7" @@ -637,38 +637,38 @@ }, { "body": { - "id": 1449, + "id": 1446, "nodeType": "Block", "src": "1932:31:7", "statements": [ { "expression": { - "id": 1447, + "id": 1444, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1949:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1446, - "id": 1448, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", "src": "1942:14:7" } ] }, "documentation": { - "id": 1442, + "id": 1439, "nodeType": "StructuredDocumentation", "src": "1790:84:7", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1450, + "id": 1447, "implemented": true, "kind": "function", "modifiers": [], @@ -676,23 +676,23 @@ "nameLocation": "1888:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1443, + "id": 1440, "nodeType": "ParameterList", "parameters": [], "src": "1894:2:7" }, "returnParameters": { - "id": 1446, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1447, "src": "1926:4:7", "stateVariable": false, "storageLocation": "default", @@ -701,7 +701,7 @@ "typeString": "bool" }, "typeName": { - "id": 1444, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1926:4:7", @@ -715,7 +715,7 @@ ], "src": "1925:6:7" }, - "scope": 1511, + "scope": 1508, "src": "1879:84:7", "stateMutability": "view", "virtual": true, @@ -723,7 +723,7 @@ }, { "body": { - "id": 1461, + "id": 1458, "nodeType": "Block", "src": "2082:55:7", "statements": [ @@ -731,7 +731,7 @@ "expression": { "arguments": [ { - "id": 1457, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, @@ -744,18 +744,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1455, + "id": 1452, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2101:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1456, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -778,7 +778,7 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1458, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -804,7 +804,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1454, + "id": 1451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -818,7 +818,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1459, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -834,19 +834,19 @@ "typeString": "tuple()" } }, - "id": 1460, + "id": 1457, "nodeType": "ExpressionStatement", "src": "2092:38:7" } ] }, "documentation": { - "id": 1451, + "id": 1448, "nodeType": "StructuredDocumentation", "src": "1969:57:7", "text": " @dev Throws if the contract is paused." }, - "id": 1462, + "id": 1459, "implemented": true, "kind": "function", "modifiers": [], @@ -854,18 +854,18 @@ "nameLocation": "2040:17:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1449, "nodeType": "ParameterList", "parameters": [], "src": "2057:2:7" }, "returnParameters": { - "id": 1453, + "id": 1450, "nodeType": "ParameterList", "parameters": [], "src": "2082:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2031:106:7", "stateMutability": "view", "virtual": true, @@ -873,7 +873,7 @@ }, { "body": { - "id": 1472, + "id": 1469, "nodeType": "Block", "src": "2257:58:7", "statements": [ @@ -884,18 +884,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1467, + "id": 1464, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2275:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1468, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -913,7 +913,7 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1469, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -939,7 +939,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1466, + "id": 1463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -953,7 +953,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1470, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -969,19 +969,19 @@ "typeString": "tuple()" } }, - "id": 1471, + "id": 1468, "nodeType": "ExpressionStatement", "src": "2267:41:7" } ] }, "documentation": { - "id": 1463, + "id": 1460, "nodeType": "StructuredDocumentation", "src": "2143:61:7", "text": " @dev Throws if the contract is not paused." }, - "id": 1473, + "id": 1470, "implemented": true, "kind": "function", "modifiers": [], @@ -989,18 +989,18 @@ "nameLocation": "2218:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1464, + "id": 1461, "nodeType": "ParameterList", "parameters": [], "src": "2232:2:7" }, "returnParameters": { - "id": 1465, + "id": 1462, "nodeType": "ParameterList", "parameters": [], "src": "2257:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2209:106:7", "stateMutability": "view", "virtual": true, @@ -1008,23 +1008,23 @@ }, { "body": { - "id": 1488, + "id": 1485, "nodeType": "Block", "src": "2499:66:7", "statements": [ { "expression": { - "id": 1481, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1479, + "id": 1476, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2509:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1035,7 +1035,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1480, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, @@ -1055,7 +1055,7 @@ "typeString": "bool" } }, - "id": 1482, + "id": 1479, "nodeType": "ExpressionStatement", "src": "2509:14:7" }, @@ -1066,18 +1066,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1484, + "id": 1481, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2545:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1485, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -1101,18 +1101,18 @@ "typeString": "address" } ], - "id": 1483, + "id": 1480, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1398, + "referencedDeclaration": 1395, "src": "2538:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1486, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -1128,33 +1128,33 @@ "typeString": "tuple()" } }, - "id": 1487, + "id": 1484, "nodeType": "EmitStatement", "src": "2533:25:7" } ] }, "documentation": { - "id": 1474, + "id": 1471, "nodeType": "StructuredDocumentation", "src": "2321:124:7", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1489, + "id": 1486, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1477, + "id": 1474, "kind": "modifierInvocation", "modifierName": { - "id": 1476, + "id": 1473, "name": "whenNotPaused", "nameLocations": [ "2485:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "2485:13:7" }, "nodeType": "ModifierInvocation", @@ -1165,18 +1165,18 @@ "nameLocation": "2459:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1475, + "id": 1472, "nodeType": "ParameterList", "parameters": [], "src": "2465:2:7" }, "returnParameters": { - "id": 1478, + "id": 1475, "nodeType": "ParameterList", "parameters": [], "src": "2499:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2450:115:7", "stateMutability": "nonpayable", "virtual": true, @@ -1184,23 +1184,23 @@ }, { "body": { - "id": 1504, + "id": 1501, "nodeType": "Block", "src": "2745:69:7", "statements": [ { "expression": { - "id": 1497, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1495, + "id": 1492, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2755:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1211,7 +1211,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1496, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, @@ -1231,7 +1231,7 @@ "typeString": "bool" } }, - "id": 1498, + "id": 1495, "nodeType": "ExpressionStatement", "src": "2755:15:7" }, @@ -1242,18 +1242,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1500, + "id": 1497, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2794:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1501, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,18 +1277,18 @@ "typeString": "address" } ], - "id": 1499, + "id": 1496, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, + "referencedDeclaration": 1400, "src": "2785:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1502, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,33 +1304,33 @@ "typeString": "tuple()" } }, - "id": 1503, + "id": 1500, "nodeType": "EmitStatement", "src": "2780:27:7" } ] }, "documentation": { - "id": 1490, + "id": 1487, "nodeType": "StructuredDocumentation", "src": "2571:121:7", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1505, + "id": 1502, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1493, + "id": 1490, "kind": "modifierInvocation", "modifierName": { - "id": 1492, + "id": 1489, "name": "whenPaused", "nameLocations": [ "2734:10:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1441, + "referencedDeclaration": 1438, "src": "2734:10:7" }, "nodeType": "ModifierInvocation", @@ -1341,18 +1341,18 @@ "nameLocation": "2706:8:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1491, + "id": 1488, "nodeType": "ParameterList", "parameters": [], "src": "2714:2:7" }, "returnParameters": { - "id": 1494, + "id": 1491, "nodeType": "ParameterList", "parameters": [], "src": "2745:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2697:117:7", "stateMutability": "nonpayable", "virtual": true, @@ -1361,17 +1361,17 @@ { "constant": false, "documentation": { - "id": 1506, + "id": 1503, "nodeType": "StructuredDocumentation", "src": "2820:254:7", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1510, + "id": 1507, "mutability": "mutable", "name": "__gap", "nameLocation": "3099:5:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "3079:25:7", "stateVariable": true, "storageLocation": "default", @@ -1381,7 +1381,7 @@ }, "typeName": { "baseType": { - "id": 1507, + "id": 1504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3079:7:7", @@ -1390,10 +1390,10 @@ "typeString": "uint256" } }, - "id": 1509, + "id": 1506, "length": { "hexValue": "3439", - "id": 1508, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, @@ -1417,7 +1417,7 @@ "visibility": "private" } ], - "scope": 1512, + "scope": 1509, "src": "677:2430:7", "usedErrors": [] } @@ -1428,21 +1428,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 1512, + "id": 1509, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1385, + "id": 1382, "literals": [ "solidity", "^", @@ -1455,11 +1455,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1386, + "id": 1383, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1893, + "scope": 1509, + "sourceUnit": 1890, "src": "130:41:7", "symbolAliases": [], "unitAlias": "" @@ -1467,20 +1467,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1388, + "id": 1385, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1384, + "scope": 1509, + "sourceUnit": 1381, "src": "172:63:7", "symbolAliases": [ { "foreign": { - "id": 1387, + "id": 1384, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "180:13:7", "typeDescriptions": {} }, @@ -1494,31 +1494,31 @@ "baseContracts": [ { "baseName": { - "id": 1390, + "id": 1387, "name": "Initializable", "nameLocations": [ "718:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "718:13:7" }, - "id": 1391, + "id": 1388, "nodeType": "InheritanceSpecifier", "src": "718:13:7" }, { "baseName": { - "id": 1392, + "id": 1389, "name": "ContextUpgradeable", "nameLocations": [ "733:18:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "733:18:7" }, - "id": 1393, + "id": 1390, "nodeType": "InheritanceSpecifier", "src": "733:18:7" } @@ -1527,17 +1527,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1389, + "id": 1386, "nodeType": "StructuredDocumentation", "src": "237:439:7", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1511, + "id": 1508, "linearizedBaseContracts": [ - 1511, - 1892, - 1383 + 1508, + 1889, + 1380 ], "name": "PausableUpgradeable", "nameLocation": "695:19:7", @@ -1546,29 +1546,29 @@ { "anonymous": false, "documentation": { - "id": 1394, + "id": 1391, "nodeType": "StructuredDocumentation", "src": "758:73:7", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1398, + "id": 1395, "name": "Paused", "nameLocation": "842:6:7", "nodeType": "EventDefinition", "parameters": { - "id": 1397, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1393, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "857:7:7", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1395, "src": "849:15:7", "stateVariable": false, "storageLocation": "default", @@ -1577,7 +1577,7 @@ "typeString": "address" }, "typeName": { - "id": 1395, + "id": 1392, "name": "address", "nodeType": "ElementaryTypeName", "src": "849:7:7", @@ -1597,29 +1597,29 @@ { "anonymous": false, "documentation": { - "id": 1399, + "id": 1396, "nodeType": "StructuredDocumentation", "src": "872:70:7", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1403, + "id": 1400, "name": "Unpaused", "nameLocation": "953:8:7", "nodeType": "EventDefinition", "parameters": { - "id": 1402, + "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1401, + "id": 1398, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "970:7:7", "nodeType": "VariableDeclaration", - "scope": 1403, + "scope": 1400, "src": "962:15:7", "stateVariable": false, "storageLocation": "default", @@ -1628,7 +1628,7 @@ "typeString": "address" }, "typeName": { - "id": 1400, + "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "962:7:7", @@ -1647,12 +1647,12 @@ }, { "constant": false, - "id": 1405, + "id": 1402, "mutability": "mutable", "name": "_paused", "nameLocation": "998:7:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "985:20:7", "stateVariable": true, "storageLocation": "default", @@ -1661,7 +1661,7 @@ "typeString": "bool" }, "typeName": { - "id": 1404, + "id": 1401, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:7", @@ -1674,7 +1674,7 @@ }, { "body": { - "id": 1414, + "id": 1411, "nodeType": "Block", "src": "1137:44:7", "statements": [ @@ -1683,18 +1683,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1411, + "id": 1408, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, + "referencedDeclaration": 1422, "src": "1147:25:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1412, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": false, @@ -1710,33 +1710,33 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1410, "nodeType": "ExpressionStatement", "src": "1147:27:7" } ] }, "documentation": { - "id": 1406, + "id": 1403, "nodeType": "StructuredDocumentation", "src": "1012:67:7", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1415, + "id": 1412, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1409, + "id": 1406, "kind": "modifierInvocation", "modifierName": { - "id": 1408, + "id": 1405, "name": "onlyInitializing", "nameLocations": [ "1120:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1120:16:7" }, "nodeType": "ModifierInvocation", @@ -1747,18 +1747,18 @@ "nameLocation": "1093:15:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1404, "nodeType": "ParameterList", "parameters": [], "src": "1108:2:7" }, "returnParameters": { - "id": 1410, + "id": 1407, "nodeType": "ParameterList", "parameters": [], "src": "1137:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1084:97:7", "stateMutability": "nonpayable", "virtual": false, @@ -1766,23 +1766,23 @@ }, { "body": { - "id": 1424, + "id": 1421, "nodeType": "Block", "src": "1250:32:7", "statements": [ { "expression": { - "id": 1422, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1420, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1260:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1793,7 +1793,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1421, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, @@ -1813,27 +1813,27 @@ "typeString": "bool" } }, - "id": 1423, + "id": 1420, "nodeType": "ExpressionStatement", "src": "1260:15:7" } ] }, - "id": 1425, + "id": 1422, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1418, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1417, + "id": 1414, "name": "onlyInitializing", "nameLocations": [ "1233:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1233:16:7" }, "nodeType": "ModifierInvocation", @@ -1844,18 +1844,18 @@ "nameLocation": "1196:25:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1416, + "id": 1413, "nodeType": "ParameterList", "parameters": [], "src": "1221:2:7" }, "returnParameters": { - "id": 1419, + "id": 1416, "nodeType": "ParameterList", "parameters": [], "src": "1250:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1187:95:7", "stateMutability": "nonpayable", "virtual": false, @@ -1863,7 +1863,7 @@ }, { "body": { - "id": 1432, + "id": 1429, "nodeType": "Block", "src": "1493:47:7", "statements": [ @@ -1872,18 +1872,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1428, + "id": 1425, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1462, + "referencedDeclaration": 1459, "src": "1503:17:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1429, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, @@ -1899,29 +1899,29 @@ "typeString": "tuple()" } }, - "id": 1430, + "id": 1427, "nodeType": "ExpressionStatement", "src": "1503:19:7" }, { - "id": 1431, + "id": 1428, "nodeType": "PlaceholderStatement", "src": "1532:1:7" } ] }, "documentation": { - "id": 1426, + "id": 1423, "nodeType": "StructuredDocumentation", "src": "1288:175:7", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1433, + "id": 1430, "name": "whenNotPaused", "nameLocation": "1477:13:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1427, + "id": 1424, "nodeType": "ParameterList", "parameters": [], "src": "1490:2:7" @@ -1932,7 +1932,7 @@ }, { "body": { - "id": 1440, + "id": 1437, "nodeType": "Block", "src": "1740:44:7", "statements": [ @@ -1941,18 +1941,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1436, + "id": 1433, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1470, "src": "1750:14:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1437, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, @@ -1968,29 +1968,29 @@ "typeString": "tuple()" } }, - "id": 1438, + "id": 1435, "nodeType": "ExpressionStatement", "src": "1750:16:7" }, { - "id": 1439, + "id": 1436, "nodeType": "PlaceholderStatement", "src": "1776:1:7" } ] }, "documentation": { - "id": 1434, + "id": 1431, "nodeType": "StructuredDocumentation", "src": "1546:167:7", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1441, + "id": 1438, "name": "whenPaused", "nameLocation": "1727:10:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1432, "nodeType": "ParameterList", "parameters": [], "src": "1737:2:7" @@ -2001,38 +2001,38 @@ }, { "body": { - "id": 1449, + "id": 1446, "nodeType": "Block", "src": "1932:31:7", "statements": [ { "expression": { - "id": 1447, + "id": 1444, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1949:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1446, - "id": 1448, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", "src": "1942:14:7" } ] }, "documentation": { - "id": 1442, + "id": 1439, "nodeType": "StructuredDocumentation", "src": "1790:84:7", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1450, + "id": 1447, "implemented": true, "kind": "function", "modifiers": [], @@ -2040,23 +2040,23 @@ "nameLocation": "1888:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1443, + "id": 1440, "nodeType": "ParameterList", "parameters": [], "src": "1894:2:7" }, "returnParameters": { - "id": 1446, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1447, "src": "1926:4:7", "stateVariable": false, "storageLocation": "default", @@ -2065,7 +2065,7 @@ "typeString": "bool" }, "typeName": { - "id": 1444, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1926:4:7", @@ -2079,7 +2079,7 @@ ], "src": "1925:6:7" }, - "scope": 1511, + "scope": 1508, "src": "1879:84:7", "stateMutability": "view", "virtual": true, @@ -2087,7 +2087,7 @@ }, { "body": { - "id": 1461, + "id": 1458, "nodeType": "Block", "src": "2082:55:7", "statements": [ @@ -2095,7 +2095,7 @@ "expression": { "arguments": [ { - "id": 1457, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, @@ -2108,18 +2108,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1455, + "id": 1452, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2101:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1456, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -2142,7 +2142,7 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1458, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -2168,7 +2168,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1454, + "id": 1451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2182,7 +2182,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1459, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -2198,19 +2198,19 @@ "typeString": "tuple()" } }, - "id": 1460, + "id": 1457, "nodeType": "ExpressionStatement", "src": "2092:38:7" } ] }, "documentation": { - "id": 1451, + "id": 1448, "nodeType": "StructuredDocumentation", "src": "1969:57:7", "text": " @dev Throws if the contract is paused." }, - "id": 1462, + "id": 1459, "implemented": true, "kind": "function", "modifiers": [], @@ -2218,18 +2218,18 @@ "nameLocation": "2040:17:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1449, "nodeType": "ParameterList", "parameters": [], "src": "2057:2:7" }, "returnParameters": { - "id": 1453, + "id": 1450, "nodeType": "ParameterList", "parameters": [], "src": "2082:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2031:106:7", "stateMutability": "view", "virtual": true, @@ -2237,7 +2237,7 @@ }, { "body": { - "id": 1472, + "id": 1469, "nodeType": "Block", "src": "2257:58:7", "statements": [ @@ -2248,18 +2248,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1467, + "id": 1464, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2275:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1468, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -2277,7 +2277,7 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1469, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -2303,7 +2303,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1466, + "id": 1463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2317,7 +2317,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1470, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -2333,19 +2333,19 @@ "typeString": "tuple()" } }, - "id": 1471, + "id": 1468, "nodeType": "ExpressionStatement", "src": "2267:41:7" } ] }, "documentation": { - "id": 1463, + "id": 1460, "nodeType": "StructuredDocumentation", "src": "2143:61:7", "text": " @dev Throws if the contract is not paused." }, - "id": 1473, + "id": 1470, "implemented": true, "kind": "function", "modifiers": [], @@ -2353,18 +2353,18 @@ "nameLocation": "2218:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1464, + "id": 1461, "nodeType": "ParameterList", "parameters": [], "src": "2232:2:7" }, "returnParameters": { - "id": 1465, + "id": 1462, "nodeType": "ParameterList", "parameters": [], "src": "2257:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2209:106:7", "stateMutability": "view", "virtual": true, @@ -2372,23 +2372,23 @@ }, { "body": { - "id": 1488, + "id": 1485, "nodeType": "Block", "src": "2499:66:7", "statements": [ { "expression": { - "id": 1481, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1479, + "id": 1476, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2509:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2399,7 +2399,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1480, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, @@ -2419,7 +2419,7 @@ "typeString": "bool" } }, - "id": 1482, + "id": 1479, "nodeType": "ExpressionStatement", "src": "2509:14:7" }, @@ -2430,18 +2430,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1484, + "id": 1481, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2545:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1485, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -2465,18 +2465,18 @@ "typeString": "address" } ], - "id": 1483, + "id": 1480, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1398, + "referencedDeclaration": 1395, "src": "2538:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1486, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -2492,33 +2492,33 @@ "typeString": "tuple()" } }, - "id": 1487, + "id": 1484, "nodeType": "EmitStatement", "src": "2533:25:7" } ] }, "documentation": { - "id": 1474, + "id": 1471, "nodeType": "StructuredDocumentation", "src": "2321:124:7", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1489, + "id": 1486, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1477, + "id": 1474, "kind": "modifierInvocation", "modifierName": { - "id": 1476, + "id": 1473, "name": "whenNotPaused", "nameLocations": [ "2485:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "2485:13:7" }, "nodeType": "ModifierInvocation", @@ -2529,18 +2529,18 @@ "nameLocation": "2459:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1475, + "id": 1472, "nodeType": "ParameterList", "parameters": [], "src": "2465:2:7" }, "returnParameters": { - "id": 1478, + "id": 1475, "nodeType": "ParameterList", "parameters": [], "src": "2499:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2450:115:7", "stateMutability": "nonpayable", "virtual": true, @@ -2548,23 +2548,23 @@ }, { "body": { - "id": 1504, + "id": 1501, "nodeType": "Block", "src": "2745:69:7", "statements": [ { "expression": { - "id": 1497, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1495, + "id": 1492, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2755:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2575,7 +2575,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1496, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, @@ -2595,7 +2595,7 @@ "typeString": "bool" } }, - "id": 1498, + "id": 1495, "nodeType": "ExpressionStatement", "src": "2755:15:7" }, @@ -2606,18 +2606,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1500, + "id": 1497, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2794:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1501, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": false, @@ -2641,18 +2641,18 @@ "typeString": "address" } ], - "id": 1499, + "id": 1496, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, + "referencedDeclaration": 1400, "src": "2785:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1502, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -2668,33 +2668,33 @@ "typeString": "tuple()" } }, - "id": 1503, + "id": 1500, "nodeType": "EmitStatement", "src": "2780:27:7" } ] }, "documentation": { - "id": 1490, + "id": 1487, "nodeType": "StructuredDocumentation", "src": "2571:121:7", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1505, + "id": 1502, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1493, + "id": 1490, "kind": "modifierInvocation", "modifierName": { - "id": 1492, + "id": 1489, "name": "whenPaused", "nameLocations": [ "2734:10:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1441, + "referencedDeclaration": 1438, "src": "2734:10:7" }, "nodeType": "ModifierInvocation", @@ -2705,18 +2705,18 @@ "nameLocation": "2706:8:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1491, + "id": 1488, "nodeType": "ParameterList", "parameters": [], "src": "2714:2:7" }, "returnParameters": { - "id": 1494, + "id": 1491, "nodeType": "ParameterList", "parameters": [], "src": "2745:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2697:117:7", "stateMutability": "nonpayable", "virtual": true, @@ -2725,17 +2725,17 @@ { "constant": false, "documentation": { - "id": 1506, + "id": 1503, "nodeType": "StructuredDocumentation", "src": "2820:254:7", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1510, + "id": 1507, "mutability": "mutable", "name": "__gap", "nameLocation": "3099:5:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "3079:25:7", "stateVariable": true, "storageLocation": "default", @@ -2745,7 +2745,7 @@ }, "typeName": { "baseType": { - "id": 1507, + "id": 1504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3079:7:7", @@ -2754,10 +2754,10 @@ "typeString": "uint256" } }, - "id": 1509, + "id": 1506, "length": { "hexValue": "3439", - "id": 1508, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, @@ -2781,7 +2781,7 @@ "visibility": "private" } ], - "scope": 1512, + "scope": 1509, "src": "677:2430:7", "usedErrors": [] } @@ -2794,5 +2794,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.553Z" + "updatedAt": "2024-06-27T12:24:25.261Z" } \ No newline at end of file From 07f7d44d23e65638ad7adafee9a0bdba4d95f309 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 08:37:10 +0100 Subject: [PATCH 05/25] fix: update refundable to remove protocol fee during refund --- contracts/Gateway.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/Gateway.sol b/contracts/Gateway.sol index 88ab722..d01585d 100644 --- a/contracts/Gateway.sol +++ b/contracts/Gateway.sol @@ -211,7 +211,7 @@ contract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable { order[_orderId].currentBPS = 0; // deduct fee from order amount - uint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee; + uint256 refundAmount = order[_orderId].amount - order[_orderId].protocolFee - _fee; // transfer refund amount and sender fee to the refund address IERC20(order[_orderId].token).transfer( From 537703b6a9072531d49a45e149f3dd82f6d3b032 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 08:37:49 +0100 Subject: [PATCH 06/25] chore: update readme to support multiple upgrade --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index e7e37b3..f5a8c78 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,15 @@ tronbox migrate -f 1 --to 1 --network ```bash npx hardhat run scripts/upgrade.ts --network +# upgrade accorss all EVM chains +npx hardhat run scripts/upgrade.ts --network +arbitrumOne && npx hardhat run scripts/upgrade.ts --network +base && npx hardhat run scripts/upgrade.ts --network +bsc && npx hardhat run scripts/upgrade.ts --network +polygon && npx hardhat run scripts/upgrade.ts --network +optimisticEthereum && npx hardhat run scripts/upgrade.ts --network +scroll + # for Tron network, tronbox migrate -f 2 --to 2 --network ``` From 17a8a2013d6e259c8ab241a193d10a829e83bba6 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 15:25:16 +0100 Subject: [PATCH 07/25] fix: remove protocol fee from refundable amount --- contracts/Gateway.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/Gateway.sol b/contracts/Gateway.sol index d01585d..c1c5801 100644 --- a/contracts/Gateway.sol +++ b/contracts/Gateway.sol @@ -211,7 +211,7 @@ contract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable { order[_orderId].currentBPS = 0; // deduct fee from order amount - uint256 refundAmount = order[_orderId].amount - order[_orderId].protocolFee - _fee; + uint256 refundAmount = order[_orderId].amount - _fee; // transfer refund amount and sender fee to the refund address IERC20(order[_orderId].token).transfer( From 716086ddb681cddaa11bac080fb94b4f2f55b011 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 15:26:14 +0100 Subject: [PATCH 08/25] chore: refractor upgrade.ts to heck if signer balance is 0 it should throw --- scripts/upgrade.ts | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index 0e1af66..8ae6b3d 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -4,17 +4,31 @@ import { NETWORKS } from "./config"; const networkConfig = NETWORKS[network.config.chainId as keyof typeof NETWORKS]; async function main() { - const proxyContractAddress = networkConfig.GATEWAY_CONTRACT; - const factory = await ethers.getContractFactory("Gateway"); - const contract = await upgrades.upgradeProxy( - proxyContractAddress, - factory - ); + try { + const [signer] = await ethers.getSigners(); // Get the signer (the account performing the upgrade) + const balance = await signer.getBalance(); // Get the balance of the signer's address - console.log("✅ Upgraded Gateway: ", contract.address); + // Check if the balance is exactly 1 ETH + if (balance.eq(0)) { + throw new Error("Balance is exactly 1 ETH. Upgrade aborted."); + } + + const proxyContractAddress = networkConfig.GATEWAY_CONTRACT; + const factory = await ethers.getContractFactory("Gateway"); + const contract = await upgrades.upgradeProxy(proxyContractAddress, factory); + + console.log("✅ Upgraded Gateway: ", contract.address); + } catch (error) { + if (error instanceof Error) { + console.error("❌ Upgrade failed: ", error.message); + } else { + console.error("❌ Upgrade failed: Unknown error occurred"); + } + process.exitCode = 1; + } } main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); \ No newline at end of file + console.error(error); + process.exitCode = 1; +}); From 86bec77d6ab7db51b8382e9042cb22f1e5507b59 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 15:26:22 +0100 Subject: [PATCH 09/25] chore: builds --- artifacts/build-info/f2f315820550fce3188425b80157c6c8.json | 1 + artifacts/contracts/Gateway.sol/Gateway.dbg.json | 2 +- artifacts/contracts/Gateway.sol/Gateway.json | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 artifacts/build-info/f2f315820550fce3188425b80157c6c8.json diff --git a/artifacts/build-info/f2f315820550fce3188425b80157c6c8.json b/artifacts/build-info/f2f315820550fce3188425b80157c6c8.json new file mode 100644 index 0000000..45e06ed --- /dev/null +++ b/artifacts/build-info/f2f315820550fce3188425b80157c6c8.json @@ -0,0 +1 @@ +{"id":"f2f315820550fce3188425b80157c6c8","_format":"hh-sol-build-info-1","solcVersion":"0.8.18","solcLongVersion":"0.8.18+commit.87f61d96","input":{"language":"Solidity","sources":{"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n address private _pendingOwner;\n\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n function __Ownable2Step_init() internal onlyInitializing {\n __Ownable_init_unchained();\n }\n\n function __Ownable2Step_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Returns the address of the pending owner.\n */\n function pendingOwner() public view virtual returns (address) {\n return _pendingOwner;\n }\n\n /**\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual override onlyOwner {\n _pendingOwner = newOwner;\n emit OwnershipTransferStarted(owner(), newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual override {\n delete _pendingOwner;\n super._transferOwnership(newOwner);\n }\n\n /**\n * @dev The new owner accepts the ownership transfer.\n */\n function acceptOwnership() public virtual {\n address sender = _msgSender();\n require(pendingOwner() == sender, \"Ownable2Step: caller is not the new owner\");\n _transferOwnership(sender);\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n function __Ownable_init() internal onlyInitializing {\n __Ownable_init_unchained();\n }\n\n function __Ownable_init_unchained() internal onlyInitializing {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n * @custom:oz-retyped-from bool\n */\n uint8 private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint8 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n * constructor.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n bool isTopLevelCall = !_initializing;\n require(\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n \"Initializable: contract is already initialized\"\n );\n _initialized = 1;\n if (isTopLevelCall) {\n _initializing = true;\n }\n _;\n if (isTopLevelCall) {\n _initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: setting the version to 255 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint8 version) {\n require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n _initialized = version;\n _initializing = true;\n _;\n _initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n require(_initializing, \"Initializable: contract is not initializing\");\n _;\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n require(!_initializing, \"Initializable: contract is initializing\");\n if (_initialized != type(uint8).max) {\n _initialized = type(uint8).max;\n emit Initialized(type(uint8).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint8) {\n return _initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _initializing;\n }\n}\n"},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n function __Pausable_init() internal onlyInitializing {\n __Pausable_init_unchained();\n }\n\n function __Pausable_init_unchained() internal onlyInitializing {\n _paused = false;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n _requireNotPaused();\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n _requirePaused();\n _;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Throws if the contract is paused.\n */\n function _requireNotPaused() internal view virtual {\n require(!paused(), \"Pausable: paused\");\n }\n\n /**\n * @dev Throws if the contract is not paused.\n */\n function _requirePaused() internal view virtual {\n require(paused(), \"Pausable: not paused\");\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n *\n * Furthermore, `isContract` will also return true if the target contract within\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n * which only has an effect at the end of a transaction.\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason or using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"contracts/Gateway.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\n\t\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\n\t\tliquidityProviderAmount -= protocolFee;\n\n\t\t// transfer protocol fee\n\t\tIERC20(token).transfer(treasuryAddress, protocolFee);\n\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n"},"contracts/GatewaySettingManager.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\n\n/**\n * @title GatewaySettingManager\n * @dev This contract manages the settings and configurations for the Gateway protocol.\n */\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\n\tuint256 internal MAX_BPS;\n\tuint64 internal protocolFeePercent;\n\taddress internal treasuryAddress;\n\taddress internal _aggregatorAddress;\n\tmapping(address => uint256) internal _isTokenSupported;\n\n\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\n\tuint256[50] private __gap;\n\n\n\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\n\tevent ProtocolFeeUpdated(uint64 protocolFee);\n\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\n\tevent SetFeeRecipient(address indexed treasuryAddress);\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\n\t/**\n\t * @dev Sets the boolean value for a specific setting.\n\t * @param what The setting to be updated.\n\t * @param value The address or value associated with the setting.\n\t * @param status The boolean value to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\trequire(status == 1 || status == 2, 'Gateway: invalid status');\n\t\tif (what == 'token') {\n\t\t\t_isTokenSupported[value] = status;\n\t\t\temit SettingManagerBool(what, value, status);\n\t\t}\n\t}\n\n\t/**\n\t * @dev Updates the protocol fee percentage.\n\t * @param _protocolFeePercent The new protocol fee percentage to be set.\n\t */\n\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\n\t\tprotocolFeePercent = _protocolFeePercent;\n\t\temit ProtocolFeeUpdated(_protocolFeePercent);\n\t}\n\n\t/**\n\t * @dev Updates a protocol address.\n\t * @param what The address type to be updated (treasury or aggregator).\n\t * @param value The new address to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\tbool updated;\n\t\tif (what == 'treasury') {\n\t\t\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\n\t\t\ttreasuryAddress = value;\n\t\t\tupdated = true;\n\t\t} else if (what == 'aggregator') {\n\t\t\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\n\t\t\t_aggregatorAddress = value;\n\t\t\tupdated = true;\n\t\t}\n\t\tif (updated) {\n\t\t\temit ProtocolAddressUpdated(what, value);\n\t\t}\n\t}\n}\n"},"contracts/interfaces/IGateway.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';\n\n/**\n * @title IGateway\n * @notice Interface for the Gateway contract.\n */\ninterface IGateway {\n\t/* ##################################################################\n EVENTS\n ################################################################## */\n\t/**\n\t * @dev Emitted when a deposit is made.\n\t * @param sender The address of the sender.\n\t * @param token The address of the deposited token.\n\t * @param amount The amount of the deposit.\n\t * @param orderId The ID of the order.\n\t * @param rate The rate at which the deposit is made.\n\t * @param messageHash The hash of the message.\n\t */\n\tevent OrderCreated(\n\t\taddress indexed sender,\n\t\taddress indexed token,\n\t\tuint256 indexed amount,\n\t\tuint256 protocolFee,\n\t\tbytes32 orderId,\n\t\tuint256 rate,\n\t\tstring messageHash\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator settles a transaction.\n\t * @param splitOrderId The ID of the split order.\n\t * @param orderId The ID of the order.\n\t * @param liquidityProvider The address of the liquidity provider.\n\t * @param settlePercent The percentage at which the transaction is settled.\n\t */\n\tevent OrderSettled(\n\t\tbytes32 splitOrderId,\n\t\tbytes32 indexed orderId,\n\t\taddress indexed liquidityProvider,\n\t\tuint96 settlePercent\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator refunds a transaction.\n\t * @param fee The fee deducted from the refund amount.\n\t * @param orderId The ID of the order.\n\t */\n\tevent OrderRefunded(uint256 fee, bytes32 indexed orderId);\n\n\t/**\n\t * @dev Emitted when the sender's fee is transferred.\n\t * @param sender The address of the sender.\n\t * @param amount The amount of the fee transferred.\n\t */\n\tevent SenderFeeTransferred(address indexed sender, uint256 indexed amount);\n\n\t/* ##################################################################\n STRUCTS\n ################################################################## */\n\t/**\n\t * @dev Struct representing an order.\n\t * @param sender The address of the sender.\n\t * @param token The address of the token.\n\t * @param senderFeeRecipient The address of the sender fee recipient.\n\t * @param senderFee The fee to be paid to the sender fee recipient.\n\t * @param protocolFee The protocol fee to be paid.\n\t * @param isFulfilled Whether the order is fulfilled.\n\t * @param isRefunded Whether the order is refunded.\n\t * @param refundAddress The address to which the refund is made.\n\t * @param currentBPS The current basis points.\n\t * @param amount The amount of the order.\n\t */\n\tstruct Order {\n\t\taddress sender;\n\t\taddress token;\n\t\taddress senderFeeRecipient;\n\t\tuint256 senderFee;\n\t\tuint256 protocolFee;\n\t\tbool isFulfilled;\n\t\tbool isRefunded;\n\t\taddress refundAddress;\n\t\tuint96 currentBPS;\n\t\tuint256 amount;\n\t}\n\n\t/* ##################################################################\n EXTERNAL CALLS\n ################################################################## */\n\t/**\n\t * @notice Locks the sender's amount of token into Gateway.\n\t * @dev Requirements:\n\t * - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n\t * - `_token` must be an acceptable token. See {isTokenSupported}.\n\t * - `amount` must be greater than minimum.\n\t * - `_refundAddress` refund address must not be zero address.\n\t * @param _token The address of the token.\n\t * @param _amount The amount in the decimal of `_token` to be locked.\n\t * @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n\t * @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n\t * @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n\t * @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n\t * @param messageHash The hash of the message.\n\t * @return _orderId The ID of the order.\n\t */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external returns (bytes32 _orderId);\n\n\t/**\n\t * @notice Settles a transaction and distributes rewards accordingly.\n\t * @param _splitOrderId The ID of the split order.\n\t * @param _orderId The ID of the transaction.\n\t * @param _liquidityProvider The address of the liquidity provider.\n\t * @param _settlePercent The rate at which the transaction is settled.\n\t * @return bool the settlement is successful.\n\t */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external returns (bool);\n\n\t/**\n\t * @notice Refunds to the specified refundable address.\n\t * @dev Requirements:\n\t * - Only aggregators can call this function.\n\t * @param _fee The amount to be deducted from the amount to be refunded.\n\t * @param _orderId The ID of the transaction.\n\t * @return bool the refund is successful.\n\t */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external returns (bool);\n\n\t/**\n\t * @notice Checks if a token is supported by Gateway.\n\t * @param _token The address of the token to check.\n\t * @return bool the token is supported.\n\t */\n\tfunction isTokenSupported(address _token) external view returns (bool);\n\n\t/**\n\t * @notice Gets the details of an order.\n\t * @param _orderId The ID of the order.\n\t * @return Order The order details.\n\t */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory);\n\n\t/**\n\t * @notice Gets the fee details of Gateway.\n\t * @return protocolReward The protocol reward amount.\n\t * @return max_bps The maximum basis points.\n\t */\n\tfunction getFeeDetails() external view returns (uint64 protocolReward, uint256 max_bps);\n}\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","storageLayout","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"sources":{"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[917],"Initializable":[408],"Ownable2StepUpgradeable":[106],"OwnableUpgradeable":[239]},"id":107,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:0"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":107,"sourceUnit":240,"src":"132:34:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":107,"sourceUnit":409,"src":"167:63:0","symbolAliases":[{"foreign":{"id":3,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"175:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6,"name":"Initializable","nameLocations":["719:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":408,"src":"719:13:0"},"id":7,"nodeType":"InheritanceSpecifier","src":"719:13:0"},{"baseName":{"id":8,"name":"OwnableUpgradeable","nameLocations":["734:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":239,"src":"734:18:0"},"id":9,"nodeType":"InheritanceSpecifier","src":"734:18:0"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5,"nodeType":"StructuredDocumentation","src":"232:441:0","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":106,"linearizedBaseContracts":[106,239,917,408],"name":"Ownable2StepUpgradeable","nameLocation":"692:23:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":11,"mutability":"mutable","name":"_pendingOwner","nameLocation":"775:13:0","nodeType":"VariableDeclaration","scope":106,"src":"759:29:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":17,"name":"OwnershipTransferStarted","nameLocation":"801:24:0","nodeType":"EventDefinition","parameters":{"id":16,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"842:13:0","nodeType":"VariableDeclaration","scope":17,"src":"826:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"873:8:0","nodeType":"VariableDeclaration","scope":17,"src":"857:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14,"name":"address","nodeType":"ElementaryTypeName","src":"857:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"825:57:0"},"src":"795:88:0"},{"body":{"id":25,"nodeType":"Block","src":"946:43:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":145,"src":"956:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24,"nodeType":"ExpressionStatement","src":"956:26:0"}]},"id":26,"implemented":true,"kind":"function","modifiers":[{"id":20,"kind":"modifierInvocation","modifierName":{"id":19,"name":"onlyInitializing","nameLocations":["929:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"929:16:0"},"nodeType":"ModifierInvocation","src":"929:16:0"}],"name":"__Ownable2Step_init","nameLocation":"898:19:0","nodeType":"FunctionDefinition","parameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"917:2:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[],"src":"946:0:0"},"scope":106,"src":"889:100:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":31,"nodeType":"Block","src":"1062:7:0","statements":[]},"id":32,"implemented":true,"kind":"function","modifiers":[{"id":29,"kind":"modifierInvocation","modifierName":{"id":28,"name":"onlyInitializing","nameLocations":["1045:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"1045:16:0"},"nodeType":"ModifierInvocation","src":"1045:16:0"}],"name":"__Ownable2Step_init_unchained","nameLocation":"1004:29:0","nodeType":"FunctionDefinition","parameters":{"id":27,"nodeType":"ParameterList","parameters":[],"src":"1033:2:0"},"returnParameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"1062:0:0"},"scope":106,"src":"995:74:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":40,"nodeType":"Block","src":"1206:37:0","statements":[{"expression":{"id":38,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"1223:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":37,"id":39,"nodeType":"Return","src":"1216:20:0"}]},"documentation":{"id":33,"nodeType":"StructuredDocumentation","src":"1074:65:0","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":41,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"1153:12:0","nodeType":"FunctionDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[],"src":"1165:2:0"},"returnParameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41,"src":"1197:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35,"name":"address","nodeType":"ElementaryTypeName","src":"1197:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1196:9:0"},"scope":106,"src":"1144:99:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[213],"body":{"id":60,"nodeType":"Block","src":"1515:99:0","statements":[{"expression":{"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"1525:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"1541:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1525:24:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53,"nodeType":"ExpressionStatement","src":"1525:24:0"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"1589:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"1598:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"1564:24:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":58,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59,"nodeType":"EmitStatement","src":"1559:48:0"}]},"documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"1249:182:0","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":61,"implemented":true,"kind":"function","modifiers":[{"id":48,"kind":"modifierInvocation","modifierName":{"id":47,"name":"onlyOwner","nameLocations":["1505:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"1505:9:0"},"nodeType":"ModifierInvocation","src":"1505:9:0"}],"name":"transferOwnership","nameLocation":"1445:17:0","nodeType":"FunctionDefinition","overrides":{"id":46,"nodeType":"OverrideSpecifier","overrides":[],"src":"1496:8:0"},"parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"newOwner","nameLocation":"1471:8:0","nodeType":"VariableDeclaration","scope":61,"src":"1463:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1462:18:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[],"src":"1515:0:0"},"scope":106,"src":"1436:178:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[233],"body":{"id":77,"nodeType":"Block","src":"1870:81:0","statements":[{"expression":{"id":69,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1880:20:0","subExpression":{"id":68,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"1887:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70,"nodeType":"ExpressionStatement","src":"1880:20:0"},{"expression":{"arguments":[{"id":74,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"1935:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":71,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1910:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$106_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:18:0","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":233,"src":"1910:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1910:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76,"nodeType":"ExpressionStatement","src":"1910:34:0"}]},"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"1620:173:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":78,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1807:18:0","nodeType":"FunctionDefinition","overrides":{"id":66,"nodeType":"OverrideSpecifier","overrides":[],"src":"1861:8:0"},"parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"newOwner","nameLocation":"1834:8:0","nodeType":"VariableDeclaration","scope":78,"src":"1826:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63,"name":"address","nodeType":"ElementaryTypeName","src":"1826:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1825:18:0"},"returnParameters":{"id":67,"nodeType":"ParameterList","parameters":[],"src":"1870:0:0"},"scope":106,"src":"1798:153:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":99,"nodeType":"Block","src":"2073:170:0","statements":[{"assignments":[83],"declarations":[{"constant":false,"id":83,"mutability":"mutable","name":"sender","nameLocation":"2091:6:0","nodeType":"VariableDeclaration","scope":99,"src":"2083:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82,"name":"address","nodeType":"ElementaryTypeName","src":"2083:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":86,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"2100:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2083:29:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":88,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2130:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"2148:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2130:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2156:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""},"value":"Ownable2Step: caller is not the new owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""}],"id":87,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2122:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":93,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":94,"nodeType":"ExpressionStatement","src":"2122:78:0"},{"expression":{"arguments":[{"id":96,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"2229:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":95,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[78],"referencedDeclaration":78,"src":"2210:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":98,"nodeType":"ExpressionStatement","src":"2210:26:0"}]},"documentation":{"id":79,"nodeType":"StructuredDocumentation","src":"1957:69:0","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":100,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"2040:15:0","nodeType":"FunctionDefinition","parameters":{"id":80,"nodeType":"ParameterList","parameters":[],"src":"2055:2:0"},"returnParameters":{"id":81,"nodeType":"ParameterList","parameters":[],"src":"2073:0:0"},"scope":106,"src":"2031:212:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":101,"nodeType":"StructuredDocumentation","src":"2249:254:0","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":105,"mutability":"mutable","name":"__gap","nameLocation":"2528:5:0","nodeType":"VariableDeclaration","scope":106,"src":"2508:25:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":102,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":104,"length":{"hexValue":"3439","id":103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2516:2:0","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2508:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":107,"src":"674:1862:0","usedErrors":[]}],"src":"107:2430:0"},"id":0},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[917],"Initializable":[408],"OwnableUpgradeable":[239]},"id":240,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":108,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:1"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":109,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":240,"sourceUnit":918,"src":"127:41:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":111,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":240,"sourceUnit":409,"src":"169:63:1","symbolAliases":[{"foreign":{"id":110,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"177:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":113,"name":"Initializable","nameLocations":["769:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":408,"src":"769:13:1"},"id":114,"nodeType":"InheritanceSpecifier","src":"769:13:1"},{"baseName":{"id":115,"name":"ContextUpgradeable","nameLocations":["784:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":917,"src":"784:18:1"},"id":116,"nodeType":"InheritanceSpecifier","src":"784:18:1"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":112,"nodeType":"StructuredDocumentation","src":"234:494:1","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":239,"linearizedBaseContracts":[239,917,408],"name":"OwnableUpgradeable","nameLocation":"747:18:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":118,"mutability":"mutable","name":"_owner","nameLocation":"825:6:1","nodeType":"VariableDeclaration","scope":239,"src":"809:22:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":124,"name":"OwnershipTransferred","nameLocation":"844:20:1","nodeType":"EventDefinition","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"881:13:1","nodeType":"VariableDeclaration","scope":124,"src":"865:29:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119,"name":"address","nodeType":"ElementaryTypeName","src":"865:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"912:8:1","nodeType":"VariableDeclaration","scope":124,"src":"896:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"864:57:1"},"src":"838:84:1"},{"body":{"id":133,"nodeType":"Block","src":"1076:43:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":130,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":145,"src":"1086:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":132,"nodeType":"ExpressionStatement","src":"1086:26:1"}]},"documentation":{"id":125,"nodeType":"StructuredDocumentation","src":"928:91:1","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":134,"implemented":true,"kind":"function","modifiers":[{"id":128,"kind":"modifierInvocation","modifierName":{"id":127,"name":"onlyInitializing","nameLocations":["1059:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"1059:16:1"},"nodeType":"ModifierInvocation","src":"1059:16:1"}],"name":"__Ownable_init","nameLocation":"1033:14:1","nodeType":"FunctionDefinition","parameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"1047:2:1"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[],"src":"1076:0:1"},"scope":239,"src":"1024:95:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":144,"nodeType":"Block","src":"1187:49:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":140,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"1216:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":139,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"1197:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"1197:32:1"}]},"id":145,"implemented":true,"kind":"function","modifiers":[{"id":137,"kind":"modifierInvocation","modifierName":{"id":136,"name":"onlyInitializing","nameLocations":["1170:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"1170:16:1"},"nodeType":"ModifierInvocation","src":"1170:16:1"}],"name":"__Ownable_init_unchained","nameLocation":"1134:24:1","nodeType":"FunctionDefinition","parameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"1158:2:1"},"returnParameters":{"id":138,"nodeType":"ParameterList","parameters":[],"src":"1187:0:1"},"scope":239,"src":"1125:111:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"1345:41:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":148,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176,"src":"1355:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":150,"nodeType":"ExpressionStatement","src":"1355:13:1"},{"id":151,"nodeType":"PlaceholderStatement","src":"1378:1:1"}]},"documentation":{"id":146,"nodeType":"StructuredDocumentation","src":"1242:77:1","text":" @dev Throws if called by any account other than the owner."},"id":153,"name":"onlyOwner","nameLocation":"1333:9:1","nodeType":"ModifierDefinition","parameters":{"id":147,"nodeType":"ParameterList","parameters":[],"src":"1342:2:1"},"src":"1324:62:1","virtual":false,"visibility":"internal"},{"body":{"id":161,"nodeType":"Block","src":"1517:30:1","statements":[{"expression":{"id":159,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"1534:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":158,"id":160,"nodeType":"Return","src":"1527:13:1"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"1392:65:1","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":162,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1471:5:1","nodeType":"FunctionDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[],"src":"1476:2:1"},"returnParameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":162,"src":"1508:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1507:9:1"},"scope":239,"src":"1462:85:1","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":175,"nodeType":"Block","src":"1665:85:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":167,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"1683:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1683:7:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":169,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"1694:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1683:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1708:34:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":166,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1675:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":174,"nodeType":"ExpressionStatement","src":"1675:68:1"}]},"documentation":{"id":163,"nodeType":"StructuredDocumentation","src":"1553:62:1","text":" @dev Throws if the sender is not the owner."},"id":176,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1629:11:1","nodeType":"FunctionDefinition","parameters":{"id":164,"nodeType":"ParameterList","parameters":[],"src":"1640:2:1"},"returnParameters":{"id":165,"nodeType":"ParameterList","parameters":[],"src":"1665:0:1"},"scope":239,"src":"1620:130:1","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":189,"nodeType":"Block","src":"2139:47:1","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:1","typeDescriptions":{}}},"id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":182,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"2149:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2149:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":188,"nodeType":"ExpressionStatement","src":"2149:30:1"}]},"documentation":{"id":177,"nodeType":"StructuredDocumentation","src":"1756:324:1","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":190,"implemented":true,"kind":"function","modifiers":[{"id":180,"kind":"modifierInvocation","modifierName":{"id":179,"name":"onlyOwner","nameLocations":["2129:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"2129:9:1"},"nodeType":"ModifierInvocation","src":"2129:9:1"}],"name":"renounceOwnership","nameLocation":"2094:17:1","nodeType":"FunctionDefinition","parameters":{"id":178,"nodeType":"ParameterList","parameters":[],"src":"2111:2:1"},"returnParameters":{"id":181,"nodeType":"ParameterList","parameters":[],"src":"2139:0:1"},"scope":239,"src":"2085:101:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":212,"nodeType":"Block","src":"2405:128:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":199,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"2423:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2443:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2435:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":200,"name":"address","nodeType":"ElementaryTypeName","src":"2435:7:1","typeDescriptions":{}}},"id":203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2435:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2423:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2447:40:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":198,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2415:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2415:73:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"2415:73:1"},{"expression":{"arguments":[{"id":209,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"2517:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":208,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"2498:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"2498:28:1"}]},"documentation":{"id":191,"nodeType":"StructuredDocumentation","src":"2192:138:1","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":213,"implemented":true,"kind":"function","modifiers":[{"id":196,"kind":"modifierInvocation","modifierName":{"id":195,"name":"onlyOwner","nameLocations":["2395:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"2395:9:1"},"nodeType":"ModifierInvocation","src":"2395:9:1"}],"name":"transferOwnership","nameLocation":"2344:17:1","nodeType":"FunctionDefinition","parameters":{"id":194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"newOwner","nameLocation":"2370:8:1","nodeType":"VariableDeclaration","scope":213,"src":"2362:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":192,"name":"address","nodeType":"ElementaryTypeName","src":"2362:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2361:18:1"},"returnParameters":{"id":197,"nodeType":"ParameterList","parameters":[],"src":"2405:0:1"},"scope":239,"src":"2335:198:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":232,"nodeType":"Block","src":"2750:124:1","statements":[{"assignments":[220],"declarations":[{"constant":false,"id":220,"mutability":"mutable","name":"oldOwner","nameLocation":"2768:8:1","nodeType":"VariableDeclaration","scope":232,"src":"2760:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":219,"name":"address","nodeType":"ElementaryTypeName","src":"2760:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":222,"initialValue":{"id":221,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2779:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2760:25:1"},{"expression":{"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":223,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2795:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":224,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"2804:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2795:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":226,"nodeType":"ExpressionStatement","src":"2795:17:1"},{"eventCall":{"arguments":[{"id":228,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220,"src":"2848:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":229,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"2858:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":227,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2827:20:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2827:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":231,"nodeType":"EmitStatement","src":"2822:45:1"}]},"documentation":{"id":214,"nodeType":"StructuredDocumentation","src":"2539:143:1","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":233,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2696:18:1","nodeType":"FunctionDefinition","parameters":{"id":217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":216,"mutability":"mutable","name":"newOwner","nameLocation":"2723:8:1","nodeType":"VariableDeclaration","scope":233,"src":"2715:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":215,"name":"address","nodeType":"ElementaryTypeName","src":"2715:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2714:18:1"},"returnParameters":{"id":218,"nodeType":"ParameterList","parameters":[],"src":"2750:0:1"},"scope":239,"src":"2687:187:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":234,"nodeType":"StructuredDocumentation","src":"2880:254:1","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":238,"mutability":"mutable","name":"__gap","nameLocation":"3159:5:1","nodeType":"VariableDeclaration","scope":239,"src":"3139:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":235,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":237,"length":{"hexValue":"3439","id":236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:1","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3139:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":240,"src":"729:2438:1","usedErrors":[]}],"src":"102:3066:1"},"id":1},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[866],"Initializable":[408]},"id":409,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":241,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:2"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":242,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":409,"sourceUnit":867,"src":"138:44:2","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":243,"nodeType":"StructuredDocumentation","src":"184:2209:2","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":408,"linearizedBaseContracts":[408],"name":"Initializable","nameLocation":"2412:13:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":244,"nodeType":"StructuredDocumentation","src":"2432:109:2","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":246,"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:2","nodeType":"VariableDeclaration","scope":408,"src":"2546:26:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":245,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":247,"nodeType":"StructuredDocumentation","src":"2579:91:2","text":" @dev Indicates that the contract is in the process of being initialized."},"id":249,"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:2","nodeType":"VariableDeclaration","scope":408,"src":"2675:26:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":248,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":250,"nodeType":"StructuredDocumentation","src":"2708:90:2","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":254,"name":"Initialized","nameLocation":"2809:11:2","nodeType":"EventDefinition","parameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":252,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:2","nodeType":"VariableDeclaration","scope":254,"src":"2821:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":251,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:2"},"src":"2803:33:2"},{"body":{"id":309,"nodeType":"Block","src":"3269:483:2","statements":[{"assignments":[258],"declarations":[{"constant":false,"id":258,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:2","nodeType":"VariableDeclaration","scope":309,"src":"3279:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":257,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":261,"initialValue":{"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:2","subExpression":{"id":259,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"3302:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":263,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3347:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":264,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"3365:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:2","subExpression":{"arguments":[{"arguments":[{"id":273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$408","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$408","typeString":"contract Initializable"}],"id":272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":271,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:2","typeDescriptions":{}}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":269,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"3388:18:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$866_$","typeString":"type(library AddressUpgradeable)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3407:10:2","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":554,"src":"3388:29:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":277,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"3436:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3325:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:201:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":285,"nodeType":"ExpressionStatement","src":"3325:201:2"},{"expression":{"id":288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":286,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"3536:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":289,"nodeType":"ExpressionStatement","src":"3536:16:2"},{"condition":{"id":290,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3566:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":296,"nodeType":"IfStatement","src":"3562:65:2","trueBody":{"id":295,"nodeType":"Block","src":"3582:45:2","statements":[{"expression":{"id":293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":291,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"3596:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":294,"nodeType":"ExpressionStatement","src":"3596:20:2"}]}},{"id":297,"nodeType":"PlaceholderStatement","src":"3636:1:2"},{"condition":{"id":298,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3651:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":308,"nodeType":"IfStatement","src":"3647:99:2","trueBody":{"id":307,"nodeType":"Block","src":"3667:79:2","statements":[{"expression":{"id":301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":299,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"3681:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":302,"nodeType":"ExpressionStatement","src":"3681:21:2"},{"eventCall":{"arguments":[{"hexValue":"31","id":304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":303,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3721:11:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":306,"nodeType":"EmitStatement","src":"3716:19:2"}]}}]},"documentation":{"id":255,"nodeType":"StructuredDocumentation","src":"2842:399:2","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"id":310,"name":"initializer","nameLocation":"3255:11:2","nodeType":"ModifierDefinition","parameters":{"id":256,"nodeType":"ParameterList","parameters":[],"src":"3266:2:2"},"src":"3246:506:2","virtual":false,"visibility":"internal"},{"body":{"id":342,"nodeType":"Block","src":"4863:255:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:2","subExpression":{"id":316,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"4882:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":318,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4899:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":319,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"4914:7:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":315,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4873:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:99:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":324,"nodeType":"ExpressionStatement","src":"4873:99:2"},{"expression":{"id":327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":325,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4982:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":326,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"4997:7:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":328,"nodeType":"ExpressionStatement","src":"4982:22:2"},{"expression":{"id":331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":329,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"5014:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":332,"nodeType":"ExpressionStatement","src":"5014:20:2"},{"id":333,"nodeType":"PlaceholderStatement","src":"5044:1:2"},{"expression":{"id":336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":334,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"5055:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":337,"nodeType":"ExpressionStatement","src":"5055:21:2"},{"eventCall":{"arguments":[{"id":339,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"5103:7:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":338,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"5091:11:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":341,"nodeType":"EmitStatement","src":"5086:25:2"}]},"documentation":{"id":311,"nodeType":"StructuredDocumentation","src":"3758:1062:2","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":343,"name":"reinitializer","nameLocation":"4834:13:2","nodeType":"ModifierDefinition","parameters":{"id":314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":313,"mutability":"mutable","name":"version","nameLocation":"4854:7:2","nodeType":"VariableDeclaration","scope":343,"src":"4848:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":312,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:2"},"src":"4825:293:2","virtual":false,"visibility":"internal"},{"body":{"id":352,"nodeType":"Block","src":"5356:97:2","statements":[{"expression":{"arguments":[{"id":347,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"5374:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":346,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5366:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:69:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":350,"nodeType":"ExpressionStatement","src":"5366:69:2"},{"id":351,"nodeType":"PlaceholderStatement","src":"5445:1:2"}]},"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"5124:199:2","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":353,"name":"onlyInitializing","nameLocation":"5337:16:2","nodeType":"ModifierDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[],"src":"5353:2:2"},"src":"5328:125:2","virtual":false,"visibility":"internal"},{"body":{"id":388,"nodeType":"Block","src":"5988:231:2","statements":[{"expression":{"arguments":[{"id":359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:2","subExpression":{"id":358,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"6007:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5998:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:66:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":362,"nodeType":"ExpressionStatement","src":"5998:66:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":363,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"6078:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":365,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":364,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:11:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6106:3:2","memberName":"max","nodeType":"MemberAccess","src":"6094:15:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":387,"nodeType":"IfStatement","src":"6074:139:2","trueBody":{"id":386,"nodeType":"Block","src":"6111:102:2","statements":[{"expression":{"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":370,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"6125:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":372,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":371,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:11:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:3:2","memberName":"max","nodeType":"MemberAccess","src":"6140:15:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":377,"nodeType":"ExpressionStatement","src":"6125:30:2"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":380,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":379,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:11:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6198:3:2","memberName":"max","nodeType":"MemberAccess","src":"6186:15:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":378,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"6174:11:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":385,"nodeType":"EmitStatement","src":"6169:33:2"}]}}]},"documentation":{"id":354,"nodeType":"StructuredDocumentation","src":"5459:475:2","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":389,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:2","nodeType":"FunctionDefinition","parameters":{"id":355,"nodeType":"ParameterList","parameters":[],"src":"5968:2:2"},"returnParameters":{"id":356,"nodeType":"ParameterList","parameters":[],"src":"5988:0:2"},"scope":408,"src":"5939:280:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":397,"nodeType":"Block","src":"6393:36:2","statements":[{"expression":{"id":395,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"6410:12:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":394,"id":396,"nodeType":"Return","src":"6403:19:2"}]},"documentation":{"id":390,"nodeType":"StructuredDocumentation","src":"6225:99:2","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":398,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:2","nodeType":"FunctionDefinition","parameters":{"id":391,"nodeType":"ParameterList","parameters":[],"src":"6360:2:2"},"returnParameters":{"id":394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":398,"src":"6386:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":392,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:2"},"scope":408,"src":"6329:100:2","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"6601:37:2","statements":[{"expression":{"id":404,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"6618:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":403,"id":405,"nodeType":"Return","src":"6611:20:2"}]},"documentation":{"id":399,"nodeType":"StructuredDocumentation","src":"6435:105:2","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:2","nodeType":"FunctionDefinition","parameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"6569:2:2"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":407,"src":"6595:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":401,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:2"},"scope":408,"src":"6545:93:2","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":409,"src":"2394:4246:2","usedErrors":[]}],"src":"113:6528:2"},"id":2},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[917],"Initializable":[408],"PausableUpgradeable":[536]},"id":537,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":410,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:3"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":537,"sourceUnit":918,"src":"130:41:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":537,"sourceUnit":409,"src":"172:63:3","symbolAliases":[{"foreign":{"id":412,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"180:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":415,"name":"Initializable","nameLocations":["718:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":408,"src":"718:13:3"},"id":416,"nodeType":"InheritanceSpecifier","src":"718:13:3"},{"baseName":{"id":417,"name":"ContextUpgradeable","nameLocations":["733:18:3"],"nodeType":"IdentifierPath","referencedDeclaration":917,"src":"733:18:3"},"id":418,"nodeType":"InheritanceSpecifier","src":"733:18:3"}],"canonicalName":"PausableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":414,"nodeType":"StructuredDocumentation","src":"237:439:3","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":536,"linearizedBaseContracts":[536,917,408],"name":"PausableUpgradeable","nameLocation":"695:19:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":419,"nodeType":"StructuredDocumentation","src":"758:73:3","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":423,"name":"Paused","nameLocation":"842:6:3","nodeType":"EventDefinition","parameters":{"id":422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":421,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"857:7:3","nodeType":"VariableDeclaration","scope":423,"src":"849:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":420,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"848:17:3"},"src":"836:30:3"},{"anonymous":false,"documentation":{"id":424,"nodeType":"StructuredDocumentation","src":"872:70:3","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":428,"name":"Unpaused","nameLocation":"953:8:3","nodeType":"EventDefinition","parameters":{"id":427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":426,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"970:7:3","nodeType":"VariableDeclaration","scope":428,"src":"962:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"961:17:3"},"src":"947:32:3"},{"constant":false,"id":430,"mutability":"mutable","name":"_paused","nameLocation":"998:7:3","nodeType":"VariableDeclaration","scope":536,"src":"985:20:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":429,"name":"bool","nodeType":"ElementaryTypeName","src":"985:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":439,"nodeType":"Block","src":"1137:44:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":436,"name":"__Pausable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1147:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":438,"nodeType":"ExpressionStatement","src":"1147:27:3"}]},"documentation":{"id":431,"nodeType":"StructuredDocumentation","src":"1012:67:3","text":" @dev Initializes the contract in unpaused state."},"id":440,"implemented":true,"kind":"function","modifiers":[{"id":434,"kind":"modifierInvocation","modifierName":{"id":433,"name":"onlyInitializing","nameLocations":["1120:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"1120:16:3"},"nodeType":"ModifierInvocation","src":"1120:16:3"}],"name":"__Pausable_init","nameLocation":"1093:15:3","nodeType":"FunctionDefinition","parameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"1108:2:3"},"returnParameters":{"id":435,"nodeType":"ParameterList","parameters":[],"src":"1137:0:3"},"scope":536,"src":"1084:97:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":449,"nodeType":"Block","src":"1250:32:3","statements":[{"expression":{"id":447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":445,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"1260:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1270:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1260:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":448,"nodeType":"ExpressionStatement","src":"1260:15:3"}]},"id":450,"implemented":true,"kind":"function","modifiers":[{"id":443,"kind":"modifierInvocation","modifierName":{"id":442,"name":"onlyInitializing","nameLocations":["1233:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"1233:16:3"},"nodeType":"ModifierInvocation","src":"1233:16:3"}],"name":"__Pausable_init_unchained","nameLocation":"1196:25:3","nodeType":"FunctionDefinition","parameters":{"id":441,"nodeType":"ParameterList","parameters":[],"src":"1221:2:3"},"returnParameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"1250:0:3"},"scope":536,"src":"1187:95:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":457,"nodeType":"Block","src":"1493:47:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":453,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"1503:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":455,"nodeType":"ExpressionStatement","src":"1503:19:3"},{"id":456,"nodeType":"PlaceholderStatement","src":"1532:1:3"}]},"documentation":{"id":451,"nodeType":"StructuredDocumentation","src":"1288:175:3","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":458,"name":"whenNotPaused","nameLocation":"1477:13:3","nodeType":"ModifierDefinition","parameters":{"id":452,"nodeType":"ParameterList","parameters":[],"src":"1490:2:3"},"src":"1468:72:3","virtual":false,"visibility":"internal"},{"body":{"id":465,"nodeType":"Block","src":"1740:44:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":461,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1750:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":463,"nodeType":"ExpressionStatement","src":"1750:16:3"},{"id":464,"nodeType":"PlaceholderStatement","src":"1776:1:3"}]},"documentation":{"id":459,"nodeType":"StructuredDocumentation","src":"1546:167:3","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":466,"name":"whenPaused","nameLocation":"1727:10:3","nodeType":"ModifierDefinition","parameters":{"id":460,"nodeType":"ParameterList","parameters":[],"src":"1737:2:3"},"src":"1718:66:3","virtual":false,"visibility":"internal"},{"body":{"id":474,"nodeType":"Block","src":"1932:31:3","statements":[{"expression":{"id":472,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"1949:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":471,"id":473,"nodeType":"Return","src":"1942:14:3"}]},"documentation":{"id":467,"nodeType":"StructuredDocumentation","src":"1790:84:3","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":475,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1888:6:3","nodeType":"FunctionDefinition","parameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"1894:2:3"},"returnParameters":{"id":471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":475,"src":"1926:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":469,"name":"bool","nodeType":"ElementaryTypeName","src":"1926:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1925:6:3"},"scope":536,"src":"1879:84:3","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":486,"nodeType":"Block","src":"2082:55:3","statements":[{"expression":{"arguments":[{"id":482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2100:9:3","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":480,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":475,"src":"2101:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:18:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2092:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":485,"nodeType":"ExpressionStatement","src":"2092:38:3"}]},"documentation":{"id":476,"nodeType":"StructuredDocumentation","src":"1969:57:3","text":" @dev Throws if the contract is paused."},"id":487,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"2040:17:3","nodeType":"FunctionDefinition","parameters":{"id":477,"nodeType":"ParameterList","parameters":[],"src":"2057:2:3"},"returnParameters":{"id":478,"nodeType":"ParameterList","parameters":[],"src":"2082:0:3"},"scope":536,"src":"2031:106:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"2257:58:3","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":492,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":475,"src":"2275:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2275:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2285:22:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2267:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2267:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":496,"nodeType":"ExpressionStatement","src":"2267:41:3"}]},"documentation":{"id":488,"nodeType":"StructuredDocumentation","src":"2143:61:3","text":" @dev Throws if the contract is not paused."},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"2218:14:3","nodeType":"FunctionDefinition","parameters":{"id":489,"nodeType":"ParameterList","parameters":[],"src":"2232:2:3"},"returnParameters":{"id":490,"nodeType":"ParameterList","parameters":[],"src":"2257:0:3"},"scope":536,"src":"2209:106:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":513,"nodeType":"Block","src":"2499:66:3","statements":[{"expression":{"id":506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":504,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"2509:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2519:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2509:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":507,"nodeType":"ExpressionStatement","src":"2509:14:3"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":509,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"2545:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":508,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"2538:6:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":512,"nodeType":"EmitStatement","src":"2533:25:3"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"2321:124:3","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":514,"implemented":true,"kind":"function","modifiers":[{"id":502,"kind":"modifierInvocation","modifierName":{"id":501,"name":"whenNotPaused","nameLocations":["2485:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":458,"src":"2485:13:3"},"nodeType":"ModifierInvocation","src":"2485:13:3"}],"name":"_pause","nameLocation":"2459:6:3","nodeType":"FunctionDefinition","parameters":{"id":500,"nodeType":"ParameterList","parameters":[],"src":"2465:2:3"},"returnParameters":{"id":503,"nodeType":"ParameterList","parameters":[],"src":"2499:0:3"},"scope":536,"src":"2450:115:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":529,"nodeType":"Block","src":"2745:69:3","statements":[{"expression":{"id":522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":520,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"2755:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2765:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2755:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":523,"nodeType":"ExpressionStatement","src":"2755:15:3"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":525,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"2794:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2794:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":524,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"2785:8:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":528,"nodeType":"EmitStatement","src":"2780:27:3"}]},"documentation":{"id":515,"nodeType":"StructuredDocumentation","src":"2571:121:3","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":530,"implemented":true,"kind":"function","modifiers":[{"id":518,"kind":"modifierInvocation","modifierName":{"id":517,"name":"whenPaused","nameLocations":["2734:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":466,"src":"2734:10:3"},"nodeType":"ModifierInvocation","src":"2734:10:3"}],"name":"_unpause","nameLocation":"2706:8:3","nodeType":"FunctionDefinition","parameters":{"id":516,"nodeType":"ParameterList","parameters":[],"src":"2714:2:3"},"returnParameters":{"id":519,"nodeType":"ParameterList","parameters":[],"src":"2745:0:3"},"scope":536,"src":"2697:117:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":531,"nodeType":"StructuredDocumentation","src":"2820:254:3","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":535,"mutability":"mutable","name":"__gap","nameLocation":"3099:5:3","nodeType":"VariableDeclaration","scope":536,"src":"3079:25:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":532,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":534,"length":{"hexValue":"3439","id":533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3087:2:3","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3079:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":537,"src":"677:2430:3","usedErrors":[]}],"src":"105:3003:3"},"id":3},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[866]},"id":867,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":538,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":539,"nodeType":"StructuredDocumentation","src":"126:67:4","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":866,"linearizedBaseContracts":[866],"name":"AddressUpgradeable","nameLocation":"202:18:4","nodeType":"ContractDefinition","nodes":[{"body":{"id":553,"nodeType":"Block","src":"1489:254:4","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":547,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"1713:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:4:4","memberName":"code","nodeType":"MemberAccess","src":"1713:12:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:4","memberName":"length","nodeType":"MemberAccess","src":"1713:19:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":546,"id":552,"nodeType":"Return","src":"1706:30:4"}]},"documentation":{"id":540,"nodeType":"StructuredDocumentation","src":"227:1191:4","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":554,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:4","nodeType":"FunctionDefinition","parameters":{"id":543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":542,"mutability":"mutable","name":"account","nameLocation":"1451:7:4","nodeType":"VariableDeclaration","scope":554,"src":"1443:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":541,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:4"},"returnParameters":{"id":546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":554,"src":"1483:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":544,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:4"},"scope":866,"src":"1423:320:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":587,"nodeType":"Block","src":"2729:241:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":565,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$866","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$866","typeString":"library AddressUpgradeable"}],"id":564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":563,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:4","typeDescriptions":{}}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:7:4","memberName":"balance","nodeType":"MemberAccess","src":"2747:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":568,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"2772:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":562,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2739:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":572,"nodeType":"ExpressionStatement","src":"2739:73:4"},{"assignments":[574,null],"declarations":[{"constant":false,"id":574,"mutability":"mutable","name":"success","nameLocation":"2829:7:4","nodeType":"VariableDeclaration","scope":587,"src":"2824:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":573,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":581,"initialValue":{"arguments":[{"hexValue":"","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":575,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2842:9:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:4","memberName":"call","nodeType":"MemberAccess","src":"2842:14:4","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":577,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"2864:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:4","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:33:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:4"},{"expression":{"arguments":[{"id":583,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"2893:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":582,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2885:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:78:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"2885:78:4"}]},"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"1749:904:4","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":588,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:4","nodeType":"FunctionDefinition","parameters":{"id":560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:4","nodeType":"VariableDeclaration","scope":588,"src":"2677:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":556,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":559,"mutability":"mutable","name":"amount","nameLocation":"2712:6:4","nodeType":"VariableDeclaration","scope":588,"src":"2704:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:4"},"returnParameters":{"id":561,"nodeType":"ParameterList","parameters":[],"src":"2729:0:4"},"scope":866,"src":"2658:312:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":605,"nodeType":"Block","src":"3801:96:4","statements":[{"expression":{"arguments":[{"id":599,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"3840:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":600,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"3848:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":598,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[646,690],"referencedDeclaration":690,"src":"3818:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:72:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":597,"id":604,"nodeType":"Return","src":"3811:79:4"}]},"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"2976:731:4","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":606,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:4","nodeType":"FunctionDefinition","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"target","nameLocation":"3742:6:4","nodeType":"VariableDeclaration","scope":606,"src":"3734:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":590,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"data","nameLocation":"3763:4:4","nodeType":"VariableDeclaration","scope":606,"src":"3750:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":592,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:4"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":606,"src":"3787:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":595,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:4"},"scope":866,"src":"3712:185:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":625,"nodeType":"Block","src":"4266:76:4","statements":[{"expression":{"arguments":[{"id":619,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"4305:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":620,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"4313:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":622,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"4322:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":618,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[646,690],"referencedDeclaration":690,"src":"4283:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4283:52:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":617,"id":624,"nodeType":"Return","src":"4276:59:4"}]},"documentation":{"id":607,"nodeType":"StructuredDocumentation","src":"3903:211:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":626,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:4","nodeType":"FunctionDefinition","parameters":{"id":614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"target","nameLocation":"4158:6:4","nodeType":"VariableDeclaration","scope":626,"src":"4150:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":608,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"data","nameLocation":"4187:4:4","nodeType":"VariableDeclaration","scope":626,"src":"4174:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":610,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:4","nodeType":"VariableDeclaration","scope":626,"src":"4201:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":612,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:4"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":626,"src":"4252:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":615,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:4"},"scope":866,"src":"4119:223:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":645,"nodeType":"Block","src":"4817:111:4","statements":[{"expression":{"arguments":[{"id":639,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":629,"src":"4856:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":640,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"4864:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":633,"src":"4870:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":638,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[646,690],"referencedDeclaration":690,"src":"4834:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:87:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":637,"id":644,"nodeType":"Return","src":"4827:94:4"}]},"documentation":{"id":627,"nodeType":"StructuredDocumentation","src":"4348:351:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":646,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:4","nodeType":"FunctionDefinition","parameters":{"id":634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":629,"mutability":"mutable","name":"target","nameLocation":"4743:6:4","nodeType":"VariableDeclaration","scope":646,"src":"4735:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":628,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":631,"mutability":"mutable","name":"data","nameLocation":"4764:4:4","nodeType":"VariableDeclaration","scope":646,"src":"4751:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":630,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":633,"mutability":"mutable","name":"value","nameLocation":"4778:5:4","nodeType":"VariableDeclaration","scope":646,"src":"4770:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":632,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:4"},"returnParameters":{"id":637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":646,"src":"4803:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":635,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:4"},"scope":866,"src":"4704:224:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":689,"nodeType":"Block","src":"5355:267:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":663,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$866","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$866","typeString":"library AddressUpgradeable"}],"id":662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":661,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:4","typeDescriptions":{}}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:7:4","memberName":"balance","nodeType":"MemberAccess","src":"5373:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"5398:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:81:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":670,"nodeType":"ExpressionStatement","src":"5365:81:4"},{"assignments":[672,674],"declarations":[{"constant":false,"id":672,"mutability":"mutable","name":"success","nameLocation":"5462:7:4","nodeType":"VariableDeclaration","scope":689,"src":"5457:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":671,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":674,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:4","nodeType":"VariableDeclaration","scope":689,"src":"5471:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":673,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":681,"initialValue":{"arguments":[{"id":679,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"5524:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":675,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":649,"src":"5498:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5505:4:4","memberName":"call","nodeType":"MemberAccess","src":"5498:11:4","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"5517:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:4","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:4"},{"expression":{"arguments":[{"id":683,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":649,"src":"5573:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":684,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"5581:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":685,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"5590:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":686,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":655,"src":"5602:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":682,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"5546:26:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:69:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":659,"id":688,"nodeType":"Return","src":"5539:76:4"}]},"documentation":{"id":647,"nodeType":"StructuredDocumentation","src":"4934:237:4","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":690,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:4","nodeType":"FunctionDefinition","parameters":{"id":656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":649,"mutability":"mutable","name":"target","nameLocation":"5224:6:4","nodeType":"VariableDeclaration","scope":690,"src":"5216:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":648,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":651,"mutability":"mutable","name":"data","nameLocation":"5253:4:4","nodeType":"VariableDeclaration","scope":690,"src":"5240:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":650,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":653,"mutability":"mutable","name":"value","nameLocation":"5275:5:4","nodeType":"VariableDeclaration","scope":690,"src":"5267:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":652,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":655,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:4","nodeType":"VariableDeclaration","scope":690,"src":"5290:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":654,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:4"},"returnParameters":{"id":659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":690,"src":"5341:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":657,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:4"},"scope":866,"src":"5176:446:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":706,"nodeType":"Block","src":"5899:97:4","statements":[{"expression":{"arguments":[{"id":701,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"5935:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":702,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"5943:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":700,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[707,736],"referencedDeclaration":736,"src":"5916:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":699,"id":705,"nodeType":"Return","src":"5909:80:4"}]},"documentation":{"id":691,"nodeType":"StructuredDocumentation","src":"5628:166:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":707,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:4","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"target","nameLocation":"5835:6:4","nodeType":"VariableDeclaration","scope":707,"src":"5827:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":692,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"data","nameLocation":"5856:4:4","nodeType":"VariableDeclaration","scope":707,"src":"5843:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":694,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:4"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":707,"src":"5885:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":697,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:4"},"scope":866,"src":"5799:197:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":735,"nodeType":"Block","src":"6338:168:4","statements":[{"assignments":[720,722],"declarations":[{"constant":false,"id":720,"mutability":"mutable","name":"success","nameLocation":"6354:7:4","nodeType":"VariableDeclaration","scope":735,"src":"6349:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":719,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:4","nodeType":"VariableDeclaration","scope":735,"src":"6363:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":721,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":727,"initialValue":{"arguments":[{"id":725,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"6408:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":723,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"6390:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:4","memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:4","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:4"},{"expression":{"arguments":[{"id":729,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"6457:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":730,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"6465:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":731,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"6474:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":732,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"6486:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":728,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"6430:26:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:69:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":718,"id":734,"nodeType":"Return","src":"6423:76:4"}]},"documentation":{"id":708,"nodeType":"StructuredDocumentation","src":"6002:173:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":736,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:4","nodeType":"FunctionDefinition","parameters":{"id":715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":710,"mutability":"mutable","name":"target","nameLocation":"6225:6:4","nodeType":"VariableDeclaration","scope":736,"src":"6217:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":709,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":712,"mutability":"mutable","name":"data","nameLocation":"6254:4:4","nodeType":"VariableDeclaration","scope":736,"src":"6241:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":711,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":714,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:4","nodeType":"VariableDeclaration","scope":736,"src":"6268:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":713,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:4"},"returnParameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":736,"src":"6324:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":716,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:4"},"scope":866,"src":"6180:326:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":752,"nodeType":"Block","src":"6782:101:4","statements":[{"expression":{"arguments":[{"id":747,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"6820:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":748,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"6828:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":746,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[753,782],"referencedDeclaration":782,"src":"6799:20:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:77:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":745,"id":751,"nodeType":"Return","src":"6792:84:4"}]},"documentation":{"id":737,"nodeType":"StructuredDocumentation","src":"6512:168:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":753,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:4","nodeType":"FunctionDefinition","parameters":{"id":742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":739,"mutability":"mutable","name":"target","nameLocation":"6723:6:4","nodeType":"VariableDeclaration","scope":753,"src":"6715:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":738,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":741,"mutability":"mutable","name":"data","nameLocation":"6744:4:4","nodeType":"VariableDeclaration","scope":753,"src":"6731:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":740,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:4"},"returnParameters":{"id":745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":753,"src":"6768:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":743,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:4"},"scope":866,"src":"6685:198:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":781,"nodeType":"Block","src":"7224:170:4","statements":[{"assignments":[766,768],"declarations":[{"constant":false,"id":766,"mutability":"mutable","name":"success","nameLocation":"7240:7:4","nodeType":"VariableDeclaration","scope":781,"src":"7235:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":765,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":768,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:4","nodeType":"VariableDeclaration","scope":781,"src":"7249:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":767,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":773,"initialValue":{"arguments":[{"id":771,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"7296:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":769,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"7276:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7283:12:4","memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:4","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7276:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:4"},{"expression":{"arguments":[{"id":775,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"7345:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":776,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"7353:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":777,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"7362:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":778,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":760,"src":"7374:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":774,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"7318:26:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":764,"id":780,"nodeType":"Return","src":"7311:76:4"}]},"documentation":{"id":754,"nodeType":"StructuredDocumentation","src":"6889:175:4","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":782,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:4","nodeType":"FunctionDefinition","parameters":{"id":761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":756,"mutability":"mutable","name":"target","nameLocation":"7116:6:4","nodeType":"VariableDeclaration","scope":782,"src":"7108:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":755,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":758,"mutability":"mutable","name":"data","nameLocation":"7145:4:4","nodeType":"VariableDeclaration","scope":782,"src":"7132:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":757,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":760,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:4","nodeType":"VariableDeclaration","scope":782,"src":"7159:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":759,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:4"},"returnParameters":{"id":764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":782,"src":"7210:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":762,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:4"},"scope":866,"src":"7069:325:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":820,"nodeType":"Block","src":"7876:434:4","statements":[{"condition":{"id":796,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"7890:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":818,"nodeType":"Block","src":"8246:58:4","statements":[{"expression":{"arguments":[{"id":814,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"8268:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":815,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"8280:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":813,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"8260:7:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8260:33:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":817,"nodeType":"ExpressionStatement","src":"8260:33:4"}]},"id":819,"nodeType":"IfStatement","src":"7886:418:4","trueBody":{"id":812,"nodeType":"Block","src":"7899:341:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":797,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"7917:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7928:6:4","memberName":"length","nodeType":"MemberAccess","src":"7917:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":809,"nodeType":"IfStatement","src":"7913:286:4","trueBody":{"id":808,"nodeType":"Block","src":"7941:258:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":803,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"8143:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":802,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"8132:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8124:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8124:60:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":807,"nodeType":"ExpressionStatement","src":"8124:60:4"}]}},{"expression":{"id":810,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"8219:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":795,"id":811,"nodeType":"Return","src":"8212:17:4"}]}}]},"documentation":{"id":783,"nodeType":"StructuredDocumentation","src":"7400:277:4","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":821,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:4","nodeType":"FunctionDefinition","parameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":785,"mutability":"mutable","name":"target","nameLocation":"7735:6:4","nodeType":"VariableDeclaration","scope":821,"src":"7727:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":784,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":787,"mutability":"mutable","name":"success","nameLocation":"7756:7:4","nodeType":"VariableDeclaration","scope":821,"src":"7751:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":786,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":789,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:4","nodeType":"VariableDeclaration","scope":821,"src":"7773:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":788,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":791,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:4","nodeType":"VariableDeclaration","scope":821,"src":"7806:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":790,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:4"},"returnParameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":821,"src":"7862:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":793,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:4"},"scope":866,"src":"7682:628:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":844,"nodeType":"Block","src":"8691:135:4","statements":[{"condition":{"id":833,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"8705:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":842,"nodeType":"Block","src":"8762:58:4","statements":[{"expression":{"arguments":[{"id":838,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"8784:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":839,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"8796:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":837,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"8776:7:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:33:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":841,"nodeType":"ExpressionStatement","src":"8776:33:4"}]},"id":843,"nodeType":"IfStatement","src":"8701:119:4","trueBody":{"id":836,"nodeType":"Block","src":"8714:42:4","statements":[{"expression":{"id":834,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"8735:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":832,"id":835,"nodeType":"Return","src":"8728:17:4"}]}}]},"documentation":{"id":822,"nodeType":"StructuredDocumentation","src":"8316:210:4","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":845,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:4","nodeType":"FunctionDefinition","parameters":{"id":829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":824,"mutability":"mutable","name":"success","nameLocation":"8571:7:4","nodeType":"VariableDeclaration","scope":845,"src":"8566:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":823,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":826,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:4","nodeType":"VariableDeclaration","scope":845,"src":"8588:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":825,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":828,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:4","nodeType":"VariableDeclaration","scope":845,"src":"8621:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":827,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:4"},"returnParameters":{"id":832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":845,"src":"8677:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":830,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:4"},"scope":866,"src":"8531:295:4","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":864,"nodeType":"Block","src":"8915:457:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":852,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"8991:10:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:6:4","memberName":"length","nodeType":"MemberAccess","src":"8991:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":862,"nodeType":"Block","src":"9321:45:4","statements":[{"expression":{"arguments":[{"id":859,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"9342:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":858,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:4","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":861,"nodeType":"ExpressionStatement","src":"9335:20:4"}]},"id":863,"nodeType":"IfStatement","src":"8987:379:4","trueBody":{"id":857,"nodeType":"Block","src":"9014:301:4","statements":[{"AST":{"nodeType":"YulBlock","src":"9172:133:4","statements":[{"nodeType":"YulVariableDeclaration","src":"9190:40:4","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9219:10:4"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9213:5:4"},"nodeType":"YulFunctionCall","src":"9213:17:4"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9194:15:4","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9258:2:4","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9262:10:4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9254:3:4"},"nodeType":"YulFunctionCall","src":"9254:19:4"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9275:15:4"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9247:6:4"},"nodeType":"YulFunctionCall","src":"9247:44:4"},"nodeType":"YulExpressionStatement","src":"9247:44:4"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":847,"isOffset":false,"isSlot":false,"src":"9219:10:4","valueSize":1},{"declaration":847,"isOffset":false,"isSlot":false,"src":"9262:10:4","valueSize":1}],"id":856,"nodeType":"InlineAssembly","src":"9163:142:4"}]}}]},"id":865,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:4","nodeType":"FunctionDefinition","parameters":{"id":850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:4","nodeType":"VariableDeclaration","scope":865,"src":"8849:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":846,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:4","nodeType":"VariableDeclaration","scope":865,"src":"8874:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":848,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:4"},"returnParameters":{"id":851,"nodeType":"ParameterList","parameters":[],"src":"8915:0:4"},"scope":866,"src":"8832:540:4","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":867,"src":"194:9180:4","usedErrors":[]}],"src":"101:9274:4"},"id":4},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[917],"Initializable":[408]},"id":918,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":868,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:5"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":870,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":409,"src":"125:63:5","symbolAliases":[{"foreign":{"id":869,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"133:13:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":872,"name":"Initializable","nameLocations":["727:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":408,"src":"727:13:5"},"id":873,"nodeType":"InheritanceSpecifier","src":"727:13:5"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":871,"nodeType":"StructuredDocumentation","src":"190:496:5","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":917,"linearizedBaseContracts":[917,408],"name":"ContextUpgradeable","nameLocation":"705:18:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":878,"nodeType":"Block","src":"799:7:5","statements":[]},"id":879,"implemented":true,"kind":"function","modifiers":[{"id":876,"kind":"modifierInvocation","modifierName":{"id":875,"name":"onlyInitializing","nameLocations":["782:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"782:16:5"},"nodeType":"ModifierInvocation","src":"782:16:5"}],"name":"__Context_init","nameLocation":"756:14:5","nodeType":"FunctionDefinition","parameters":{"id":874,"nodeType":"ParameterList","parameters":[],"src":"770:2:5"},"returnParameters":{"id":877,"nodeType":"ParameterList","parameters":[],"src":"799:0:5"},"scope":917,"src":"747:59:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":884,"nodeType":"Block","src":"874:7:5","statements":[]},"id":885,"implemented":true,"kind":"function","modifiers":[{"id":882,"kind":"modifierInvocation","modifierName":{"id":881,"name":"onlyInitializing","nameLocations":["857:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":353,"src":"857:16:5"},"nodeType":"ModifierInvocation","src":"857:16:5"}],"name":"__Context_init_unchained","nameLocation":"821:24:5","nodeType":"FunctionDefinition","parameters":{"id":880,"nodeType":"ParameterList","parameters":[],"src":"845:2:5"},"returnParameters":{"id":883,"nodeType":"ParameterList","parameters":[],"src":"874:0:5"},"scope":917,"src":"812:69:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":893,"nodeType":"Block","src":"948:34:5","statements":[{"expression":{"expression":{"id":890,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"965:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:6:5","memberName":"sender","nodeType":"MemberAccess","src":"965:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":889,"id":892,"nodeType":"Return","src":"958:17:5"}]},"id":894,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"895:10:5","nodeType":"FunctionDefinition","parameters":{"id":886,"nodeType":"ParameterList","parameters":[],"src":"905:2:5"},"returnParameters":{"id":889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":894,"src":"939:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":887,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"938:9:5"},"scope":917,"src":"886:96:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":902,"nodeType":"Block","src":"1055:32:5","statements":[{"expression":{"expression":{"id":899,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1072:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1076:4:5","memberName":"data","nodeType":"MemberAccess","src":"1072:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":898,"id":901,"nodeType":"Return","src":"1065:15:5"}]},"id":903,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"997:8:5","nodeType":"FunctionDefinition","parameters":{"id":895,"nodeType":"ParameterList","parameters":[],"src":"1005:2:5"},"returnParameters":{"id":898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":903,"src":"1039:14:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":896,"name":"bytes","nodeType":"ElementaryTypeName","src":"1039:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1038:16:5"},"scope":917,"src":"988:99:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":910,"nodeType":"Block","src":"1165:25:5","statements":[{"expression":{"hexValue":"30","id":908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1182:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":907,"id":909,"nodeType":"Return","src":"1175:8:5"}]},"id":911,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1102:20:5","nodeType":"FunctionDefinition","parameters":{"id":904,"nodeType":"ParameterList","parameters":[],"src":"1122:2:5"},"returnParameters":{"id":907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":911,"src":"1156:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":905,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:9:5"},"scope":917,"src":"1093:97:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":912,"nodeType":"StructuredDocumentation","src":"1196:254:5","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":916,"mutability":"mutable","name":"__gap","nameLocation":"1475:5:5","nodeType":"VariableDeclaration","scope":917,"src":"1455:25:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":915,"length":{"hexValue":"3530","id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1463:2:5","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1455:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":918,"src":"687:796:5","usedErrors":[]}],"src":"101:1383:5"},"id":5},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[995]},"id":996,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":919,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":920,"nodeType":"StructuredDocumentation","src":"131:70:6","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":995,"linearizedBaseContracts":[995],"name":"IERC20","nameLocation":"212:6:6","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":921,"nodeType":"StructuredDocumentation","src":"225:158:6","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":929,"name":"Transfer","nameLocation":"394:8:6","nodeType":"EventDefinition","parameters":{"id":928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":923,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:6","nodeType":"VariableDeclaration","scope":929,"src":"403:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":922,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":925,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:6","nodeType":"VariableDeclaration","scope":929,"src":"425:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":924,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":927,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:6","nodeType":"VariableDeclaration","scope":929,"src":"445:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":926,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:6"},"src":"388:72:6"},{"anonymous":false,"documentation":{"id":930,"nodeType":"StructuredDocumentation","src":"466:148:6","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":938,"name":"Approval","nameLocation":"625:8:6","nodeType":"EventDefinition","parameters":{"id":937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":932,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:6","nodeType":"VariableDeclaration","scope":938,"src":"634:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":931,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":934,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:6","nodeType":"VariableDeclaration","scope":938,"src":"657:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":933,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":936,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:6","nodeType":"VariableDeclaration","scope":938,"src":"682:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":935,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:6"},"src":"619:78:6"},{"documentation":{"id":939,"nodeType":"StructuredDocumentation","src":"703:66:6","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":944,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:6","nodeType":"FunctionDefinition","parameters":{"id":940,"nodeType":"ParameterList","parameters":[],"src":"794:2:6"},"returnParameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":944,"src":"820:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":941,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:6"},"scope":995,"src":"774:55:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":945,"nodeType":"StructuredDocumentation","src":"835:72:6","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":952,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:6","nodeType":"FunctionDefinition","parameters":{"id":948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":947,"mutability":"mutable","name":"account","nameLocation":"939:7:6","nodeType":"VariableDeclaration","scope":952,"src":"931:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":946,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:6"},"returnParameters":{"id":951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":952,"src":"971:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":949,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:6"},"scope":995,"src":"912:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":953,"nodeType":"StructuredDocumentation","src":"986:202:6","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":962,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:6","nodeType":"FunctionDefinition","parameters":{"id":958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":955,"mutability":"mutable","name":"to","nameLocation":"1219:2:6","nodeType":"VariableDeclaration","scope":962,"src":"1211:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":954,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":957,"mutability":"mutable","name":"amount","nameLocation":"1231:6:6","nodeType":"VariableDeclaration","scope":962,"src":"1223:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:6"},"returnParameters":{"id":961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":962,"src":"1257:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":959,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:6"},"scope":995,"src":"1193:70:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":963,"nodeType":"StructuredDocumentation","src":"1269:264:6","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":972,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:6","nodeType":"FunctionDefinition","parameters":{"id":968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":965,"mutability":"mutable","name":"owner","nameLocation":"1565:5:6","nodeType":"VariableDeclaration","scope":972,"src":"1557:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":967,"mutability":"mutable","name":"spender","nameLocation":"1580:7:6","nodeType":"VariableDeclaration","scope":972,"src":"1572:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":966,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:6"},"returnParameters":{"id":971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":972,"src":"1612:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:6"},"scope":995,"src":"1538:83:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":973,"nodeType":"StructuredDocumentation","src":"1627:642:6","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":982,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:6","nodeType":"FunctionDefinition","parameters":{"id":978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":975,"mutability":"mutable","name":"spender","nameLocation":"2299:7:6","nodeType":"VariableDeclaration","scope":982,"src":"2291:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"amount","nameLocation":"2316:6:6","nodeType":"VariableDeclaration","scope":982,"src":"2308:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:6"},"returnParameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":982,"src":"2342:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":979,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:6"},"scope":995,"src":"2274:74:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":983,"nodeType":"StructuredDocumentation","src":"2354:287:6","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":994,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:6","nodeType":"FunctionDefinition","parameters":{"id":990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":985,"mutability":"mutable","name":"from","nameLocation":"2676:4:6","nodeType":"VariableDeclaration","scope":994,"src":"2668:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":987,"mutability":"mutable","name":"to","nameLocation":"2690:2:6","nodeType":"VariableDeclaration","scope":994,"src":"2682:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":989,"mutability":"mutable","name":"amount","nameLocation":"2702:6:6","nodeType":"VariableDeclaration","scope":994,"src":"2694:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:6"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":994,"src":"2728:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":991,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:6"},"scope":995,"src":"2646:88:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":996,"src":"202:2534:6","usedErrors":[]}],"src":"106:2631:6"},"id":6},"contracts/Gateway.sol":{"ast":{"absolutePath":"contracts/Gateway.sol","exportedSymbols":{"ContextUpgradeable":[917],"Gateway":[1570],"GatewaySettingManager":[1754],"IERC20":[995],"IGateway":[1892],"Initializable":[408],"PausableUpgradeable":[536]},"id":1571,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":997,"literals":["solidity","^","0.8",".18"],"nodeType":"PragmaDirective","src":"39:24:7"},{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","id":998,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1571,"sourceUnit":537,"src":"65:78:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/GatewaySettingManager.sol","file":"./GatewaySettingManager.sol","id":1000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1571,"sourceUnit":1755,"src":"145:66:7","symbolAliases":[{"foreign":{"id":999,"name":"GatewaySettingManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"153:21:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGateway.sol","file":"./interfaces/IGateway.sol","id":1003,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1571,"sourceUnit":1893,"src":"212:59:7","symbolAliases":[{"foreign":{"id":1001,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"220:8:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1002,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"230:6:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1005,"name":"IGateway","nameLocations":["410:8:7"],"nodeType":"IdentifierPath","referencedDeclaration":1892,"src":"410:8:7"},"id":1006,"nodeType":"InheritanceSpecifier","src":"410:8:7"},{"baseName":{"id":1007,"name":"GatewaySettingManager","nameLocations":["420:21:7"],"nodeType":"IdentifierPath","referencedDeclaration":1754,"src":"420:21:7"},"id":1008,"nodeType":"InheritanceSpecifier","src":"420:21:7"},{"baseName":{"id":1009,"name":"PausableUpgradeable","nameLocations":["443:19:7"],"nodeType":"IdentifierPath","referencedDeclaration":536,"src":"443:19:7"},"id":1010,"nodeType":"InheritanceSpecifier","src":"443:19:7"}],"canonicalName":"Gateway","contractDependencies":[],"contractKind":"contract","documentation":{"id":1004,"nodeType":"StructuredDocumentation","src":"273:116:7","text":" @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements."},"fullyImplemented":true,"id":1570,"linearizedBaseContracts":[1570,536,1754,106,239,917,408,1892],"name":"Gateway","nameLocation":"399:7:7","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Gateway.fee","id":1015,"members":[{"constant":false,"id":1012,"mutability":"mutable","name":"protocolFee","nameLocation":"489:11:7","nodeType":"VariableDeclaration","scope":1015,"src":"481:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1011,"name":"uint256","nodeType":"ElementaryTypeName","src":"481:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1014,"mutability":"mutable","name":"liquidityProviderAmount","nameLocation":"512:23:7","nodeType":"VariableDeclaration","scope":1015,"src":"504:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1013,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"fee","nameLocation":"473:3:7","nodeType":"StructDefinition","scope":1570,"src":"466:73:7","visibility":"public"},{"constant":false,"id":1020,"mutability":"mutable","name":"order","nameLocation":"576:5:7","nodeType":"VariableDeclaration","scope":1570,"src":"542:39:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order)"},"typeName":{"id":1019,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"550:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"542:25:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1018,"nodeType":"UserDefinedTypeName","pathNode":{"id":1017,"name":"Order","nameLocations":["561:5:7"],"nodeType":"IdentifierPath","referencedDeclaration":1822,"src":"561:5:7"},"referencedDeclaration":1822,"src":"561:5:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage_ptr","typeString":"struct IGateway.Order"}}},"visibility":"private"},{"constant":false,"id":1024,"mutability":"mutable","name":"_nonce","nameLocation":"620:6:7","nodeType":"VariableDeclaration","scope":1570,"src":"584:42:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1023,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1021,"name":"address","nodeType":"ElementaryTypeName","src":"592:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"584:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1022,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1028,"mutability":"mutable","name":"__gap","nameLocation":"649:5:7","nodeType":"VariableDeclaration","scope":1570,"src":"629:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1025,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1027,"length":{"hexValue":"3530","id":1026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"637:2:7","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"629:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"},{"body":{"id":1035,"nodeType":"Block","src":"722:30:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1032,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"726:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"726:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1034,"nodeType":"ExpressionStatement","src":"726:22:7"}]},"documentation":{"id":1029,"nodeType":"StructuredDocumentation","src":"658:48:7","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":1036,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1030,"nodeType":"ParameterList","parameters":[],"src":"719:2:7"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[],"src":"722:0:7"},"scope":1570,"src":"708:44:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1052,"nodeType":"Block","src":"838:71:7","statements":[{"expression":{"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1042,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"842:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130305f303030","id":1043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:7:7","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"src":"842:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1045,"nodeType":"ExpressionStatement","src":"842:17:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1046,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"863:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1048,"nodeType":"ExpressionStatement","src":"863:21:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1049,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"888:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"888:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1051,"nodeType":"ExpressionStatement","src":"888:17:7"}]},"documentation":{"id":1037,"nodeType":"StructuredDocumentation","src":"755:38:7","text":" @dev Initialize function."},"functionSelector":"8129fc1c","id":1053,"implemented":true,"kind":"function","modifiers":[{"id":1040,"kind":"modifierInvocation","modifierName":{"id":1039,"name":"initializer","nameLocations":["826:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":310,"src":"826:11:7"},"nodeType":"ModifierInvocation","src":"826:11:7"}],"name":"initialize","nameLocation":"804:10:7","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[],"src":"814:2:7"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[],"src":"838:0:7"},"scope":1570,"src":"795:114:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1065,"nodeType":"Block","src":"1018:72:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1030:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1034:6:7","memberName":"sender","nodeType":"MemberAccess","src":"1030:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1059,"name":"_aggregatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"1044:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1030:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c7941676772656761746f72","id":1061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1064:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243","typeString":"literal_string \"OnlyAggregator\""},"value":"OnlyAggregator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243","typeString":"literal_string \"OnlyAggregator\""}],"id":1056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1022:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1022:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1063,"nodeType":"ExpressionStatement","src":"1022:59:7"},{"id":1064,"nodeType":"PlaceholderStatement","src":"1085:1:7"}]},"documentation":{"id":1054,"nodeType":"StructuredDocumentation","src":"912:78:7","text":" @dev Modifier that allows only the aggregator to call a function."},"id":1066,"name":"onlyAggregator","nameLocation":"1001:14:7","nodeType":"ModifierDefinition","parameters":{"id":1055,"nodeType":"ParameterList","parameters":[],"src":"1015:2:7"},"src":"992:98:7","virtual":false,"visibility":"internal"},{"body":{"id":1075,"nodeType":"Block","src":"1361:16:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1072,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"1365:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1074,"nodeType":"ExpressionStatement","src":"1365:8:7"}]},"documentation":{"id":1067,"nodeType":"StructuredDocumentation","src":"1286:37:7","text":" @dev Pause the contract."},"functionSelector":"8456cb59","id":1076,"implemented":true,"kind":"function","modifiers":[{"id":1070,"kind":"modifierInvocation","modifierName":{"id":1069,"name":"onlyOwner","nameLocations":["1351:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"1351:9:7"},"nodeType":"ModifierInvocation","src":"1351:9:7"}],"name":"pause","nameLocation":"1334:5:7","nodeType":"FunctionDefinition","parameters":{"id":1068,"nodeType":"ParameterList","parameters":[],"src":"1339:2:7"},"returnParameters":{"id":1071,"nodeType":"ParameterList","parameters":[],"src":"1361:0:7"},"scope":1570,"src":"1325:52:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1085,"nodeType":"Block","src":"1459:18:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1082,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"1463:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1084,"nodeType":"ExpressionStatement","src":"1463:10:7"}]},"documentation":{"id":1077,"nodeType":"StructuredDocumentation","src":"1380:39:7","text":" @dev Unpause the contract."},"functionSelector":"3f4ba83a","id":1086,"implemented":true,"kind":"function","modifiers":[{"id":1080,"kind":"modifierInvocation","modifierName":{"id":1079,"name":"onlyOwner","nameLocations":["1449:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"1449:9:7"},"nodeType":"ModifierInvocation","src":"1449:9:7"}],"name":"unpause","nameLocation":"1430:7:7","nodeType":"FunctionDefinition","parameters":{"id":1078,"nodeType":"ParameterList","parameters":[],"src":"1437:2:7"},"returnParameters":{"id":1081,"nodeType":"ParameterList","parameters":[],"src":"1459:0:7"},"scope":1570,"src":"1421:56:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1842],"body":{"id":1208,"nodeType":"Block","src":"1945:1095:7","statements":[{"expression":{"arguments":[{"id":1109,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"1988:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1110,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"1996:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1111,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1099,"src":"2005:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1112,"name":"_senderFeeRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"2021:19:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1113,"name":"_senderFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"2042:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1108,"name":"_handler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"1979:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256,address,address,uint256) view"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1979:74:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1115,"nodeType":"ExpressionStatement","src":"1979:74:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1119,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"2098:11:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":1118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2092:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1117,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:7","typeDescriptions":{}}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2111:6:7","memberName":"length","nodeType":"MemberAccess","src":"2092:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2121:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2092:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69644d65737361676548617368","id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2124:20:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4","typeString":"literal_string \"InvalidMessageHash\""},"value":"InvalidMessageHash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4","typeString":"literal_string \"InvalidMessageHash\""}],"id":1116,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2084:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2084:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"2084:61:7"},{"expression":{"arguments":[{"expression":{"id":1131,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2226:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2230:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2226:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1135,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2246:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Gateway_$1570","typeString":"contract Gateway"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gateway_$1570","typeString":"contract Gateway"}],"id":1134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2238:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1133,"name":"address","nodeType":"ElementaryTypeName","src":"2238:7:7","typeDescriptions":{}}},"id":1136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2238:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1137,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"2253:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1138,"name":"_senderFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"2263:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2253:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":1128,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"2205:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1127,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"2198:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2198:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:12:7","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":994,"src":"2198:27:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2198:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1141,"nodeType":"ExpressionStatement","src":"2198:76:7"},{"expression":{"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2329:20:7","subExpression":{"baseExpression":{"id":1142,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1024,"src":"2329:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1145,"indexExpression":{"expression":{"id":1143,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2329:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1147,"nodeType":"ExpressionStatement","src":"2329:20:7"},{"expression":{"id":1160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1148,"name":"orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2403:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1152,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2434:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2438:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2434:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1154,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1024,"src":"2446:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1157,"indexExpression":{"expression":{"id":1155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2453:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2457:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2453:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2446:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2423:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2427:6:7","memberName":"encode","nodeType":"MemberAccess","src":"2423:10:7","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1149,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2413:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2403:63:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1161,"nodeType":"ExpressionStatement","src":"2403:63:7"},{"assignments":[1163],"declarations":[{"constant":false,"id":1163,"mutability":"mutable","name":"_protocolFee","nameLocation":"2503:12:7","nodeType":"VariableDeclaration","scope":1208,"src":"2495:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1162,"name":"uint256","nodeType":"ElementaryTypeName","src":"2495:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1164,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"2519:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1165,"name":"protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"2529:18:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2519:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2518:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1168,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"2551:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2518:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2495:63:7"},{"expression":{"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1171,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"2562:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1173,"indexExpression":{"id":1172,"name":"orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2568:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2562:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":1175,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2598:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2602:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2598:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1177,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"2620:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1178,"name":"_senderFeeRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"2651:19:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1179,"name":"_senderFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"2686:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1180,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1163,"src":"2714:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":1181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2744:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":1182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2766:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":1183,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1099,"src":"2791:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1186,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"2829:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2822:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1184,"name":"uint64","nodeType":"ElementaryTypeName","src":"2822:6:7","typeDescriptions":{}}},"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1188,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"2850:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1174,"name":"Order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"2579:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Order_$1822_storage_ptr_$","typeString":"type(struct IGateway.Order storage pointer)"}},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2590:6:7","2613:5:7","2631:18:7","2675:9:7","2701:11:7","2731:11:7","2754:10:7","2776:13:7","2810:10:7","2842:6:7"],"names":["sender","token","senderFeeRecipient","senderFee","protocolFee","isFulfilled","isRefunded","refundAddress","currentBPS","amount"],"nodeType":"FunctionCall","src":"2579:283:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_memory_ptr","typeString":"struct IGateway.Order memory"}},"src":"2562:300:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1191,"nodeType":"ExpressionStatement","src":"2562:300:7"},{"eventCall":{"arguments":[{"expression":{"baseExpression":{"id":1193,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"2919:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1195,"indexExpression":{"id":1194,"name":"orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2925:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2919:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2934:6:7","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":1803,"src":"2919:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1197,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"2945:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":1198,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"2956:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1200,"indexExpression":{"id":1199,"name":"orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2962:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2956:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2971:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1821,"src":"2956:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1202,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1163,"src":"2982:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1203,"name":"orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2999:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1204,"name":"_rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"3011:5:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":1205,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"3021:11:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":1192,"name":"OrderCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"2902:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes32,uint256,string memory)"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:134:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1207,"nodeType":"EmitStatement","src":"2897:139:7"}]},"documentation":{"id":1087,"nodeType":"StructuredDocumentation","src":"1668:39:7","text":"@dev See {createOrder-IGateway}. "},"functionSelector":"809804f7","id":1209,"implemented":true,"kind":"function","modifiers":[{"id":1104,"kind":"modifierInvocation","modifierName":{"id":1103,"name":"whenNotPaused","nameLocations":["1905:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":458,"src":"1905:13:7"},"nodeType":"ModifierInvocation","src":"1905:13:7"}],"name":"createOrder","nameLocation":"1718:11:7","nodeType":"FunctionDefinition","parameters":{"id":1102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1089,"mutability":"mutable","name":"_token","nameLocation":"1741:6:7","nodeType":"VariableDeclaration","scope":1209,"src":"1733:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1088,"name":"address","nodeType":"ElementaryTypeName","src":"1733:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"_amount","nameLocation":"1759:7:7","nodeType":"VariableDeclaration","scope":1209,"src":"1751:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint256","nodeType":"ElementaryTypeName","src":"1751:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1093,"mutability":"mutable","name":"_rate","nameLocation":"1777:5:7","nodeType":"VariableDeclaration","scope":1209,"src":"1770:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1092,"name":"uint96","nodeType":"ElementaryTypeName","src":"1770:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":1095,"mutability":"mutable","name":"_senderFeeRecipient","nameLocation":"1794:19:7","nodeType":"VariableDeclaration","scope":1209,"src":"1786:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1094,"name":"address","nodeType":"ElementaryTypeName","src":"1786:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1097,"mutability":"mutable","name":"_senderFee","nameLocation":"1825:10:7","nodeType":"VariableDeclaration","scope":1209,"src":"1817:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1096,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1099,"mutability":"mutable","name":"_refundAddress","nameLocation":"1847:14:7","nodeType":"VariableDeclaration","scope":1209,"src":"1839:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1098,"name":"address","nodeType":"ElementaryTypeName","src":"1839:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1101,"mutability":"mutable","name":"messageHash","nameLocation":"1881:11:7","nodeType":"VariableDeclaration","scope":1209,"src":"1865:27:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1100,"name":"string","nodeType":"ElementaryTypeName","src":"1865:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1729:166:7"},"returnParameters":{"id":1107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"orderId","nameLocation":"1936:7:7","nodeType":"VariableDeclaration","scope":1209,"src":"1928:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1928:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1927:17:7"},"scope":1570,"src":"1709:1331:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1264,"nodeType":"Block","src":"3584:276:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1224,"name":"_isTokenSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"3596:17:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1226,"indexExpression":{"id":1225,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"3614:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3596:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3625:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3596:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f6b656e4e6f74537570706f72746564","id":1229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3628:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1","typeString":"literal_string \"TokenNotSupported\""},"value":"TokenNotSupported"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1","typeString":"literal_string \"TokenNotSupported\""}],"id":1223,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3588:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3588:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1231,"nodeType":"ExpressionStatement","src":"3588:60:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1233,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1214,"src":"3660:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3671:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3660:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e7449735a65726f","id":1236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3674:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2","typeString":"literal_string \"AmountIsZero\""},"value":"AmountIsZero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2","typeString":"literal_string \"AmountIsZero\""}],"id":1232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3652:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1238,"nodeType":"ExpressionStatement","src":"3652:37:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1240,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"3701:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3727:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3719:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1241,"name":"address","nodeType":"ElementaryTypeName","src":"3719:7:7","typeDescriptions":{}}},"id":1244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3719:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3701:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468726f775a65726f41646472657373","id":1246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3731:18:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7","typeString":"literal_string \"ThrowZeroAddress\""},"value":"ThrowZeroAddress"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7","typeString":"literal_string \"ThrowZeroAddress\""}],"id":1239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3693:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3693:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1248,"nodeType":"ExpressionStatement","src":"3693:57:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1249,"name":"_senderFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"3759:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3773:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3759:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1263,"nodeType":"IfStatement","src":"3755:102:7","trueBody":{"id":1262,"nodeType":"Block","src":"3776:81:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1253,"name":"_senderFeeRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"3789:19:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3820:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3812:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1254,"name":"address","nodeType":"ElementaryTypeName","src":"3812:7:7","typeDescriptions":{}}},"id":1257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3812:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3789:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696453656e646572466565526563697069656e74","id":1259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3824:27:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8","typeString":"literal_string \"InvalidSenderFeeRecipient\""},"value":"InvalidSenderFeeRecipient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8","typeString":"literal_string \"InvalidSenderFeeRecipient\""}],"id":1252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3781:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1261,"nodeType":"ExpressionStatement","src":"3781:71:7"}]}}]},"documentation":{"id":1210,"nodeType":"StructuredDocumentation","src":"3043:388:7","text":" @dev Internal function to handle order creation.\n @param _token The address of the token being traded.\n @param _amount The amount of tokens being traded.\n @param _refundAddress The address to refund the tokens in case of cancellation.\n @param _senderFeeRecipient The address of the recipient for the sender fee.\n @param _senderFee The amount of the sender fee."},"id":1265,"implemented":true,"kind":"function","modifiers":[],"name":"_handler","nameLocation":"3442:8:7","nodeType":"FunctionDefinition","parameters":{"id":1221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"_token","nameLocation":"3462:6:7","nodeType":"VariableDeclaration","scope":1265,"src":"3454:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1211,"name":"address","nodeType":"ElementaryTypeName","src":"3454:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"_amount","nameLocation":"3480:7:7","nodeType":"VariableDeclaration","scope":1265,"src":"3472:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1213,"name":"uint256","nodeType":"ElementaryTypeName","src":"3472:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1216,"mutability":"mutable","name":"_refundAddress","nameLocation":"3499:14:7","nodeType":"VariableDeclaration","scope":1265,"src":"3491:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1215,"name":"address","nodeType":"ElementaryTypeName","src":"3491:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1218,"mutability":"mutable","name":"_senderFeeRecipient","nameLocation":"3525:19:7","nodeType":"VariableDeclaration","scope":1265,"src":"3517:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1217,"name":"address","nodeType":"ElementaryTypeName","src":"3517:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1220,"mutability":"mutable","name":"_senderFee","nameLocation":"3556:10:7","nodeType":"VariableDeclaration","scope":1265,"src":"3548:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1219,"name":"uint256","nodeType":"ElementaryTypeName","src":"3548:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3450:119:7"},"returnParameters":{"id":1222,"nodeType":"ParameterList","parameters":[],"src":"3584:0:7"},"scope":1570,"src":"3433:427:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1856],"body":{"id":1421,"nodeType":"Block","src":"4255:1396:7","statements":[{"expression":{"arguments":[{"id":1286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4318:28:7","subExpression":{"expression":{"baseExpression":{"id":1282,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4319:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1284,"indexExpression":{"id":1283,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4325:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4319:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4335:11:7","memberName":"isFulfilled","nodeType":"MemberAccess","referencedDeclaration":1813,"src":"4319:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7264657246756c66696c6c6564","id":1287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4348:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","typeString":"literal_string \"OrderFulfilled\""},"value":"OrderFulfilled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","typeString":"literal_string \"OrderFulfilled\""}],"id":1281,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4310:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4310:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1289,"nodeType":"ExpressionStatement","src":"4310:55:7"},{"expression":{"arguments":[{"id":1295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4377:27:7","subExpression":{"expression":{"baseExpression":{"id":1291,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4378:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1293,"indexExpression":{"id":1292,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4384:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4378:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4394:10:7","memberName":"isRefunded","nodeType":"MemberAccess","referencedDeclaration":1815,"src":"4378:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f72646572526566756e646564","id":1296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4406:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","typeString":"literal_string \"OrderRefunded\""},"value":"OrderRefunded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","typeString":"literal_string \"OrderRefunded\""}],"id":1290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4369:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4369:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1298,"nodeType":"ExpressionStatement","src":"4369:53:7"},{"assignments":[1300],"declarations":[{"constant":false,"id":1300,"mutability":"mutable","name":"token","nameLocation":"4467:5:7","nodeType":"VariableDeclaration","scope":1421,"src":"4459:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1305,"initialValue":{"expression":{"baseExpression":{"id":1301,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4475:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1303,"indexExpression":{"id":1302,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4481:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4475:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:5:7","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1805,"src":"4475:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4459:37:7"},{"expression":{"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1306,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4563:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1308,"indexExpression":{"id":1307,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4569:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4563:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4579:10:7","memberName":"currentBPS","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"4563:26:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1310,"name":"_settlePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"4593:14:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4563:44:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":1312,"nodeType":"ExpressionStatement","src":"4563:44:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":1318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1313,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4616:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1315,"indexExpression":{"id":1314,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4622:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4616:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4632:10:7","memberName":"currentBPS","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"4616:26:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4646:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4616:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1363,"nodeType":"IfStatement","src":"4612:453:7","trueBody":{"id":1362,"nodeType":"Block","src":"4649:416:7","statements":[{"expression":{"id":1324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1319,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4699:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1321,"indexExpression":{"id":1320,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4705:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4699:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4715:11:7","memberName":"isFulfilled","nodeType":"MemberAccess","referencedDeclaration":1813,"src":"4699:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4729:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4699:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1325,"nodeType":"ExpressionStatement","src":"4699:34:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1326,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4743:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1328,"indexExpression":{"id":1327,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4749:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4743:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4759:9:7","memberName":"senderFee","nodeType":"MemberAccess","referencedDeclaration":1809,"src":"4743:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4772:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4743:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1361,"nodeType":"IfStatement","src":"4739:321:7","trueBody":{"id":1360,"nodeType":"Block","src":"4775:285:7","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1339,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4853:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1341,"indexExpression":{"id":1340,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4859:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4853:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4869:18:7","memberName":"senderFeeRecipient","nodeType":"MemberAccess","referencedDeclaration":1807,"src":"4853:34:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":1343,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4894:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1345,"indexExpression":{"id":1344,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4900:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4894:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4910:9:7","memberName":"senderFee","nodeType":"MemberAccess","referencedDeclaration":1809,"src":"4894:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":1333,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4815:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1335,"indexExpression":{"id":1334,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4821:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4815:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4831:5:7","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1805,"src":"4815:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1332,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"4808:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4838:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":962,"src":"4808:38:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:117:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1348,"nodeType":"ExpressionStatement","src":"4808:117:7"},{"eventCall":{"arguments":[{"expression":{"baseExpression":{"id":1350,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"4982:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1352,"indexExpression":{"id":1351,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4988:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4982:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4998:18:7","memberName":"senderFeeRecipient","nodeType":"MemberAccess","referencedDeclaration":1807,"src":"4982:34:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":1354,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5023:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1356,"indexExpression":{"id":1355,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"5029:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5023:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5039:9:7","memberName":"senderFee","nodeType":"MemberAccess","referencedDeclaration":1809,"src":"5023:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1349,"name":"SenderFeeTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"4955:20:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:99:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1359,"nodeType":"EmitStatement","src":"4950:104:7"}]}}]}},{"assignments":[1365],"declarations":[{"constant":false,"id":1365,"mutability":"mutable","name":"liquidityProviderAmount","nameLocation":"5113:23:7","nodeType":"VariableDeclaration","scope":1421,"src":"5105:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1364,"name":"uint256","nodeType":"ElementaryTypeName","src":"5105:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1375,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1366,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5140:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1368,"indexExpression":{"id":1367,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"5146:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5140:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5156:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1821,"src":"5140:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1370,"name":"_settlePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"5165:14:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5140:39:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1372,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5139:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1373,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5183:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5139:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5105:85:7"},{"expression":{"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1376,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5194:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1378,"indexExpression":{"id":1377,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"5200:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5210:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1821,"src":"5194:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1380,"name":"liquidityProviderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"5220:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5194:49:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1382,"nodeType":"ExpressionStatement","src":"5194:49:7"},{"assignments":[1384],"declarations":[{"constant":false,"id":1384,"mutability":"mutable","name":"protocolFee","nameLocation":"5256:11:7","nodeType":"VariableDeclaration","scope":1421,"src":"5248:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1383,"name":"uint256","nodeType":"ElementaryTypeName","src":"5248:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1391,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1385,"name":"liquidityProviderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"5271:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1386,"name":"protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"5297:18:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5271:44:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1388,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5270:46:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1389,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5319:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5270:56:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5248:78:7"},{"expression":{"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1392,"name":"liquidityProviderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"5330:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1393,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1384,"src":"5357:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5330:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1395,"nodeType":"ExpressionStatement","src":"5330:38:7"},{"expression":{"arguments":[{"id":1400,"name":"treasuryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"5423:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1401,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1384,"src":"5440:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":1397,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"5407:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1396,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"5400:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5400:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5414:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":962,"src":"5400:22:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5400:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1403,"nodeType":"ExpressionStatement","src":"5400:52:7"},{"expression":{"arguments":[{"id":1408,"name":"_liquidityProvider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1272,"src":"5480:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1409,"name":"liquidityProviderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"5500:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":1405,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"5464:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1404,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"5457:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5471:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":962,"src":"5457:22:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1411,"nodeType":"ExpressionStatement","src":"5457:67:7"},{"eventCall":{"arguments":[{"id":1413,"name":"_splitOrderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1268,"src":"5571:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1414,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"5586:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1415,"name":"_liquidityProvider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1272,"src":"5596:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1416,"name":"_settlePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"5616:14:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1412,"name":"OrderSettled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"5558:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$","typeString":"function (bytes32,bytes32,address,uint96)"}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5558:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1418,"nodeType":"EmitStatement","src":"5553:78:7"},{"expression":{"hexValue":"74727565","id":1419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5643:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1280,"id":1420,"nodeType":"Return","src":"5636:11:7"}]},"documentation":{"id":1266,"nodeType":"StructuredDocumentation","src":"4061:34:7","text":"@dev See {settle-IGateway}. "},"functionSelector":"f22ee704","id":1422,"implemented":true,"kind":"function","modifiers":[{"id":1277,"kind":"modifierInvocation","modifierName":{"id":1276,"name":"onlyAggregator","nameLocations":["4225:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":1066,"src":"4225:14:7"},"nodeType":"ModifierInvocation","src":"4225:14:7"}],"name":"settle","nameLocation":"4106:6:7","nodeType":"FunctionDefinition","parameters":{"id":1275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1268,"mutability":"mutable","name":"_splitOrderId","nameLocation":"4124:13:7","nodeType":"VariableDeclaration","scope":1422,"src":"4116:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4116:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1270,"mutability":"mutable","name":"_orderId","nameLocation":"4149:8:7","nodeType":"VariableDeclaration","scope":1422,"src":"4141:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4141:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1272,"mutability":"mutable","name":"_liquidityProvider","nameLocation":"4169:18:7","nodeType":"VariableDeclaration","scope":1422,"src":"4161:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1271,"name":"address","nodeType":"ElementaryTypeName","src":"4161:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1274,"mutability":"mutable","name":"_settlePercent","nameLocation":"4198:14:7","nodeType":"VariableDeclaration","scope":1422,"src":"4191:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1273,"name":"uint64","nodeType":"ElementaryTypeName","src":"4191:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4112:103:7"},"returnParameters":{"id":1280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1422,"src":"4249:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1278,"name":"bool","nodeType":"ElementaryTypeName","src":"4249:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4248:6:7"},"scope":1570,"src":"4097:1554:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1866],"body":{"id":1522,"nodeType":"Block","src":"5777:809:7","statements":[{"expression":{"arguments":[{"id":1439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5840:28:7","subExpression":{"expression":{"baseExpression":{"id":1435,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5841:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1437,"indexExpression":{"id":1436,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"5847:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5841:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5857:11:7","memberName":"isFulfilled","nodeType":"MemberAccess","referencedDeclaration":1813,"src":"5841:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7264657246756c66696c6c6564","id":1440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5870:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","typeString":"literal_string \"OrderFulfilled\""},"value":"OrderFulfilled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","typeString":"literal_string \"OrderFulfilled\""}],"id":1434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5832:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5832:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1442,"nodeType":"ExpressionStatement","src":"5832:55:7"},{"expression":{"arguments":[{"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5899:27:7","subExpression":{"expression":{"baseExpression":{"id":1444,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5900:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1446,"indexExpression":{"id":1445,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"5906:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5900:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5916:10:7","memberName":"isRefunded","nodeType":"MemberAccess","referencedDeclaration":1815,"src":"5900:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f72646572526566756e646564","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5928:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","typeString":"literal_string \"OrderRefunded\""},"value":"OrderRefunded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","typeString":"literal_string \"OrderRefunded\""}],"id":1443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5891:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1451,"nodeType":"ExpressionStatement","src":"5891:53:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1453,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"5956:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1455,"indexExpression":{"id":1454,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"5962:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5956:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5972:11:7","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":1811,"src":"5956:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1457,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1425,"src":"5987:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5956:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4665654578636565647350726f746f636f6c466565","id":1459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5993:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de","typeString":"literal_string \"FeeExceedsProtocolFee\""},"value":"FeeExceedsProtocolFee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de","typeString":"literal_string \"FeeExceedsProtocolFee\""}],"id":1452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5948:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5948:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1461,"nodeType":"ExpressionStatement","src":"5948:69:7"},{"expression":{"arguments":[{"id":1469,"name":"treasuryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"6102:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1470,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1425,"src":"6119:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":1463,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6070:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1465,"indexExpression":{"id":1464,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6076:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6070:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6086:5:7","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1805,"src":"6070:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1462,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"6063:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6093:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":962,"src":"6063:38:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1472,"nodeType":"ExpressionStatement","src":"6063:61:7"},{"expression":{"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1473,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6153:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1475,"indexExpression":{"id":1474,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6159:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6153:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6169:10:7","memberName":"isRefunded","nodeType":"MemberAccess","referencedDeclaration":1815,"src":"6153:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6182:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6153:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1479,"nodeType":"ExpressionStatement","src":"6153:33:7"},{"expression":{"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1480,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6190:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1482,"indexExpression":{"id":1481,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6196:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6190:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6206:10:7","memberName":"currentBPS","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"6190:26:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6219:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6190:30:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":1486,"nodeType":"ExpressionStatement","src":"6190:30:7"},{"assignments":[1488],"declarations":[{"constant":false,"id":1488,"mutability":"mutable","name":"refundAmount","nameLocation":"6267:12:7","nodeType":"VariableDeclaration","scope":1522,"src":"6259:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1487,"name":"uint256","nodeType":"ElementaryTypeName","src":"6259:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1495,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1489,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6282:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1491,"indexExpression":{"id":1490,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6288:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6282:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6298:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1821,"src":"6282:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1493,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1425,"src":"6307:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6282:29:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6259:52:7"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1503,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6424:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1505,"indexExpression":{"id":1504,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6430:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6424:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6440:13:7","memberName":"refundAddress","nodeType":"MemberAccess","referencedDeclaration":1817,"src":"6424:29:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1507,"name":"refundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"6458:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"baseExpression":{"id":1508,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6473:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1510,"indexExpression":{"id":1509,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6479:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6473:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6489:9:7","memberName":"senderFee","nodeType":"MemberAccess","referencedDeclaration":1809,"src":"6473:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6458:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":1497,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6388:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1499,"indexExpression":{"id":1498,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6394:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6388:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"id":1500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6404:5:7","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1805,"src":"6388:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1496,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"6381:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$995_$","typeString":"type(contract IERC20)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6381:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$995","typeString":"contract IERC20"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6411:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":962,"src":"6381:38:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6381:121:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1514,"nodeType":"ExpressionStatement","src":"6381:121:7"},{"eventCall":{"arguments":[{"id":1516,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1425,"src":"6551:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1517,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"6557:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1515,"name":"OrderRefunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"6537:13:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":1518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6537:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1519,"nodeType":"EmitStatement","src":"6532:34:7"},{"expression":{"hexValue":"74727565","id":1520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6578:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1433,"id":1521,"nodeType":"Return","src":"6571:11:7"}]},"documentation":{"id":1423,"nodeType":"StructuredDocumentation","src":"5654:34:7","text":"@dev See {refund-IGateway}. "},"functionSelector":"71eedb88","id":1523,"implemented":true,"kind":"function","modifiers":[{"id":1430,"kind":"modifierInvocation","modifierName":{"id":1429,"name":"onlyAggregator","nameLocations":["5747:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":1066,"src":"5747:14:7"},"nodeType":"ModifierInvocation","src":"5747:14:7"}],"name":"refund","nameLocation":"5699:6:7","nodeType":"FunctionDefinition","parameters":{"id":1428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1425,"mutability":"mutable","name":"_fee","nameLocation":"5714:4:7","nodeType":"VariableDeclaration","scope":1523,"src":"5706:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1424,"name":"uint256","nodeType":"ElementaryTypeName","src":"5706:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1427,"mutability":"mutable","name":"_orderId","nameLocation":"5728:8:7","nodeType":"VariableDeclaration","scope":1523,"src":"5720:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5720:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5705:32:7"},"returnParameters":{"id":1433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1523,"src":"5771:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1431,"name":"bool","nodeType":"ElementaryTypeName","src":"5771:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5770:6:7"},"scope":1570,"src":"5690:896:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1883],"body":{"id":1536,"nodeType":"Block","src":"6896:30:7","statements":[{"expression":{"baseExpression":{"id":1532,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"6907:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Order_$1822_storage_$","typeString":"mapping(bytes32 => struct IGateway.Order storage ref)"}},"id":1534,"indexExpression":{"id":1533,"name":"_orderId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1526,"src":"6913:8:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6907:15:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage","typeString":"struct IGateway.Order storage ref"}},"functionReturnParameters":1531,"id":1535,"nodeType":"Return","src":"6900:22:7"}]},"documentation":{"id":1524,"nodeType":"StructuredDocumentation","src":"6777:40:7","text":"@dev See {getOrderInfo-IGateway}. "},"functionSelector":"768c6ec0","id":1537,"implemented":true,"kind":"function","modifiers":[],"name":"getOrderInfo","nameLocation":"6828:12:7","nodeType":"FunctionDefinition","parameters":{"id":1527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"_orderId","nameLocation":"6849:8:7","nodeType":"VariableDeclaration","scope":1537,"src":"6841:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6841:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6840:18:7"},"returnParameters":{"id":1531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1537,"src":"6882:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_memory_ptr","typeString":"struct IGateway.Order"},"typeName":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"Order","nameLocations":["6882:5:7"],"nodeType":"IdentifierPath","referencedDeclaration":1822,"src":"6882:5:7"},"referencedDeclaration":1822,"src":"6882:5:7","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage_ptr","typeString":"struct IGateway.Order"}},"visibility":"internal"}],"src":"6881:14:7"},"scope":1570,"src":"6819:107:7","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1874],"body":{"id":1555,"nodeType":"Block","src":"7046:71:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1545,"name":"_isTokenSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"7054:17:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1547,"indexExpression":{"id":1546,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"7072:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7054:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7083:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7054:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1552,"nodeType":"IfStatement","src":"7050:47:7","trueBody":{"expression":{"hexValue":"74727565","id":1550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7093:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1544,"id":1551,"nodeType":"Return","src":"7086:11:7"}},{"expression":{"hexValue":"66616c7365","id":1553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7108:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1544,"id":1554,"nodeType":"Return","src":"7101:12:7"}]},"documentation":{"id":1538,"nodeType":"StructuredDocumentation","src":"6929:44:7","text":"@dev See {isTokenSupported-IGateway}. "},"functionSelector":"75151b63","id":1556,"implemented":true,"kind":"function","modifiers":[],"name":"isTokenSupported","nameLocation":"6984:16:7","nodeType":"FunctionDefinition","parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"_token","nameLocation":"7009:6:7","nodeType":"VariableDeclaration","scope":1556,"src":"7001:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1539,"name":"address","nodeType":"ElementaryTypeName","src":"7001:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7000:16:7"},"returnParameters":{"id":1544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1556,"src":"7040:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1542,"name":"bool","nodeType":"ElementaryTypeName","src":"7040:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7039:6:7"},"scope":1570,"src":"6975:142:7","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1891],"body":{"id":1568,"nodeType":"Block","src":"7228:44:7","statements":[{"expression":{"components":[{"id":1564,"name":"protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"7240:18:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1565,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"7260:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1566,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7239:29:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint256_$","typeString":"tuple(uint64,uint256)"}},"functionReturnParameters":1563,"id":1567,"nodeType":"Return","src":"7232:36:7"}]},"documentation":{"id":1557,"nodeType":"StructuredDocumentation","src":"7120:41:7","text":"@dev See {getFeeDetails-IGateway}. "},"functionSelector":"b810c636","id":1569,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeDetails","nameLocation":"7172:13:7","nodeType":"FunctionDefinition","parameters":{"id":1558,"nodeType":"ParameterList","parameters":[],"src":"7185:2:7"},"returnParameters":{"id":1563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1569,"src":"7211:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1559,"name":"uint64","nodeType":"ElementaryTypeName","src":"7211:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1569,"src":"7219:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7219:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7210:17:7"},"scope":1570,"src":"7163:109:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1571,"src":"390:6884:7","usedErrors":[]}],"src":"39:7236:7"},"id":7},"contracts/GatewaySettingManager.sol":{"ast":{"absolutePath":"contracts/GatewaySettingManager.sol","exportedSymbols":{"ContextUpgradeable":[917],"GatewaySettingManager":[1754],"Initializable":[408],"Ownable2StepUpgradeable":[106],"OwnableUpgradeable":[239]},"id":1755,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1572,"literals":["solidity","^","0.8",".18"],"nodeType":"PragmaDirective","src":"168:24:8"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":1573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1755,"sourceUnit":107,"src":"194:80:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1574,"name":"Ownable2StepUpgradeable","nameLocations":["310:23:8"],"nodeType":"IdentifierPath","referencedDeclaration":106,"src":"310:23:8"},"id":1575,"nodeType":"InheritanceSpecifier","src":"310:23:8"}],"canonicalName":"GatewaySettingManager","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1754,"linearizedBaseContracts":[1754,106,239,917,408],"name":"GatewaySettingManager","nameLocation":"285:21:8","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1577,"mutability":"mutable","name":"MAX_BPS","nameLocation":"354:7:8","nodeType":"VariableDeclaration","scope":1754,"src":"337:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1579,"mutability":"mutable","name":"protocolFeePercent","nameLocation":"380:18:8","nodeType":"VariableDeclaration","scope":1754,"src":"364:34:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1578,"name":"uint64","nodeType":"ElementaryTypeName","src":"364:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1581,"mutability":"mutable","name":"treasuryAddress","nameLocation":"418:15:8","nodeType":"VariableDeclaration","scope":1754,"src":"401:32:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1580,"name":"address","nodeType":"ElementaryTypeName","src":"401:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1583,"mutability":"mutable","name":"_aggregatorAddress","nameLocation":"453:18:8","nodeType":"VariableDeclaration","scope":1754,"src":"436:35:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1582,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"_isTokenSupported","nameLocation":"511:17:8","nodeType":"VariableDeclaration","scope":1754,"src":"474:54:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1586,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1584,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"474:27:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1585,"name":"uint256","nodeType":"ElementaryTypeName","src":"493:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":1591,"mutability":"mutable","name":"__gap","nameLocation":"658:5:8","nodeType":"VariableDeclaration","scope":1754,"src":"638:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1588,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1590,"length":{"hexValue":"3530","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:2:8","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"638:11:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"},{"anonymous":false,"eventSelector":"cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c","id":1599,"name":"SettingManagerBool","nameLocation":"674:18:8","nodeType":"EventDefinition","parameters":{"id":1598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"indexed":true,"mutability":"mutable","name":"what","nameLocation":"709:4:8","nodeType":"VariableDeclaration","scope":1599,"src":"693:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"693:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1595,"indexed":true,"mutability":"mutable","name":"value","nameLocation":"731:5:8","nodeType":"VariableDeclaration","scope":1599,"src":"715:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1594,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1597,"indexed":false,"mutability":"mutable","name":"status","nameLocation":"746:6:8","nodeType":"VariableDeclaration","scope":1599,"src":"738:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1596,"name":"uint256","nodeType":"ElementaryTypeName","src":"738:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"692:61:8"},"src":"668:86:8"},{"anonymous":false,"eventSelector":"1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b","id":1603,"name":"ProtocolFeeUpdated","nameLocation":"762:18:8","nodeType":"EventDefinition","parameters":{"id":1602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"indexed":false,"mutability":"mutable","name":"protocolFee","nameLocation":"788:11:8","nodeType":"VariableDeclaration","scope":1603,"src":"781:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1600,"name":"uint64","nodeType":"ElementaryTypeName","src":"781:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"780:20:8"},"src":"756:45:8"},{"anonymous":false,"eventSelector":"bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4","id":1609,"name":"ProtocolAddressUpdated","nameLocation":"809:22:8","nodeType":"EventDefinition","parameters":{"id":1608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1605,"indexed":true,"mutability":"mutable","name":"what","nameLocation":"848:4:8","nodeType":"VariableDeclaration","scope":1609,"src":"832:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"832:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1607,"indexed":true,"mutability":"mutable","name":"treasuryAddress","nameLocation":"870:15:8","nodeType":"VariableDeclaration","scope":1609,"src":"854:31:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1606,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"831:55:8"},"src":"803:84:8"},{"anonymous":false,"eventSelector":"2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73","id":1613,"name":"SetFeeRecipient","nameLocation":"895:15:8","nodeType":"EventDefinition","parameters":{"id":1612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1611,"indexed":true,"mutability":"mutable","name":"treasuryAddress","nameLocation":"927:15:8","nodeType":"VariableDeclaration","scope":1613,"src":"911:31:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1610,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"910:33:8"},"src":"889:55:8"},{"body":{"id":1663,"nodeType":"Block","src":"1518:243:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"1530:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1547:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1539:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1627,"name":"address","nodeType":"ElementaryTypeName","src":"1539:7:8","typeDescriptions":{}}},"id":1630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1539:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1530:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174657761793a207a65726f2061646472657373","id":1632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1551:23:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","typeString":"literal_string \"Gateway: zero address\""},"value":"Gateway: zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","typeString":"literal_string \"Gateway: zero address\""}],"id":1625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1522:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1522:53:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1634,"nodeType":"ExpressionStatement","src":"1522:53:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1636,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1587:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1597:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1587:11:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1639,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1602:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":1640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1612:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1602:11:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1587:26:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174657761793a20696e76616c696420737461747573","id":1643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1615:25:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","typeString":"literal_string \"Gateway: invalid status\""},"value":"Gateway: invalid status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","typeString":"literal_string \"Gateway: invalid status\""}],"id":1635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1579:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1579:62:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1645,"nodeType":"ExpressionStatement","src":"1579:62:8"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1646,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"1649:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"746f6b656e","id":1647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:7:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b9b0454cadcb5884dd3faa6ba975da4d2459aa3f11d31291a25a8358f84946d","typeString":"literal_string \"token\""},"value":"token"},"src":"1649:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1662,"nodeType":"IfStatement","src":"1645:113:8","trueBody":{"id":1661,"nodeType":"Block","src":"1666:92:8","statements":[{"expression":{"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1649,"name":"_isTokenSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"1671:17:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1651,"indexExpression":{"id":1650,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"1689:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1671:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1652,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1698:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1671:33:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1654,"nodeType":"ExpressionStatement","src":"1671:33:8"},{"eventCall":{"arguments":[{"id":1656,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"1733:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"1739:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1658,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1746:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1655,"name":"SettingManagerBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"1714:18:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":1659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1714:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1660,"nodeType":"EmitStatement","src":"1709:44:8"}]}}]},"documentation":{"id":1614,"nodeType":"StructuredDocumentation","src":"1141:283:8","text":" @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address."},"functionSelector":"cd992400","id":1664,"implemented":true,"kind":"function","modifiers":[{"id":1623,"kind":"modifierInvocation","modifierName":{"id":1622,"name":"onlyOwner","nameLocations":["1508:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"1508:9:8"},"nodeType":"ModifierInvocation","src":"1508:9:8"}],"name":"settingManagerBool","nameLocation":"1435:18:8","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"what","nameLocation":"1462:4:8","nodeType":"VariableDeclaration","scope":1664,"src":"1454:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1618,"mutability":"mutable","name":"value","nameLocation":"1476:5:8","nodeType":"VariableDeclaration","scope":1664,"src":"1468:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1617,"name":"address","nodeType":"ElementaryTypeName","src":"1468:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"status","nameLocation":"1491:6:8","nodeType":"VariableDeclaration","scope":1664,"src":"1483:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1453:45:8"},"returnParameters":{"id":1624,"nodeType":"ParameterList","parameters":[],"src":"1518:0:8"},"scope":1754,"src":"1426:335:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1680,"nodeType":"Block","src":"1968:96:8","statements":[{"expression":{"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1672,"name":"protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"1972:18:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1673,"name":"_protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"1993:19:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1972:40:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1675,"nodeType":"ExpressionStatement","src":"1972:40:8"},{"eventCall":{"arguments":[{"id":1677,"name":"_protocolFeePercent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"2040:19:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1676,"name":"ProtocolFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"2021:18:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1679,"nodeType":"EmitStatement","src":"2016:44:8"}]},"documentation":{"id":1665,"nodeType":"StructuredDocumentation","src":"1764:128:8","text":" @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set."},"functionSelector":"47094e2e","id":1681,"implemented":true,"kind":"function","modifiers":[{"id":1670,"kind":"modifierInvocation","modifierName":{"id":1669,"name":"onlyOwner","nameLocations":["1958:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"1958:9:8"},"nodeType":"ModifierInvocation","src":"1958:9:8"}],"name":"updateProtocolFee","nameLocation":"1903:17:8","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"_protocolFeePercent","nameLocation":"1928:19:8","nodeType":"VariableDeclaration","scope":1681,"src":"1921:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1666,"name":"uint64","nodeType":"ElementaryTypeName","src":"1921:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1920:28:8"},"returnParameters":{"id":1671,"nodeType":"ParameterList","parameters":[],"src":"1968:0:8"},"scope":1754,"src":"1894:170:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1752,"nodeType":"Block","src":"2372:472:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2384:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2401:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2393:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1693,"name":"address","nodeType":"ElementaryTypeName","src":"2393:7:8","typeDescriptions":{}}},"id":1696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2393:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2384:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174657761793a207a65726f2061646472657373","id":1698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2405:23:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","typeString":"literal_string \"Gateway: zero address\""},"value":"Gateway: zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","typeString":"literal_string \"Gateway: zero address\""}],"id":1691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2376:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:53:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1700,"nodeType":"ExpressionStatement","src":"2376:53:8"},{"assignments":[1702],"declarations":[{"constant":false,"id":1702,"mutability":"mutable","name":"updated","nameLocation":"2438:7:8","nodeType":"VariableDeclaration","scope":1752,"src":"2433:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1701,"name":"bool","nodeType":"ElementaryTypeName","src":"2433:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1703,"nodeType":"VariableDeclarationStatement","src":"2433:12:8"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1704,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"2453:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"7472656173757279","id":1705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2461:10:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbd818ad4dd6f1ff9338c2bb62480241424dd9a65f9f3284101a01cd099ad8ac","typeString":"literal_string \"treasury\""},"value":"treasury"},"src":"2453:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1723,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"2614:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"61676772656761746f72","id":1724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2622:12:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_e124d7cc79a19705865fa21b784ba187cd393559e960c0c071132cb60354d1a3","typeString":"literal_string \"aggregator\""},"value":"aggregator"},"src":"2614:20:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1742,"nodeType":"IfStatement","src":"2610:165:8","trueBody":{"id":1741,"nodeType":"Block","src":"2636:139:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1727,"name":"_aggregatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"2649:18:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1728,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2671:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:27:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174657761793a2061676772656761746f72206164647265737320616c726561647920736574","id":1730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2678:41:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","typeString":"literal_string \"Gateway: aggregator address already set\""},"value":"Gateway: aggregator address already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","typeString":"literal_string \"Gateway: aggregator address already set\""}],"id":1726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2641:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:79:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1732,"nodeType":"ExpressionStatement","src":"2641:79:8"},{"expression":{"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1733,"name":"_aggregatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"2725:18:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1734,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2746:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2725:26:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1736,"nodeType":"ExpressionStatement","src":"2725:26:8"},{"expression":{"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1737,"name":"updated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"2756:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2766:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2756:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1740,"nodeType":"ExpressionStatement","src":"2756:14:8"}]}},"id":1743,"nodeType":"IfStatement","src":"2449:326:8","trueBody":{"id":1722,"nodeType":"Block","src":"2473:131:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1708,"name":"treasuryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"2486:15:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2505:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2486:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174657761793a207472656173757279206164647265737320616c726561647920736574","id":1711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2512:39:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","typeString":"literal_string \"Gateway: treasury address already set\""},"value":"Gateway: treasury address already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","typeString":"literal_string \"Gateway: treasury address already set\""}],"id":1707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2478:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2478:74:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1713,"nodeType":"ExpressionStatement","src":"2478:74:8"},{"expression":{"id":1716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1714,"name":"treasuryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"2557:15:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2575:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2557:23:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1717,"nodeType":"ExpressionStatement","src":"2557:23:8"},{"expression":{"id":1720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1718,"name":"updated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"2585:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2595:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2585:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1721,"nodeType":"ExpressionStatement","src":"2585:14:8"}]}},{"condition":{"id":1744,"name":"updated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"2782:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1751,"nodeType":"IfStatement","src":"2778:63:8","trueBody":{"id":1750,"nodeType":"Block","src":"2791:50:8","statements":[{"eventCall":{"arguments":[{"id":1746,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"2824:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1747,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"2830:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1745,"name":"ProtocolAddressUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"2801:22:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2801:35:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1749,"nodeType":"EmitStatement","src":"2796:40:8"}]}}]},"documentation":{"id":1682,"nodeType":"StructuredDocumentation","src":"2067:224:8","text":" @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address."},"functionSelector":"40ebc677","id":1753,"implemented":true,"kind":"function","modifiers":[{"id":1689,"kind":"modifierInvocation","modifierName":{"id":1688,"name":"onlyOwner","nameLocations":["2362:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":153,"src":"2362:9:8"},"nodeType":"ModifierInvocation","src":"2362:9:8"}],"name":"updateProtocolAddress","nameLocation":"2302:21:8","nodeType":"FunctionDefinition","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1684,"mutability":"mutable","name":"what","nameLocation":"2332:4:8","nodeType":"VariableDeclaration","scope":1753,"src":"2324:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1686,"mutability":"mutable","name":"value","nameLocation":"2346:5:8","nodeType":"VariableDeclaration","scope":1753,"src":"2338:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1685,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:29:8"},"returnParameters":{"id":1690,"nodeType":"ParameterList","parameters":[],"src":"2372:0:8"},"scope":1754,"src":"2293:551:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1755,"src":"276:2570:8","usedErrors":[]}],"src":"168:2679:8"},"id":8},"contracts/interfaces/IGateway.sol":{"ast":{"absolutePath":"contracts/interfaces/IGateway.sol","exportedSymbols":{"IERC20":[995],"IGateway":[1892]},"id":1893,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1756,"literals":["solidity","^","0.8",".18"],"nodeType":"PragmaDirective","src":"39:24:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1758,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1893,"sourceUnit":996,"src":"65:70:9","symbolAliases":[{"foreign":{"id":1757,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"73:6:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":1759,"nodeType":"StructuredDocumentation","src":"137:73:9","text":" @title IGateway\n @notice Interface for the Gateway contract."},"fullyImplemented":false,"id":1892,"linearizedBaseContracts":[1892],"name":"IGateway","nameLocation":"221:8:9","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1760,"nodeType":"StructuredDocumentation","src":"417:335:9","text":" @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message."},"eventSelector":"40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137","id":1776,"name":"OrderCreated","nameLocation":"760:12:9","nodeType":"EventDefinition","parameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"792:6:9","nodeType":"VariableDeclaration","scope":1776,"src":"776:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1761,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1764,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"818:5:9","nodeType":"VariableDeclaration","scope":1776,"src":"802:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1763,"name":"address","nodeType":"ElementaryTypeName","src":"802:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1766,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"843:6:9","nodeType":"VariableDeclaration","scope":1776,"src":"827:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1765,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1768,"indexed":false,"mutability":"mutable","name":"protocolFee","nameLocation":"861:11:9","nodeType":"VariableDeclaration","scope":1776,"src":"853:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1767,"name":"uint256","nodeType":"ElementaryTypeName","src":"853:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1770,"indexed":false,"mutability":"mutable","name":"orderId","nameLocation":"884:7:9","nodeType":"VariableDeclaration","scope":1776,"src":"876:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"876:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1772,"indexed":false,"mutability":"mutable","name":"rate","nameLocation":"903:4:9","nodeType":"VariableDeclaration","scope":1776,"src":"895:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1771,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1774,"indexed":false,"mutability":"mutable","name":"messageHash","nameLocation":"918:11:9","nodeType":"VariableDeclaration","scope":1776,"src":"911:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1773,"name":"string","nodeType":"ElementaryTypeName","src":"911:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"772:160:9"},"src":"754:179:9"},{"anonymous":false,"documentation":{"id":1777,"nodeType":"StructuredDocumentation","src":"936:303:9","text":" @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled."},"eventSelector":"98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a","id":1787,"name":"OrderSettled","nameLocation":"1247:12:9","nodeType":"EventDefinition","parameters":{"id":1786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"indexed":false,"mutability":"mutable","name":"splitOrderId","nameLocation":"1271:12:9","nodeType":"VariableDeclaration","scope":1787,"src":"1263:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1781,"indexed":true,"mutability":"mutable","name":"orderId","nameLocation":"1303:7:9","nodeType":"VariableDeclaration","scope":1787,"src":"1287:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1287:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1783,"indexed":true,"mutability":"mutable","name":"liquidityProvider","nameLocation":"1330:17:9","nodeType":"VariableDeclaration","scope":1787,"src":"1314:33:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1782,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1785,"indexed":false,"mutability":"mutable","name":"settlePercent","nameLocation":"1358:13:9","nodeType":"VariableDeclaration","scope":1787,"src":"1351:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1784,"name":"uint96","nodeType":"ElementaryTypeName","src":"1351:6:9","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1259:115:9"},"src":"1241:134:9"},{"anonymous":false,"documentation":{"id":1788,"nodeType":"StructuredDocumentation","src":"1378:163:9","text":" @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order."},"eventSelector":"0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e","id":1794,"name":"OrderRefunded","nameLocation":"1549:13:9","nodeType":"EventDefinition","parameters":{"id":1793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1790,"indexed":false,"mutability":"mutable","name":"fee","nameLocation":"1571:3:9","nodeType":"VariableDeclaration","scope":1794,"src":"1563:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1789,"name":"uint256","nodeType":"ElementaryTypeName","src":"1563:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1792,"indexed":true,"mutability":"mutable","name":"orderId","nameLocation":"1592:7:9","nodeType":"VariableDeclaration","scope":1794,"src":"1576:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1576:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1562:38:9"},"src":"1543:58:9"},{"anonymous":false,"documentation":{"id":1795,"nodeType":"StructuredDocumentation","src":"1604:161:9","text":" @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred."},"eventSelector":"44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501","id":1801,"name":"SenderFeeTransferred","nameLocation":"1773:20:9","nodeType":"EventDefinition","parameters":{"id":1800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1797,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1810:6:9","nodeType":"VariableDeclaration","scope":1801,"src":"1794:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1796,"name":"address","nodeType":"ElementaryTypeName","src":"1794:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1799,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"1834:6:9","nodeType":"VariableDeclaration","scope":1801,"src":"1818:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:48:9"},"src":"1767:75:9"},{"canonicalName":"IGateway.Order","id":1822,"members":[{"constant":false,"id":1803,"mutability":"mutable","name":"sender","nameLocation":"2649:6:9","nodeType":"VariableDeclaration","scope":1822,"src":"2641:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1802,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1805,"mutability":"mutable","name":"token","nameLocation":"2667:5:9","nodeType":"VariableDeclaration","scope":1822,"src":"2659:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1804,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1807,"mutability":"mutable","name":"senderFeeRecipient","nameLocation":"2684:18:9","nodeType":"VariableDeclaration","scope":1822,"src":"2676:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1806,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1809,"mutability":"mutable","name":"senderFee","nameLocation":"2714:9:9","nodeType":"VariableDeclaration","scope":1822,"src":"2706:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1808,"name":"uint256","nodeType":"ElementaryTypeName","src":"2706:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1811,"mutability":"mutable","name":"protocolFee","nameLocation":"2735:11:9","nodeType":"VariableDeclaration","scope":1822,"src":"2727:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint256","nodeType":"ElementaryTypeName","src":"2727:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1813,"mutability":"mutable","name":"isFulfilled","nameLocation":"2755:11:9","nodeType":"VariableDeclaration","scope":1822,"src":"2750:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1812,"name":"bool","nodeType":"ElementaryTypeName","src":"2750:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1815,"mutability":"mutable","name":"isRefunded","nameLocation":"2775:10:9","nodeType":"VariableDeclaration","scope":1822,"src":"2770:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1814,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1817,"mutability":"mutable","name":"refundAddress","nameLocation":"2797:13:9","nodeType":"VariableDeclaration","scope":1822,"src":"2789:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1816,"name":"address","nodeType":"ElementaryTypeName","src":"2789:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1819,"mutability":"mutable","name":"currentBPS","nameLocation":"2821:10:9","nodeType":"VariableDeclaration","scope":1822,"src":"2814:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1818,"name":"uint96","nodeType":"ElementaryTypeName","src":"2814:6:9","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":1821,"mutability":"mutable","name":"amount","nameLocation":"2843:6:9","nodeType":"VariableDeclaration","scope":1822,"src":"2835:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1820,"name":"uint256","nodeType":"ElementaryTypeName","src":"2835:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Order","nameLocation":"2631:5:9","nodeType":"StructDefinition","scope":1892,"src":"2624:229:9","visibility":"public"},{"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"3048:964:9","text":" @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order."},"functionSelector":"809804f7","id":1842,"implemented":false,"kind":"function","modifiers":[],"name":"createOrder","nameLocation":"4023:11:9","nodeType":"FunctionDefinition","parameters":{"id":1838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1825,"mutability":"mutable","name":"_token","nameLocation":"4046:6:9","nodeType":"VariableDeclaration","scope":1842,"src":"4038:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1824,"name":"address","nodeType":"ElementaryTypeName","src":"4038:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1827,"mutability":"mutable","name":"_amount","nameLocation":"4064:7:9","nodeType":"VariableDeclaration","scope":1842,"src":"4056:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4056:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1829,"mutability":"mutable","name":"_rate","nameLocation":"4082:5:9","nodeType":"VariableDeclaration","scope":1842,"src":"4075:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1828,"name":"uint96","nodeType":"ElementaryTypeName","src":"4075:6:9","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":1831,"mutability":"mutable","name":"_senderFeeRecipient","nameLocation":"4099:19:9","nodeType":"VariableDeclaration","scope":1842,"src":"4091:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1830,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1833,"mutability":"mutable","name":"_senderFee","nameLocation":"4130:10:9","nodeType":"VariableDeclaration","scope":1842,"src":"4122:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"4122:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1835,"mutability":"mutable","name":"_refundAddress","nameLocation":"4152:14:9","nodeType":"VariableDeclaration","scope":1842,"src":"4144:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1834,"name":"address","nodeType":"ElementaryTypeName","src":"4144:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"messageHash","nameLocation":"4186:11:9","nodeType":"VariableDeclaration","scope":1842,"src":"4170:27:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1836,"name":"string","nodeType":"ElementaryTypeName","src":"4170:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4034:166:9"},"returnParameters":{"id":1841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1840,"mutability":"mutable","name":"_orderId","nameLocation":"4227:8:9","nodeType":"VariableDeclaration","scope":1842,"src":"4219:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4219:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4218:18:9"},"scope":1892,"src":"4014:223:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1843,"nodeType":"StructuredDocumentation","src":"4240:366:9","text":" @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful."},"functionSelector":"f22ee704","id":1856,"implemented":false,"kind":"function","modifiers":[],"name":"settle","nameLocation":"4617:6:9","nodeType":"FunctionDefinition","parameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1845,"mutability":"mutable","name":"_splitOrderId","nameLocation":"4635:13:9","nodeType":"VariableDeclaration","scope":1856,"src":"4627:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4627:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1847,"mutability":"mutable","name":"_orderId","nameLocation":"4660:8:9","nodeType":"VariableDeclaration","scope":1856,"src":"4652:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4652:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1849,"mutability":"mutable","name":"_liquidityProvider","nameLocation":"4680:18:9","nodeType":"VariableDeclaration","scope":1856,"src":"4672:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1848,"name":"address","nodeType":"ElementaryTypeName","src":"4672:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1851,"mutability":"mutable","name":"_settlePercent","nameLocation":"4709:14:9","nodeType":"VariableDeclaration","scope":1856,"src":"4702:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1850,"name":"uint64","nodeType":"ElementaryTypeName","src":"4702:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4623:103:9"},"returnParameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1856,"src":"4745:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1853,"name":"bool","nodeType":"ElementaryTypeName","src":"4745:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4744:6:9"},"scope":1892,"src":"4608:143:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1857,"nodeType":"StructuredDocumentation","src":"4754:299:9","text":" @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful."},"functionSelector":"71eedb88","id":1866,"implemented":false,"kind":"function","modifiers":[],"name":"refund","nameLocation":"5064:6:9","nodeType":"FunctionDefinition","parameters":{"id":1862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1859,"mutability":"mutable","name":"_fee","nameLocation":"5079:4:9","nodeType":"VariableDeclaration","scope":1866,"src":"5071:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1858,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1861,"mutability":"mutable","name":"_orderId","nameLocation":"5093:8:9","nodeType":"VariableDeclaration","scope":1866,"src":"5085:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5085:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5070:32:9"},"returnParameters":{"id":1865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1866,"src":"5121:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1863,"name":"bool","nodeType":"ElementaryTypeName","src":"5121:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5120:6:9"},"scope":1892,"src":"5055:72:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"5130:157:9","text":" @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported."},"functionSelector":"75151b63","id":1874,"implemented":false,"kind":"function","modifiers":[],"name":"isTokenSupported","nameLocation":"5298:16:9","nodeType":"FunctionDefinition","parameters":{"id":1870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"_token","nameLocation":"5323:6:9","nodeType":"VariableDeclaration","scope":1874,"src":"5315:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1868,"name":"address","nodeType":"ElementaryTypeName","src":"5315:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5314:16:9"},"returnParameters":{"id":1873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1874,"src":"5354:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1871,"name":"bool","nodeType":"ElementaryTypeName","src":"5354:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5353:6:9"},"scope":1892,"src":"5289:71:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1875,"nodeType":"StructuredDocumentation","src":"5363:128:9","text":" @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details."},"functionSelector":"768c6ec0","id":1883,"implemented":false,"kind":"function","modifiers":[],"name":"getOrderInfo","nameLocation":"5502:12:9","nodeType":"FunctionDefinition","parameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1877,"mutability":"mutable","name":"_orderId","nameLocation":"5523:8:9","nodeType":"VariableDeclaration","scope":1883,"src":"5515:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5515:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5514:18:9"},"returnParameters":{"id":1882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1883,"src":"5556:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_memory_ptr","typeString":"struct IGateway.Order"},"typeName":{"id":1880,"nodeType":"UserDefinedTypeName","pathNode":{"id":1879,"name":"Order","nameLocations":["5556:5:9"],"nodeType":"IdentifierPath","referencedDeclaration":1822,"src":"5556:5:9"},"referencedDeclaration":1822,"src":"5556:5:9","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$1822_storage_ptr","typeString":"struct IGateway.Order"}},"visibility":"internal"}],"src":"5555:14:9"},"scope":1892,"src":"5493:77:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1884,"nodeType":"StructuredDocumentation","src":"5573:154:9","text":" @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points."},"functionSelector":"b810c636","id":1891,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeDetails","nameLocation":"5738:13:9","nodeType":"FunctionDefinition","parameters":{"id":1885,"nodeType":"ParameterList","parameters":[],"src":"5751:2:9"},"returnParameters":{"id":1890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1887,"mutability":"mutable","name":"protocolReward","nameLocation":"5784:14:9","nodeType":"VariableDeclaration","scope":1891,"src":"5777:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1886,"name":"uint64","nodeType":"ElementaryTypeName","src":"5777:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1889,"mutability":"mutable","name":"max_bps","nameLocation":"5808:7:9","nodeType":"VariableDeclaration","scope":1891,"src":"5800:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1888,"name":"uint256","nodeType":"ElementaryTypeName","src":"5800:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5776:40:9"},"scope":1892,"src":"5729:88:9","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1893,"src":"211:5608:9","usedErrors":[]}],"src":"39:5781:9"},"id":9}},"contracts":{"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n address private _pendingOwner;\\n\\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n function __Ownable2Step_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable2Step_init_unchained() internal onlyInitializing {\\n }\\n /**\\n * @dev Returns the address of the pending owner.\\n */\\n function pendingOwner() public view virtual returns (address) {\\n return _pendingOwner;\\n }\\n\\n /**\\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual override onlyOwner {\\n _pendingOwner = newOwner;\\n emit OwnershipTransferStarted(owner(), newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual override {\\n delete _pendingOwner;\\n super._transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev The new owner accepts the ownership transfer.\\n */\\n function acceptOwnership() public virtual {\\n address sender = _msgSender();\\n require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n _transferOwnership(sender);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n function __Ownable_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable_init_unchained() internal onlyInitializing {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":118,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":238,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":11,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":105,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n function __Ownable_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable_init_unchained() internal onlyInitializing {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":118,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":238,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"constructor constructor() { _disableInitializers(); } ``` ====","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"_initialized":{"custom:oz-retyped-from":"bool","details":"Indicates that the contract has been initialized."},"_initializing":{"details":"Indicates that the contract is in the process of being initialized."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"PausableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":\"PausableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\\n /**\\n * @dev Emitted when the pause is triggered by `account`.\\n */\\n event Paused(address account);\\n\\n /**\\n * @dev Emitted when the pause is lifted by `account`.\\n */\\n event Unpaused(address account);\\n\\n bool private _paused;\\n\\n /**\\n * @dev Initializes the contract in unpaused state.\\n */\\n function __Pausable_init() internal onlyInitializing {\\n __Pausable_init_unchained();\\n }\\n\\n function __Pausable_init_unchained() internal onlyInitializing {\\n _paused = false;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is not paused.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n modifier whenNotPaused() {\\n _requireNotPaused();\\n _;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is paused.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n modifier whenPaused() {\\n _requirePaused();\\n _;\\n }\\n\\n /**\\n * @dev Returns true if the contract is paused, and false otherwise.\\n */\\n function paused() public view virtual returns (bool) {\\n return _paused;\\n }\\n\\n /**\\n * @dev Throws if the contract is paused.\\n */\\n function _requireNotPaused() internal view virtual {\\n require(!paused(), \\\"Pausable: paused\\\");\\n }\\n\\n /**\\n * @dev Throws if the contract is not paused.\\n */\\n function _requirePaused() internal view virtual {\\n require(paused(), \\\"Pausable: not paused\\\");\\n }\\n\\n /**\\n * @dev Triggers stopped state.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n function _pause() internal virtual whenNotPaused {\\n _paused = true;\\n emit Paused(_msgSender());\\n }\\n\\n /**\\n * @dev Returns to normal state.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n function _unpause() internal virtual whenPaused {\\n _paused = false;\\n emit Unpaused(_msgSender());\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":430,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_paused","offset":0,"slot":"51","type":"t_bool"},{"astId":535,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df70283ff728a1a88debad8b56cd6b31b858a143aff601e8f42a16699317e70d64736f6c63430008120033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF PUSH17 0x283FF728A1A88DEBAD8B56CD6B31B858A1 NUMBER 0xAF 0xF6 ADD 0xE8 DELEGATECALL 0x2A AND PUSH10 0x9317E70D64736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"194:9180:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df70283ff728a1a88debad8b56cd6b31b858a143aff601e8f42a16699317e70d64736f6c63430008120033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF PUSH17 0x283FF728A1A88DEBAD8B56CD6B31B858A1 NUMBER 0xAF 0xF6 ADD 0xE8 DELEGATECALL 0x2A AND PUSH10 0x9317E70D64736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"194:9180:4:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"97","totalCost":"17297"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/Gateway.sol":{"Gateway":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolFee","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"string","name":"messageHash","type":"string"}],"name":"OrderCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"orderId","type":"bytes32"}],"name":"OrderRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"splitOrderId","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"liquidityProvider","type":"address"},{"indexed":false,"internalType":"uint96","name":"settlePercent","type":"uint96"}],"name":"OrderSettled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"address","name":"treasuryAddress","type":"address"}],"name":"ProtocolAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"protocolFee","type":"uint64"}],"name":"ProtocolFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SenderFeeTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"treasuryAddress","type":"address"}],"name":"SetFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"address","name":"value","type":"address"},{"indexed":false,"internalType":"uint256","name":"status","type":"uint256"}],"name":"SettingManagerBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint96","name":"_rate","type":"uint96"},{"internalType":"address","name":"_senderFeeRecipient","type":"address"},{"internalType":"uint256","name":"_senderFee","type":"uint256"},{"internalType":"address","name":"_refundAddress","type":"address"},{"internalType":"string","name":"messageHash","type":"string"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeeDetails","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"}],"name":"getOrderInfo","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"senderFeeRecipient","type":"address"},{"internalType":"uint256","name":"senderFee","type":"uint256"},{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"bool","name":"isFulfilled","type":"bool"},{"internalType":"bool","name":"isRefunded","type":"bool"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint96","name":"currentBPS","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IGateway.Order","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"}],"name":"refund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"value","type":"address"},{"internalType":"uint256","name":"status","type":"uint256"}],"name":"settingManagerBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_splitOrderId","type":"bytes32"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_liquidityProvider","type":"address"},{"internalType":"uint64","name":"_settlePercent","type":"uint64"}],"name":"settle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"updateProtocolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_protocolFeePercent","type":"uint64"}],"name":"updateProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"OrderCreated(address,address,uint256,uint256,bytes32,uint256,string)":{"details":"Emitted when a deposit is made.","params":{"amount":"The amount of the deposit.","messageHash":"The hash of the message.","orderId":"The ID of the order.","rate":"The rate at which the deposit is made.","sender":"The address of the sender.","token":"The address of the deposited token."}},"OrderRefunded(uint256,bytes32)":{"details":"Emitted when an aggregator refunds a transaction.","params":{"fee":"The fee deducted from the refund amount.","orderId":"The ID of the order."}},"OrderSettled(bytes32,bytes32,address,uint96)":{"details":"Emitted when an aggregator settles a transaction.","params":{"liquidityProvider":"The address of the liquidity provider.","orderId":"The ID of the order.","settlePercent":"The percentage at which the transaction is settled.","splitOrderId":"The ID of the split order."}},"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"SenderFeeTransferred(address,uint256)":{"details":"Emitted when the sender's fee is transferred.","params":{"amount":"The amount of the fee transferred.","sender":"The address of the sender."}},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createOrder(address,uint256,uint96,address,uint256,address,string)":{"details":"See {createOrder-IGateway}. "},"getFeeDetails()":{"details":"See {getFeeDetails-IGateway}. "},"getOrderInfo(bytes32)":{"details":"See {getOrderInfo-IGateway}. "},"initialize()":{"details":"Initialize function."},"isTokenSupported(address)":{"details":"See {isTokenSupported-IGateway}. "},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pause the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"refund(uint256,bytes32)":{"details":"See {refund-IGateway}. "},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"settingManagerBool(bytes32,address,uint256)":{"details":"Sets the boolean value for a specific setting.","params":{"status":"The boolean value to be set. Requirements: - The value must not be a zero address.","value":"The address or value associated with the setting.","what":"The setting to be updated."}},"settle(bytes32,bytes32,address,uint64)":{"details":"See {settle-IGateway}. "},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"unpause()":{"details":"Unpause the contract."},"updateProtocolAddress(bytes32,address)":{"details":"Updates a protocol address.","params":{"value":"The new address to be set. Requirements: - The value must not be a zero address.","what":"The address type to be updated (treasury or aggregator)."}},"updateProtocolFee(uint64)":{"details":"Updates the protocol fee percentage.","params":{"_protocolFeePercent":"The new protocol fee percentage to be set."}}},"title":"Gateway","version":1},"evm":{"bytecode":{"functionDebugData":{"@_1036":{"entryPoint":null,"id":1036,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_389":{"entryPoint":40,"id":389,"parameterSlots":0,"returnSlots":0},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":334,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":420,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":437,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":238,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":407,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":255,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1638:10","statements":[{"body":{"nodeType":"YulBlock","src":"103:73:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"120:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"125:6:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"113:6:10"},"nodeType":"YulFunctionCall","src":"113:19:10"},"nodeType":"YulExpressionStatement","src":"113:19:10"},{"nodeType":"YulAssignment","src":"141:29:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"160:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"165:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"156:3:10"},"nodeType":"YulFunctionCall","src":"156:14:10"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"141:11:10"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"75:3:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"80:6:10","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"91:11:10","type":""}],"src":"7:169:10"},{"body":{"nodeType":"YulBlock","src":"288:120:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"310:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"318:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"306:3:10"},"nodeType":"YulFunctionCall","src":"306:14:10"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nodeType":"YulLiteral","src":"322:34:10","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"299:6:10"},"nodeType":"YulFunctionCall","src":"299:58:10"},"nodeType":"YulExpressionStatement","src":"299:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"378:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"386:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:10"},"nodeType":"YulFunctionCall","src":"374:15:10"},{"hexValue":"616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"391:9:10","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"367:6:10"},"nodeType":"YulFunctionCall","src":"367:34:10"},"nodeType":"YulExpressionStatement","src":"367:34:10"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"280:6:10","type":""}],"src":"182:226:10"},{"body":{"nodeType":"YulBlock","src":"560:220:10","statements":[{"nodeType":"YulAssignment","src":"570:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"636:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"641:2:10","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"577:58:10"},"nodeType":"YulFunctionCall","src":"577:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"570:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"742:3:10"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nodeType":"YulIdentifier","src":"653:88:10"},"nodeType":"YulFunctionCall","src":"653:93:10"},"nodeType":"YulExpressionStatement","src":"653:93:10"},{"nodeType":"YulAssignment","src":"755:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"766:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"771:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"762:3:10"},"nodeType":"YulFunctionCall","src":"762:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"755:3:10"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"548:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"556:3:10","type":""}],"src":"414:366:10"},{"body":{"nodeType":"YulBlock","src":"957:248:10","statements":[{"nodeType":"YulAssignment","src":"967:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"979:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"990:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"975:3:10"},"nodeType":"YulFunctionCall","src":"975:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"967:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1014:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"1025:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1010:3:10"},"nodeType":"YulFunctionCall","src":"1010:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"1033:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"1039:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1029:3:10"},"nodeType":"YulFunctionCall","src":"1029:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1003:6:10"},"nodeType":"YulFunctionCall","src":"1003:47:10"},"nodeType":"YulExpressionStatement","src":"1003:47:10"},{"nodeType":"YulAssignment","src":"1059:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"1193:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"1067:124:10"},"nodeType":"YulFunctionCall","src":"1067:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1059:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"937:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"952:4:10","type":""}],"src":"786:419:10"},{"body":{"nodeType":"YulBlock","src":"1254:43:10","statements":[{"nodeType":"YulAssignment","src":"1264:27:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1279:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"1286:4:10","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1275:3:10"},"nodeType":"YulFunctionCall","src":"1275:16:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1264:7:10"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1236:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1246:7:10","type":""}],"src":"1211:86:10"},{"body":{"nodeType":"YulBlock","src":"1364:51:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1381:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1402:5:10"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"1386:15:10"},"nodeType":"YulFunctionCall","src":"1386:22:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1374:6:10"},"nodeType":"YulFunctionCall","src":"1374:35:10"},"nodeType":"YulExpressionStatement","src":"1374:35:10"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1352:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1359:3:10","type":""}],"src":"1303:112:10"},{"body":{"nodeType":"YulBlock","src":"1515:120:10","statements":[{"nodeType":"YulAssignment","src":"1525:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1537:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"1548:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1533:3:10"},"nodeType":"YulFunctionCall","src":"1533:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1525:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1601:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1614:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"1625:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1610:3:10"},"nodeType":"YulFunctionCall","src":"1610:17:10"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"1561:39:10"},"nodeType":"YulFunctionCall","src":"1561:67:10"},"nodeType":"YulExpressionStatement","src":"1561:67:10"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1487:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1499:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1510:4:10","type":""}],"src":"1421:214:10"}]},"contents":"{\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n mstore(add(memPtr, 32), \"alizing\")\n\n }\n\n function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":10,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d2565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000175565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620000ec5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e39190620001b5565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015d602783620000ee565b91506200016a82620000ff565b604082019050919050565b6000602082019050818103600083015262000190816200014e565b9050919050565b600060ff82169050919050565b620001af8162000197565b82525050565b6000602082019050620001cc6000830184620001a4565b92915050565b61381980620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612536565b610338565b005b61015b600480360381019061015691906125b6565b610600565b005b61016561066b565b60405161017291906125fe565b60405180910390f35b610183610682565b005b61019f600480360381019061019a919061264f565b610696565b6040516101ac91906125fe565b60405180910390f35b6101cf60048036038101906101ca919061268f565b610b0a565b6040516101dc91906125fe565b60405180910390f35b6101ff60048036038101906101fa91906126bc565b610b66565b60405161020c9190612809565b60405180910390f35b61021d610d7e565b005b610239600480360381019061023491906128b6565b610e0b565b6040516102469190612987565b60405180910390f35b610257611340565b005b610261611490565b005b61026b6114a2565b60405161027891906129b1565b60405180910390f35b6102896114cc565b6040516102979291906129ea565b60405180910390f35b6102ba60048036038101906102b59190612a13565b6114f1565b005b6102c4611676565b6040516102d191906129b1565b60405180910390f35b6102f460048036038101906102ef9190612a66565b6116a0565b60405161030191906125fe565b60405180910390f35b610324600480360381019061031f919061268f565b611d03565b005b61032e611db0565b610336611e2e565b565b610340611db0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b2a565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bbc565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c4e565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611db0565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c6e565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611db0565b6106946000611e91565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cd5565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d41565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dad565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e19565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e39565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612e8e565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109b99190612eea565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a669190612f1e565b6040518363ffffffff1660e01b8152600401610a83929190612e39565b6020604051808303816000875af1158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190612e8e565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610af79190612f52565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b5c5760019050610b61565b600090505b919050565b610b6e6123db565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610d88611ec2565b90508073ffffffffffffffffffffffffffffffffffffffff16610da9611676565b73ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612fdf565b60405180910390fd5b610e0881611e91565b50565b6000610e15611eca565b610e228989868989611f14565b60008383905003610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061304b565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610e929190612f1e565b6040518463ffffffff1660e01b8152600401610eb09392919061306b565b6020604051808303816000875af1158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190612e8e565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f45906130a2565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610f9d929190612e39565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a610fe691906130ea565b610ff0919061315b565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161132b959493929190613214565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113715750600160008054906101000a900460ff1660ff16105b8061139e5750611380306120c7565b15801561139d5750600160008054906101000a900460ff1660ff16145b5b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906132d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561141a576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061142c6120ea565b611434612143565b801561148d5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051611484919061333c565b60405180910390a15b50565b611498611db0565b6114a061219c565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b6114f9611db0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b2a565b60405180910390fd5b60018114806115775750600281145b6115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906133a3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116715780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116689190612f52565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612cd5565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612d41565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff16156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612dad565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661187c91906133c3565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ace57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611acd5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b81526004016119f8929190612e39565b6020604051808303816000875af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190612e8e565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611aff91906130ea565b611b09919061315b565b90508060ff60008881526020019081526020016000206007016000828254611b319190612eea565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b6991906130ea565b611b73919061315b565b90508082611b819190612eea565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611be0929190612e39565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190612e8e565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c5f929190612e39565b6020604051808303816000875af1158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190612e8e565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611cec929190613434565b60405180910390a360019350505050949350505050565b611d0b611db0565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d6b6114a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611db8611ec2565b73ffffffffffffffffffffffffffffffffffffffff16611dd66114a2565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906134a9565b60405180910390fd5b565b611e366121ff565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e7a611ec2565b604051611e8791906129b1565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ebf81612248565b50565b600033905090565b611ed261066b565b15611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990613515565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613581565b60405180910390fd5b60008403611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd0906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613659565b60405180910390fd5b600081146120c057600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6906136c5565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613757565b60405180910390fd5b61214161230e565b565b600060019054906101000a900460ff16612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613757565b60405180910390fd5b61219a61236f565b565b6121a4611eca565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121e8611ec2565b6040516121f591906129b1565b60405180910390a1565b61220761066b565b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906137c3565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235490613757565b60405180910390fd5b61236d612368611ec2565b611e91565b565b600060019054906101000a900460ff166123be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b590613757565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124b5816124a2565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000806040838503121561254d5761254c612498565b5b600061255b858286016124c3565b925050602061256c85828601612521565b9150509250929050565b600067ffffffffffffffff82169050919050565b61259381612576565b811461259e57600080fd5b50565b6000813590506125b08161258a565b92915050565b6000602082840312156125cc576125cb612498565b5b60006125da848285016125a1565b91505092915050565b60008115159050919050565b6125f8816125e3565b82525050565b600060208201905061261360008301846125ef565b92915050565b6000819050919050565b61262c81612619565b811461263757600080fd5b50565b60008135905061264981612623565b92915050565b6000806040838503121561266657612665612498565b5b60006126748582860161263a565b9250506020612685858286016124c3565b9150509250929050565b6000602082840312156126a5576126a4612498565b5b60006126b384828501612521565b91505092915050565b6000602082840312156126d2576126d1612498565b5b60006126e0848285016124c3565b91505092915050565b6126f2816124f8565b82525050565b61270181612619565b82525050565b612710816125e3565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61273781612716565b82525050565b6101408201600082015161275460008501826126e9565b50602082015161276760208501826126e9565b50604082015161277a60408501826126e9565b50606082015161278d60608501826126f8565b5060808201516127a060808501826126f8565b5060a08201516127b360a0850182612707565b5060c08201516127c660c0850182612707565b5060e08201516127d960e08501826126e9565b506101008201516127ee61010085018261272e565b506101208201516128036101208501826126f8565b50505050565b60006101408201905061281f600083018461273d565b92915050565b61282e81612716565b811461283957600080fd5b50565b60008135905061284b81612825565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261287657612875612851565b5b8235905067ffffffffffffffff81111561289357612892612856565b5b6020830191508360018202830111156128af576128ae61285b565b5b9250929050565b60008060008060008060008060e0898b0312156128d6576128d5612498565b5b60006128e48b828c01612521565b98505060206128f58b828c0161263a565b97505060406129068b828c0161283c565b96505060606129178b828c01612521565b95505060806129288b828c0161263a565b94505060a06129398b828c01612521565b93505060c089013567ffffffffffffffff81111561295a5761295961249d565b5b6129668b828c01612860565b92509250509295985092959890939650565b612981816124a2565b82525050565b600060208201905061299c6000830184612978565b92915050565b6129ab816124f8565b82525050565b60006020820190506129c660008301846129a2565b92915050565b6129d581612576565b82525050565b6129e481612619565b82525050565b60006040820190506129ff60008301856129cc565b612a0c60208301846129db565b9392505050565b600080600060608486031215612a2c57612a2b612498565b5b6000612a3a868287016124c3565b9350506020612a4b86828701612521565b9250506040612a5c8682870161263a565b9150509250925092565b60008060008060808587031215612a8057612a7f612498565b5b6000612a8e878288016124c3565b9450506020612a9f878288016124c3565b9350506040612ab087828801612521565b9250506060612ac1878288016125a1565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b14601583612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612ba6602583612acd565b9150612bb182612b4a565b604082019050919050565b60006020820190508181036000830152612bd581612b99565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c38602783612acd565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000602082019050612c8360008301846129cc565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612cbf600e83612acd565b9150612cca82612c89565b602082019050919050565b60006020820190508181036000830152612cee81612cb2565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d2b600e83612acd565b9150612d3682612cf5565b602082019050919050565b60006020820190508181036000830152612d5a81612d1e565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612d97600d83612acd565b9150612da282612d61565b602082019050919050565b60006020820190508181036000830152612dc681612d8a565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e03601583612acd565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b6000604082019050612e4e60008301856129a2565b612e5b60208301846129db565b9392505050565b612e6b816125e3565b8114612e7657600080fd5b50565b600081519050612e8881612e62565b92915050565b600060208284031215612ea457612ea3612498565b5b6000612eb284828501612e79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef582612619565b9150612f0083612619565b9250828203905081811115612f1857612f17612ebb565b5b92915050565b6000612f2982612619565b9150612f3483612619565b9250828201905080821115612f4c57612f4b612ebb565b5b92915050565b6000602082019050612f6760008301846129db565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fc9602983612acd565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613035601283612acd565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b600060608201905061308060008301866129a2565b61308d60208301856129a2565b61309a60408301846129db565b949350505050565b60006130ad82612619565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130df576130de612ebb565b5b600182019050919050565b60006130f582612619565b915061310083612619565b925082820261310e81612619565b9150828204841483151761312557613124612ebb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612619565b915061317183612619565b9250826131815761318061312c565b5b828204905092915050565b6000819050919050565b60006131b16131ac6131a784612716565b61318c565b612619565b9050919050565b6131c181613196565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006131f38385612acd565b93506132008385846131c7565b613209836131d6565b840190509392505050565b600060808201905061322960008301886129db565b6132366020830187612978565b61324360408301866131b8565b81810360608301526132568184866131e7565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132be602e83612acd565b91506132c982613262565b604082019050919050565b600060208201905081810360008301526132ed816132b1565b9050919050565b6000819050919050565b600060ff82169050919050565b600061332661332161331c846132f4565b61318c565b6132fe565b9050919050565b6133368161330b565b82525050565b6000602082019050613351600083018461332d565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b600061338d601783612acd565b915061339882613357565b602082019050919050565b600060208201905081810360008301526133bc81613380565b9050919050565b60006133ce82612716565b91506133d983612716565b925082820390506bffffffffffffffffffffffff8111156133fd576133fc612ebb565b5b92915050565b600061341e61341961341484612576565b61318c565b612716565b9050919050565b61342e81613403565b82525050565b60006040820190506134496000830185612978565b6134566020830184613425565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613493602083612acd565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134ff601083612acd565b915061350a826134c9565b602082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061356b601183612acd565b915061357682613535565b602082019050919050565b6000602082019050818103600083015261359a8161355e565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135d7600c83612acd565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613643601083612acd565b915061364e8261360d565b602082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136af601983612acd565b91506136ba82613679565b602082019050919050565b600060208201905081810360008301526136de816136a2565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613741602b83612acd565b915061374c826136e5565b604082019050919050565b6000602082019050818103600083015261377081613734565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ad601483612acd565b91506137b882613777565b602082019050919050565b600060208201905081810360008301526137dc816137a0565b905091905056fea26469706673582212207cd069c89fca81913b7fadc08d0724a8e7733532ed2dde3ec1ba0961a69ea46164736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x22 PUSH3 0x28 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x1D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x7B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x72 SWAP1 PUSH3 0x175 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF DUP1 AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ PUSH3 0xEC JUMPI PUSH1 0xFF PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0xFF PUSH1 0x40 MLOAD PUSH3 0xE3 SWAP2 SWAP1 PUSH3 0x1B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C697A696E6700000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x15D PUSH1 0x27 DUP4 PUSH3 0xEE JUMP JUMPDEST SWAP2 POP PUSH3 0x16A DUP3 PUSH3 0xFF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x190 DUP2 PUSH3 0x14E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1AF DUP2 PUSH3 0x197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x1CC PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x1A4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3819 DUP1 PUSH3 0x1E2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x809804F7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xB810C636 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB810C636 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xCD992400 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xF22EE704 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x30A JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x809804F7 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x263 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x71EEDB88 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x75151B63 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x768C6EC0 EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x215 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x40EBC677 EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x47094E2E EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x15D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x2536 JUMP JUMPDEST PUSH2 0x338 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x25B6 JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x172 SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x682 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x19F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19A SWAP2 SWAP1 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x696 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x268F JUMP JUMPDEST PUSH2 0xB0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x26BC JUMP JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x2809 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0xD7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28B6 JUMP JUMPDEST PUSH2 0xE0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x2987 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH2 0x1340 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0x1490 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH2 0x14A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x289 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP3 SWAP2 SWAP1 PUSH2 0x29EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x2A13 JUMP JUMPDEST PUSH2 0x14F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C4 PUSH2 0x1676 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EF SWAP2 SWAP1 PUSH2 0x2A66 JUMP JUMPDEST PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0x268F JUMP JUMPDEST PUSH2 0x1D03 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x32E PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x336 PUSH2 0x1E2E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x340 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A6 SWAP1 PUSH2 0x2B2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x7472656173757279000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x4B2 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x45F SWAP1 PUSH2 0x2BBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x98 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x5B0 JUMP JUMPDEST PUSH32 0x61676772656761746F7200000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x5AF JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x569 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x560 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x99 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x5FB JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xBBC5B96E57CFECB3DBEEADF92E87F15E58E64FCD75CBE256DCC5D9EF2E51E8A4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 PUSH2 0x1DB0 JUMP JUMPDEST DUP1 PUSH1 0x98 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x1CE29A697A4765BD17D91DF93BA75B250B629ECF030553FF1F6AB59F15AE6C7B DUP2 PUSH1 0x40 MLOAD PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x2C6E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x68A PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x694 PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x728 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71F SWAP1 PUSH2 0x2CD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x78C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x783 SWAP1 PUSH2 0x2D41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E7 SWAP1 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x2E19 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8DC SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP4 PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD PUSH2 0x9B9 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP5 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x2F1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA83 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC6 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP3 PUSH32 0x736FE428E1747CA8D387C2E6FA1A31A0CDE62D3A167C40A46ADE59A3CDC828E DUP6 PUSH1 0x40 MLOAD PUSH2 0xAF7 SWAP2 SWAP1 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB PUSH2 0xB5C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0xB61 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E PUSH2 0x23DB JUMP JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD88 PUSH2 0x1EC2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xDA9 PUSH2 0x1676 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF6 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE08 DUP2 PUSH2 0x1E91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE15 PUSH2 0x1ECA JUMP JUMPDEST PUSH2 0xE22 DUP10 DUP10 DUP7 DUP10 DUP10 PUSH2 0x1F14 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SUB PUSH2 0xE68 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE5F SWAP1 PUSH2 0x304B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP9 DUP13 PUSH2 0xE92 SWAP2 SWAP1 PUSH2 0x2F1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEF3 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH2 0x100 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xF45 SWAP1 PUSH2 0x30A2 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH2 0x100 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF9D SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x97 SLOAD PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP11 PUSH2 0xFE6 SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0xFF0 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x97 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE SWAP1 POP POP PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x40CCD1CEB111A3C186EF9911E1B876DC1F789ED331B86097B3B8851055B6A137 DUP5 DUP7 DUP14 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x132B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x1371 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x139E JUMPI POP PUSH2 0x1380 ADDRESS PUSH2 0x20C7 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x139D JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x13DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13D4 SWAP1 PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH3 0x186A0 PUSH1 0x97 DUP2 SWAP1 SSTORE POP PUSH2 0x142C PUSH2 0x20EA JUMP JUMPDEST PUSH2 0x1434 PUSH2 0x2143 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x148D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1484 SWAP2 SWAP1 PUSH2 0x333C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1498 PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x14A0 PUSH2 0x219C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x97 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x14F9 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x2B2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 EQ DUP1 PUSH2 0x1577 JUMPI POP PUSH1 0x2 DUP2 EQ JUMPDEST PUSH2 0x15B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15AD SWAP1 PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x746F6B656E000000000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x1671 JUMPI DUP1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xCFA976492AF7C14A916CC3A239F4C9C75BBD7F5F0E398BEB41D892C7EECCAE4C DUP4 PUSH1 0x40 MLOAD PUSH2 0x1668 SWAP2 SWAP1 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1732 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1729 SWAP1 PUSH2 0x2CD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x178D SWAP1 PUSH2 0x2D41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x17FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17F1 SWAP1 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x187C SWAP2 SWAP1 PUSH2 0x33C3 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1ACE JUMPI PUSH1 0x1 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD EQ PUSH2 0x1ACD JUMPI PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0xFF PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F8 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A17 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3B SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x44F6938CA4A10313AABB76F874CCED61E35710A734A126E4AFB34461BF8C2501 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x97 SLOAD DUP5 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD PUSH2 0x1AFF SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0x1B09 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1B31 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x97 SLOAD PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1B69 SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0x1B73 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1B81 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C23 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP8 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C5F SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CA2 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH32 0x98ECE21E01A01CBE1D1C0DAD3B053C8FBD368F99BE78BE958FCF1D1D13FD249A DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1CEC SWAP3 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D0B PUSH2 0x1DB0 JUMP JUMPDEST DUP1 PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D6B PUSH2 0x14A2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x1DB8 PUSH2 0x1EC2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1DD6 PUSH2 0x14A2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E23 SWAP1 PUSH2 0x34A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1E36 PUSH2 0x21FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0x1E7A PUSH2 0x1EC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E87 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x1EBF DUP2 PUSH2 0x2248 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1ED2 PUSH2 0x66B JUMP JUMPDEST ISZERO PUSH2 0x1F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F09 SWAP1 PUSH2 0x3515 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x9A PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ PUSH2 0x1F96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F8D SWAP1 PUSH2 0x3581 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 SUB PUSH2 0x1FD9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FD0 SWAP1 PUSH2 0x35ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2048 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x203F SWAP1 PUSH2 0x3659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 EQ PUSH2 0x20C0 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x20BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B6 SWAP1 PUSH2 0x36C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2139 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2130 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2141 PUSH2 0x230E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2192 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2189 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x219A PUSH2 0x236F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x21A4 PUSH2 0x1ECA JUMP JUMPDEST PUSH1 0x1 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x21E8 PUSH2 0x1EC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F5 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2207 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x2246 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x223D SWAP1 PUSH2 0x37C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x33 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2354 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x236D PUSH2 0x2368 PUSH2 0x1EC2 JUMP JUMPDEST PUSH2 0x1E91 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23BE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23B5 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x24B5 DUP2 PUSH2 0x24A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x24C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24D2 DUP2 PUSH2 0x24AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2503 DUP3 PUSH2 0x24D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2513 DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP2 EQ PUSH2 0x251E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2530 DUP2 PUSH2 0x250A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x254D JUMPI PUSH2 0x254C PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x255B DUP6 DUP3 DUP7 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x256C DUP6 DUP3 DUP7 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2593 DUP2 PUSH2 0x2576 JUMP JUMPDEST DUP2 EQ PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25B0 DUP2 PUSH2 0x258A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25CC JUMPI PUSH2 0x25CB PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25DA DUP5 DUP3 DUP6 ADD PUSH2 0x25A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25F8 DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2613 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x262C DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP2 EQ PUSH2 0x2637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2649 DUP2 PUSH2 0x2623 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2674 DUP6 DUP3 DUP7 ADD PUSH2 0x263A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2685 DUP6 DUP3 DUP7 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI PUSH2 0x26A4 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26B3 DUP5 DUP3 DUP6 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D2 JUMPI PUSH2 0x26D1 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26E0 DUP5 DUP3 DUP6 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26F2 DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2701 DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2710 DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2737 DUP2 PUSH2 0x2716 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x140 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x2754 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x2767 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x277A PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x278D PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x27A0 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH2 0x27B3 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2707 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH2 0x27C6 PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x2707 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH2 0x27D9 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x27EE PUSH2 0x100 DUP6 ADD DUP3 PUSH2 0x272E JUMP JUMPDEST POP PUSH2 0x120 DUP3 ADD MLOAD PUSH2 0x2803 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x273D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x282E DUP2 PUSH2 0x2716 JUMP JUMPDEST DUP2 EQ PUSH2 0x2839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x284B DUP2 PUSH2 0x2825 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2876 JUMPI PUSH2 0x2875 PUSH2 0x2851 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2893 JUMPI PUSH2 0x2892 PUSH2 0x2856 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x28AF JUMPI PUSH2 0x28AE PUSH2 0x285B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x28D6 JUMPI PUSH2 0x28D5 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28E4 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x28F5 DUP12 DUP3 DUP13 ADD PUSH2 0x263A JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x2906 DUP12 DUP3 DUP13 ADD PUSH2 0x283C JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x2917 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH2 0x2928 DUP12 DUP3 DUP13 ADD PUSH2 0x263A JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x2939 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x295A JUMPI PUSH2 0x2959 PUSH2 0x249D JUMP JUMPDEST JUMPDEST PUSH2 0x2966 DUP12 DUP3 DUP13 ADD PUSH2 0x2860 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x2981 DUP2 PUSH2 0x24A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x299C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2978 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29AB DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29C6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29D5 DUP2 PUSH2 0x2576 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x29E4 DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x29FF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29CC JUMP JUMPDEST PUSH2 0x2A0C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A2C JUMPI PUSH2 0x2A2B PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A3A DUP7 DUP3 DUP8 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A4B DUP7 DUP3 DUP8 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A5C DUP7 DUP3 DUP8 ADD PUSH2 0x263A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP8 DUP3 DUP9 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP8 DUP3 DUP9 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP8 DUP3 DUP9 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2AC1 DUP8 DUP3 DUP9 ADD PUSH2 0x25A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A207A65726F20616464726573730000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B14 PUSH1 0x15 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1F DUP3 PUSH2 0x2ADE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2B43 DUP2 PUSH2 0x2B07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A207472656173757279206164647265737320616C72656164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7920736574000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BA6 PUSH1 0x25 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2BB1 DUP3 PUSH2 0x2B4A JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2BD5 DUP2 PUSH2 0x2B99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A2061676772656761746F72206164647265737320616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C38 PUSH1 0x27 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2C43 DUP3 PUSH2 0x2BDC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C67 DUP2 PUSH2 0x2C2B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C83 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C7941676772656761746F72000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CBF PUSH1 0xE DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2CCA DUP3 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CEE DUP2 PUSH2 0x2CB2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F7264657246756C66696C6C6564000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D2B PUSH1 0xE DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2D36 DUP3 PUSH2 0x2CF5 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2D5A DUP2 PUSH2 0x2D1E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F72646572526566756E64656400000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D97 PUSH1 0xD DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2DA2 DUP3 PUSH2 0x2D61 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2DC6 DUP2 PUSH2 0x2D8A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4665654578636565647350726F746F636F6C4665650000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E03 PUSH1 0x15 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2E0E DUP3 PUSH2 0x2DCD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2E32 DUP2 PUSH2 0x2DF6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E4E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x2E5B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2E6B DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2E88 DUP2 PUSH2 0x2E62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA4 JUMPI PUSH2 0x2EA3 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2E79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF5 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F00 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2F18 JUMPI PUSH2 0x2F17 PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F29 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F34 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F4C JUMPI PUSH2 0x2F4B PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F67 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC9 PUSH1 0x29 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD4 DUP3 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FF8 DUP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69644D657373616765486173680000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3035 PUSH1 0x12 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3040 DUP3 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3064 DUP2 PUSH2 0x3028 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3080 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x308D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x309A PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AD DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30DF JUMPI PUSH2 0x30DE PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30F5 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x3100 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x310E DUP2 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3125 JUMPI PUSH2 0x3124 PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3166 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x3171 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3181 JUMPI PUSH2 0x3180 PUSH2 0x312C JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31B1 PUSH2 0x31AC PUSH2 0x31A7 DUP5 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31C1 DUP2 PUSH2 0x3196 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31F3 DUP4 DUP6 PUSH2 0x2ACD JUMP JUMPDEST SWAP4 POP PUSH2 0x3200 DUP4 DUP6 DUP5 PUSH2 0x31C7 JUMP JUMPDEST PUSH2 0x3209 DUP4 PUSH2 0x31D6 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3229 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x3236 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2978 JUMP JUMPDEST PUSH2 0x3243 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x31B8 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3256 DUP2 DUP5 DUP7 PUSH2 0x31E7 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32BE PUSH1 0x2E DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x32C9 DUP3 PUSH2 0x3262 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x32ED DUP2 PUSH2 0x32B1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3326 PUSH2 0x3321 PUSH2 0x331C DUP5 PUSH2 0x32F4 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x32FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3336 DUP2 PUSH2 0x330B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3351 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x332D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A20696E76616C696420737461747573000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338D PUSH1 0x17 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3398 DUP3 PUSH2 0x3357 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x33BC DUP2 PUSH2 0x3380 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33CE DUP3 PUSH2 0x2716 JUMP JUMPDEST SWAP2 POP PUSH2 0x33D9 DUP4 PUSH2 0x2716 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x33FD JUMPI PUSH2 0x33FC PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x341E PUSH2 0x3419 PUSH2 0x3414 DUP5 PUSH2 0x2576 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x2716 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x342E DUP2 PUSH2 0x3403 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2978 JUMP JUMPDEST PUSH2 0x3456 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3425 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3493 PUSH1 0x20 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x349E DUP3 PUSH2 0x345D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34C2 DUP2 PUSH2 0x3486 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34FF PUSH1 0x10 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x350A DUP3 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x352E DUP2 PUSH2 0x34F2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x546F6B656E4E6F74537570706F72746564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356B PUSH1 0x11 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3576 DUP3 PUSH2 0x3535 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359A DUP2 PUSH2 0x355E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416D6F756E7449735A65726F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35D7 PUSH1 0xC DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x35E2 DUP3 PUSH2 0x35A1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3606 DUP2 PUSH2 0x35CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5468726F775A65726F4164647265737300000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3643 PUSH1 0x10 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x364E DUP3 PUSH2 0x360D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3672 DUP2 PUSH2 0x3636 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696453656E646572466565526563697069656E7400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36AF PUSH1 0x19 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x36BA DUP3 PUSH2 0x3679 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 PUSH2 0x36A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3741 PUSH1 0x2B DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x374C DUP3 PUSH2 0x36E5 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3770 DUP2 PUSH2 0x3734 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37AD PUSH1 0x14 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x37B8 DUP3 PUSH2 0x3777 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x37DC DUP2 PUSH2 0x37A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xD069C89FCA81913B7FADC08D0724A8E7733532ED2DDE3EC1BA0961A69E LOG4 PUSH2 0x6473 PUSH16 0x6C634300081200330000000000000000 ","sourceMap":"390:6884:7:-:0;;;708:44;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6884;;5939:280:2;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:10:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6884:7:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__Ownable2Step_init_26":{"entryPoint":8426,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_145":{"entryPoint":8974,"id":145,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_440":{"entryPoint":8515,"id":440,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_450":{"entryPoint":9071,"id":450,"parameterSlots":0,"returnSlots":0},"@_checkOwner_176":{"entryPoint":7600,"id":176,"parameterSlots":0,"returnSlots":0},"@_handler_1265":{"entryPoint":7956,"id":1265,"parameterSlots":5,"returnSlots":0},"@_msgSender_894":{"entryPoint":7874,"id":894,"parameterSlots":0,"returnSlots":1},"@_pause_514":{"entryPoint":8604,"id":514,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_487":{"entryPoint":7882,"id":487,"parameterSlots":0,"returnSlots":0},"@_requirePaused_498":{"entryPoint":8703,"id":498,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_233":{"entryPoint":8776,"id":233,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_78":{"entryPoint":7825,"id":78,"parameterSlots":1,"returnSlots":0},"@_unpause_530":{"entryPoint":7726,"id":530,"parameterSlots":0,"returnSlots":0},"@acceptOwnership_100":{"entryPoint":3454,"id":100,"parameterSlots":0,"returnSlots":0},"@createOrder_1209":{"entryPoint":3595,"id":1209,"parameterSlots":8,"returnSlots":1},"@getFeeDetails_1569":{"entryPoint":5324,"id":1569,"parameterSlots":0,"returnSlots":2},"@getOrderInfo_1537":{"entryPoint":2918,"id":1537,"parameterSlots":1,"returnSlots":1},"@initialize_1053":{"entryPoint":4928,"id":1053,"parameterSlots":0,"returnSlots":0},"@isContract_554":{"entryPoint":8391,"id":554,"parameterSlots":1,"returnSlots":1},"@isTokenSupported_1556":{"entryPoint":2826,"id":1556,"parameterSlots":1,"returnSlots":1},"@owner_162":{"entryPoint":5282,"id":162,"parameterSlots":0,"returnSlots":1},"@pause_1076":{"entryPoint":5264,"id":1076,"parameterSlots":0,"returnSlots":0},"@paused_475":{"entryPoint":1643,"id":475,"parameterSlots":0,"returnSlots":1},"@pendingOwner_41":{"entryPoint":5750,"id":41,"parameterSlots":0,"returnSlots":1},"@refund_1523":{"entryPoint":1686,"id":1523,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_190":{"entryPoint":1666,"id":190,"parameterSlots":0,"returnSlots":0},"@settingManagerBool_1664":{"entryPoint":5361,"id":1664,"parameterSlots":3,"returnSlots":0},"@settle_1422":{"entryPoint":5792,"id":1422,"parameterSlots":4,"returnSlots":1},"@transferOwnership_61":{"entryPoint":7427,"id":61,"parameterSlots":1,"returnSlots":0},"@unpause_1086":{"entryPoint":806,"id":1086,"parameterSlots":0,"returnSlots":0},"@updateProtocolAddress_1753":{"entryPoint":824,"id":1753,"parameterSlots":2,"returnSlots":0},"@updateProtocolFee_1681":{"entryPoint":1536,"id":1681,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":9505,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":11897,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":9411,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":10336,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":9786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":9633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint96":{"entryPoint":10300,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9871,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint96t_addresst_uint256t_addresst_string_calldata_ptr":{"entryPoint":10422,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":11918,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":9916,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":9526,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_addresst_uint256":{"entryPoint":10771,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32t_bytes32t_addresst_uint64":{"entryPoint":10854,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256t_bytes32":{"entryPoint":9807,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint64":{"entryPoint":9654,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":9961,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":10658,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool":{"entryPoint":9991,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":9711,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":10616,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":13101,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":12775,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd_to_t_string_memory_ptr_fromStack":{"entryPoint":11658,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":14240,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack":{"entryPoint":11015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":12220,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2_to_t_string_memory_ptr_fromStack":{"entryPoint":13770,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":13554,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":12977,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack":{"entryPoint":13184,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5_to_t_string_memory_ptr_fromStack":{"entryPoint":11550,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":13446,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack":{"entryPoint":11161,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de_to_t_string_memory_ptr_fromStack":{"entryPoint":11766,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7_to_t_string_memory_ptr_fromStack":{"entryPoint":13878,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4_to_t_string_memory_ptr_fromStack":{"entryPoint":12328,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1_to_t_string_memory_ptr_fromStack":{"entryPoint":13662,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":14132,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack":{"entryPoint":11307,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243_to_t_string_memory_ptr_fromStack":{"entryPoint":11442,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8_to_t_string_memory_ptr_fromStack":{"entryPoint":13986,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_Order_$1822_memory_ptr_to_t_struct$_Order_$1822_memory_ptr_fromStack":{"entryPoint":10045,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":9976,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":10715,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":10700,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint96_fromStack":{"entryPoint":13349,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint96_to_t_uint256_fromStack":{"entryPoint":12728,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint96_to_t_uint96":{"entryPoint":10030,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":10673,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":12395,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":11833,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":9726,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":10631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint64__to_t_bytes32_t_uint96__fromStack_reversed":{"entryPoint":13364,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":13116,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11693,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11050,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12255,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13805,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13589,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13219,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11585,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13481,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11196,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11801,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13913,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12363,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13697,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14167,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11342,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11477,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14021,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Order_$1822_memory_ptr__to_t_struct$_Order_$1822_memory_ptr__fromStack_reversed":{"entryPoint":10249,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":12114,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes32_t_uint96_t_string_calldata_ptr__to_t_uint256_t_bytes32_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12820,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":11374,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed":{"entryPoint":10730,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":10957,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":12062,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":12635,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":12522,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":12010,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint96":{"entryPoint":13251,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":9464,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":9699,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":9378,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":13044,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":9432,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":9753,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":9590,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":13054,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint96":{"entryPoint":10006,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":13067,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint64_to_t_uint96":{"entryPoint":13315,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint96_to_t_uint256":{"entryPoint":12694,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":12743,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":12684,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":12450,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":11963,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":12588,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":10326,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":10321,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":10331,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":9373,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":9368,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":12758,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd":{"entryPoint":11617,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":14199,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf":{"entryPoint":10974,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":12141,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2":{"entryPoint":13729,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":13513,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":12898,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338":{"entryPoint":13143,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5":{"entryPoint":11509,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":13405,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead":{"entryPoint":11082,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de":{"entryPoint":11725,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7":{"entryPoint":13837,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4":{"entryPoint":12287,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1":{"entryPoint":13621,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":14053,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243":{"entryPoint":11401,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8":{"entryPoint":13945,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":9482,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":11874,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":9388,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":9763,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":9610,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint96":{"entryPoint":10277,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:38092:10","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:10","statements":[{"nodeType":"YulAssignment","src":"57:19:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:10","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:10"},"nodeType":"YulFunctionCall","src":"67:9:10"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:10"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:10","type":""}],"src":"7:75:10"},{"body":{"nodeType":"YulBlock","src":"177:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:10"},"nodeType":"YulFunctionCall","src":"187:12:10"},"nodeType":"YulExpressionStatement","src":"187:12:10"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:10"},{"body":{"nodeType":"YulBlock","src":"300:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:10"},"nodeType":"YulFunctionCall","src":"310:12:10"},"nodeType":"YulExpressionStatement","src":"310:12:10"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:10"},{"body":{"nodeType":"YulBlock","src":"379:32:10","statements":[{"nodeType":"YulAssignment","src":"389:16:10","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:10"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:10","type":""}],"src":"334:77:10"},{"body":{"nodeType":"YulBlock","src":"460:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:10"},"nodeType":"YulFunctionCall","src":"519:12:10"},"nodeType":"YulExpressionStatement","src":"519:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:10"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"490:17:10"},"nodeType":"YulFunctionCall","src":"490:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:10"},"nodeType":"YulFunctionCall","src":"480:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:10"},"nodeType":"YulFunctionCall","src":"473:43:10"},"nodeType":"YulIf","src":"470:63:10"}]},"name":"validator_revert_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:10","type":""}],"src":"417:122:10"},{"body":{"nodeType":"YulBlock","src":"597:87:10","statements":[{"nodeType":"YulAssignment","src":"607:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"629:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"616:12:10"},"nodeType":"YulFunctionCall","src":"616:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"607:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"672:5:10"}],"functionName":{"name":"validator_revert_t_bytes32","nodeType":"YulIdentifier","src":"645:26:10"},"nodeType":"YulFunctionCall","src":"645:33:10"},"nodeType":"YulExpressionStatement","src":"645:33:10"}]},"name":"abi_decode_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"575:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"583:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"591:5:10","type":""}],"src":"545:139:10"},{"body":{"nodeType":"YulBlock","src":"735:81:10","statements":[{"nodeType":"YulAssignment","src":"745:65:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"760:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"767:42:10","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"756:3:10"},"nodeType":"YulFunctionCall","src":"756:54:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"745:7:10"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"717:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"727:7:10","type":""}],"src":"690:126:10"},{"body":{"nodeType":"YulBlock","src":"867:51:10","statements":[{"nodeType":"YulAssignment","src":"877:35:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"906:5:10"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"888:17:10"},"nodeType":"YulFunctionCall","src":"888:24:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"877:7:10"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"849:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"859:7:10","type":""}],"src":"822:96:10"},{"body":{"nodeType":"YulBlock","src":"967:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"1024:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1036:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1026:6:10"},"nodeType":"YulFunctionCall","src":"1026:12:10"},"nodeType":"YulExpressionStatement","src":"1026:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1015:5:10"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"997:17:10"},"nodeType":"YulFunctionCall","src":"997:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"987:2:10"},"nodeType":"YulFunctionCall","src":"987:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"980:6:10"},"nodeType":"YulFunctionCall","src":"980:43:10"},"nodeType":"YulIf","src":"977:63:10"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"960:5:10","type":""}],"src":"924:122:10"},{"body":{"nodeType":"YulBlock","src":"1104:87:10","statements":[{"nodeType":"YulAssignment","src":"1114:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1136:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1123:12:10"},"nodeType":"YulFunctionCall","src":"1123:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1114:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1179:5:10"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"1152:26:10"},"nodeType":"YulFunctionCall","src":"1152:33:10"},"nodeType":"YulExpressionStatement","src":"1152:33:10"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1082:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"1090:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1098:5:10","type":""}],"src":"1052:139:10"},{"body":{"nodeType":"YulBlock","src":"1280:391:10","statements":[{"body":{"nodeType":"YulBlock","src":"1326:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1328:77:10"},"nodeType":"YulFunctionCall","src":"1328:79:10"},"nodeType":"YulExpressionStatement","src":"1328:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1301:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"1310:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1297:3:10"},"nodeType":"YulFunctionCall","src":"1297:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"1322:2:10","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:10"},"nodeType":"YulFunctionCall","src":"1293:32:10"},"nodeType":"YulIf","src":"1290:119:10"},{"nodeType":"YulBlock","src":"1419:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"1434:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"1448:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1438:6:10","type":""}]},{"nodeType":"YulAssignment","src":"1463:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1498:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"1509:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1494:3:10"},"nodeType":"YulFunctionCall","src":"1494:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1518:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"1473:20:10"},"nodeType":"YulFunctionCall","src":"1473:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1463:6:10"}]}]},{"nodeType":"YulBlock","src":"1546:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"1561:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"1575:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1565:6:10","type":""}]},{"nodeType":"YulAssignment","src":"1591:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1626:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"1637:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1622:3:10"},"nodeType":"YulFunctionCall","src":"1622:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1646:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1601:20:10"},"nodeType":"YulFunctionCall","src":"1601:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1591:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1242:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1253:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1265:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1273:6:10","type":""}],"src":"1197:474:10"},{"body":{"nodeType":"YulBlock","src":"1721:57:10","statements":[{"nodeType":"YulAssignment","src":"1731:41:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1746:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"1753:18:10","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1742:3:10"},"nodeType":"YulFunctionCall","src":"1742:30:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1731:7:10"}]}]},"name":"cleanup_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1703:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1713:7:10","type":""}],"src":"1677:101:10"},{"body":{"nodeType":"YulBlock","src":"1826:78:10","statements":[{"body":{"nodeType":"YulBlock","src":"1882:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1891:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1894:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1884:6:10"},"nodeType":"YulFunctionCall","src":"1884:12:10"},"nodeType":"YulExpressionStatement","src":"1884:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1849:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:10"}],"functionName":{"name":"cleanup_t_uint64","nodeType":"YulIdentifier","src":"1856:16:10"},"nodeType":"YulFunctionCall","src":"1856:23:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1846:2:10"},"nodeType":"YulFunctionCall","src":"1846:34:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1839:6:10"},"nodeType":"YulFunctionCall","src":"1839:42:10"},"nodeType":"YulIf","src":"1836:62:10"}]},"name":"validator_revert_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1819:5:10","type":""}],"src":"1784:120:10"},{"body":{"nodeType":"YulBlock","src":"1961:86:10","statements":[{"nodeType":"YulAssignment","src":"1971:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1993:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1980:12:10"},"nodeType":"YulFunctionCall","src":"1980:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1971:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2035:5:10"}],"functionName":{"name":"validator_revert_t_uint64","nodeType":"YulIdentifier","src":"2009:25:10"},"nodeType":"YulFunctionCall","src":"2009:32:10"},"nodeType":"YulExpressionStatement","src":"2009:32:10"}]},"name":"abi_decode_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1939:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"1947:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1955:5:10","type":""}],"src":"1910:137:10"},{"body":{"nodeType":"YulBlock","src":"2118:262:10","statements":[{"body":{"nodeType":"YulBlock","src":"2164:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"2166:77:10"},"nodeType":"YulFunctionCall","src":"2166:79:10"},"nodeType":"YulExpressionStatement","src":"2166:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2139:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"2148:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2135:3:10"},"nodeType":"YulFunctionCall","src":"2135:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"2160:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2131:3:10"},"nodeType":"YulFunctionCall","src":"2131:32:10"},"nodeType":"YulIf","src":"2128:119:10"},{"nodeType":"YulBlock","src":"2257:116:10","statements":[{"nodeType":"YulVariableDeclaration","src":"2272:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"2286:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2276:6:10","type":""}]},{"nodeType":"YulAssignment","src":"2301:62:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2335:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"2346:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:10"},"nodeType":"YulFunctionCall","src":"2331:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2355:7:10"}],"functionName":{"name":"abi_decode_t_uint64","nodeType":"YulIdentifier","src":"2311:19:10"},"nodeType":"YulFunctionCall","src":"2311:52:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2301:6:10"}]}]}]},"name":"abi_decode_tuple_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2088:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2099:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2111:6:10","type":""}],"src":"2053:327:10"},{"body":{"nodeType":"YulBlock","src":"2428:48:10","statements":[{"nodeType":"YulAssignment","src":"2438:32:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2463:5:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2456:6:10"},"nodeType":"YulFunctionCall","src":"2456:13:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2449:6:10"},"nodeType":"YulFunctionCall","src":"2449:21:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2438:7:10"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2410:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2420:7:10","type":""}],"src":"2386:90:10"},{"body":{"nodeType":"YulBlock","src":"2541:50:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2558:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2578:5:10"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"2563:14:10"},"nodeType":"YulFunctionCall","src":"2563:21:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2551:6:10"},"nodeType":"YulFunctionCall","src":"2551:34:10"},"nodeType":"YulExpressionStatement","src":"2551:34:10"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2529:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2536:3:10","type":""}],"src":"2482:109:10"},{"body":{"nodeType":"YulBlock","src":"2689:118:10","statements":[{"nodeType":"YulAssignment","src":"2699:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2711:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"2722:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2707:3:10"},"nodeType":"YulFunctionCall","src":"2707:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2699:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2773:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2786:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"2797:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2782:3:10"},"nodeType":"YulFunctionCall","src":"2782:17:10"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"2735:37:10"},"nodeType":"YulFunctionCall","src":"2735:65:10"},"nodeType":"YulExpressionStatement","src":"2735:65:10"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2661:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2673:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2684:4:10","type":""}],"src":"2597:210:10"},{"body":{"nodeType":"YulBlock","src":"2858:32:10","statements":[{"nodeType":"YulAssignment","src":"2868:16:10","value":{"name":"value","nodeType":"YulIdentifier","src":"2879:5:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2868:7:10"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2840:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2850:7:10","type":""}],"src":"2813:77:10"},{"body":{"nodeType":"YulBlock","src":"2939:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"2996:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3005:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3008:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2998:6:10"},"nodeType":"YulFunctionCall","src":"2998:12:10"},"nodeType":"YulExpressionStatement","src":"2998:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2962:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2987:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2969:17:10"},"nodeType":"YulFunctionCall","src":"2969:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2959:2:10"},"nodeType":"YulFunctionCall","src":"2959:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2952:6:10"},"nodeType":"YulFunctionCall","src":"2952:43:10"},"nodeType":"YulIf","src":"2949:63:10"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2932:5:10","type":""}],"src":"2896:122:10"},{"body":{"nodeType":"YulBlock","src":"3076:87:10","statements":[{"nodeType":"YulAssignment","src":"3086:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3108:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3095:12:10"},"nodeType":"YulFunctionCall","src":"3095:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3086:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3151:5:10"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3124:26:10"},"nodeType":"YulFunctionCall","src":"3124:33:10"},"nodeType":"YulExpressionStatement","src":"3124:33:10"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3054:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"3062:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3070:5:10","type":""}],"src":"3024:139:10"},{"body":{"nodeType":"YulBlock","src":"3252:391:10","statements":[{"body":{"nodeType":"YulBlock","src":"3298:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3300:77:10"},"nodeType":"YulFunctionCall","src":"3300:79:10"},"nodeType":"YulExpressionStatement","src":"3300:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3273:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"3282:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3269:3:10"},"nodeType":"YulFunctionCall","src":"3269:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"3294:2:10","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3265:3:10"},"nodeType":"YulFunctionCall","src":"3265:32:10"},"nodeType":"YulIf","src":"3262:119:10"},{"nodeType":"YulBlock","src":"3391:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3406:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3420:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3410:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3435:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3481:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:10"},"nodeType":"YulFunctionCall","src":"3466:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3490:7:10"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"3445:20:10"},"nodeType":"YulFunctionCall","src":"3445:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3435:6:10"}]}]},{"nodeType":"YulBlock","src":"3518:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3533:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3547:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3537:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3563:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3598:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3609:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3594:3:10"},"nodeType":"YulFunctionCall","src":"3594:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3618:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"3573:20:10"},"nodeType":"YulFunctionCall","src":"3573:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3563:6:10"}]}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3214:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3225:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3237:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3245:6:10","type":""}],"src":"3169:474:10"},{"body":{"nodeType":"YulBlock","src":"3715:263:10","statements":[{"body":{"nodeType":"YulBlock","src":"3761:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3763:77:10"},"nodeType":"YulFunctionCall","src":"3763:79:10"},"nodeType":"YulExpressionStatement","src":"3763:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3736:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"3745:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3732:3:10"},"nodeType":"YulFunctionCall","src":"3732:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"3757:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3728:3:10"},"nodeType":"YulFunctionCall","src":"3728:32:10"},"nodeType":"YulIf","src":"3725:119:10"},{"nodeType":"YulBlock","src":"3854:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3869:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3883:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3873:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3898:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3933:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3944:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3929:3:10"},"nodeType":"YulFunctionCall","src":"3929:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3953:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"3908:20:10"},"nodeType":"YulFunctionCall","src":"3908:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3898:6:10"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3685:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3696:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3708:6:10","type":""}],"src":"3649:329:10"},{"body":{"nodeType":"YulBlock","src":"4050:263:10","statements":[{"body":{"nodeType":"YulBlock","src":"4096:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4098:77:10"},"nodeType":"YulFunctionCall","src":"4098:79:10"},"nodeType":"YulExpressionStatement","src":"4098:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4071:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"4080:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4067:3:10"},"nodeType":"YulFunctionCall","src":"4067:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"4092:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4063:3:10"},"nodeType":"YulFunctionCall","src":"4063:32:10"},"nodeType":"YulIf","src":"4060:119:10"},{"nodeType":"YulBlock","src":"4189:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"4204:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"4218:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4208:6:10","type":""}]},{"nodeType":"YulAssignment","src":"4233:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4268:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"4279:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4264:3:10"},"nodeType":"YulFunctionCall","src":"4264:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4288:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"4243:20:10"},"nodeType":"YulFunctionCall","src":"4243:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4233:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4020:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4031:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4043:6:10","type":""}],"src":"3984:329:10"},{"body":{"nodeType":"YulBlock","src":"4374:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4391:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4414:5:10"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"4396:17:10"},"nodeType":"YulFunctionCall","src":"4396:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4384:6:10"},"nodeType":"YulFunctionCall","src":"4384:37:10"},"nodeType":"YulExpressionStatement","src":"4384:37:10"}]},"name":"abi_encode_t_address_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4362:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4369:3:10","type":""}],"src":"4319:108:10"},{"body":{"nodeType":"YulBlock","src":"4488:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4505:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4528:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"4510:17:10"},"nodeType":"YulFunctionCall","src":"4510:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4498:6:10"},"nodeType":"YulFunctionCall","src":"4498:37:10"},"nodeType":"YulExpressionStatement","src":"4498:37:10"}]},"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4476:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4483:3:10","type":""}],"src":"4433:108:10"},{"body":{"nodeType":"YulBlock","src":"4596:50:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4613:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4633:5:10"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"4618:14:10"},"nodeType":"YulFunctionCall","src":"4618:21:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4606:6:10"},"nodeType":"YulFunctionCall","src":"4606:34:10"},"nodeType":"YulExpressionStatement","src":"4606:34:10"}]},"name":"abi_encode_t_bool_to_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4584:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4591:3:10","type":""}],"src":"4547:99:10"},{"body":{"nodeType":"YulBlock","src":"4696:65:10","statements":[{"nodeType":"YulAssignment","src":"4706:49:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4721:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"4728:26:10","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4717:3:10"},"nodeType":"YulFunctionCall","src":"4717:38:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4706:7:10"}]}]},"name":"cleanup_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4678:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4688:7:10","type":""}],"src":"4652:109:10"},{"body":{"nodeType":"YulBlock","src":"4820:52:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4837:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4859:5:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"4842:16:10"},"nodeType":"YulFunctionCall","src":"4842:23:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4830:6:10"},"nodeType":"YulFunctionCall","src":"4830:36:10"},"nodeType":"YulExpressionStatement","src":"4830:36:10"}]},"name":"abi_encode_t_uint96_to_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4808:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4815:3:10","type":""}],"src":"4767:105:10"},{"body":{"nodeType":"YulBlock","src":"5044:1838:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5054:28:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5070:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5075:6:10","type":"","value":"0x0140"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5066:3:10"},"nodeType":"YulFunctionCall","src":"5066:16:10"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"5058:4:10","type":""}]},{"nodeType":"YulBlock","src":"5092:166:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5129:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5159:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"5166:4:10","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5155:3:10"},"nodeType":"YulFunctionCall","src":"5155:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5149:5:10"},"nodeType":"YulFunctionCall","src":"5149:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5133:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5219:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5237:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5242:4:10","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5233:3:10"},"nodeType":"YulFunctionCall","src":"5233:14:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"5185:33:10"},"nodeType":"YulFunctionCall","src":"5185:63:10"},"nodeType":"YulExpressionStatement","src":"5185:63:10"}]},{"nodeType":"YulBlock","src":"5268:165:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5304:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5334:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"5341:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5330:3:10"},"nodeType":"YulFunctionCall","src":"5330:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5324:5:10"},"nodeType":"YulFunctionCall","src":"5324:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5308:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5394:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5412:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5417:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5408:3:10"},"nodeType":"YulFunctionCall","src":"5408:14:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"5360:33:10"},"nodeType":"YulFunctionCall","src":"5360:63:10"},"nodeType":"YulExpressionStatement","src":"5360:63:10"}]},{"nodeType":"YulBlock","src":"5443:178:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5492:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5522:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"5529:4:10","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5518:3:10"},"nodeType":"YulFunctionCall","src":"5518:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5512:5:10"},"nodeType":"YulFunctionCall","src":"5512:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5496:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5582:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5600:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5605:4:10","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5596:3:10"},"nodeType":"YulFunctionCall","src":"5596:14:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"5548:33:10"},"nodeType":"YulFunctionCall","src":"5548:63:10"},"nodeType":"YulExpressionStatement","src":"5548:63:10"}]},{"nodeType":"YulBlock","src":"5631:169:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5671:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5701:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"5708:4:10","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5697:3:10"},"nodeType":"YulFunctionCall","src":"5697:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5691:5:10"},"nodeType":"YulFunctionCall","src":"5691:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5675:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5761:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5779:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5784:4:10","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5775:3:10"},"nodeType":"YulFunctionCall","src":"5775:14:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"5727:33:10"},"nodeType":"YulFunctionCall","src":"5727:63:10"},"nodeType":"YulExpressionStatement","src":"5727:63:10"}]},{"nodeType":"YulBlock","src":"5810:171:10","statements":[{"nodeType":"YulVariableDeclaration","src":"5852:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5882:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"5889:4:10","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5878:3:10"},"nodeType":"YulFunctionCall","src":"5878:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5872:5:10"},"nodeType":"YulFunctionCall","src":"5872:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5856:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5942:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5960:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5965:4:10","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5956:3:10"},"nodeType":"YulFunctionCall","src":"5956:14:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"5908:33:10"},"nodeType":"YulFunctionCall","src":"5908:63:10"},"nodeType":"YulExpressionStatement","src":"5908:63:10"}]},{"nodeType":"YulBlock","src":"5991:165:10","statements":[{"nodeType":"YulVariableDeclaration","src":"6033:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6063:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"6070:4:10","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6059:3:10"},"nodeType":"YulFunctionCall","src":"6059:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6053:5:10"},"nodeType":"YulFunctionCall","src":"6053:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6037:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6117:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6135:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6140:4:10","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6131:3:10"},"nodeType":"YulFunctionCall","src":"6131:14:10"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nodeType":"YulIdentifier","src":"6089:27:10"},"nodeType":"YulFunctionCall","src":"6089:57:10"},"nodeType":"YulExpressionStatement","src":"6089:57:10"}]},{"nodeType":"YulBlock","src":"6166:164:10","statements":[{"nodeType":"YulVariableDeclaration","src":"6207:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6237:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"6244:4:10","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6233:3:10"},"nodeType":"YulFunctionCall","src":"6233:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6227:5:10"},"nodeType":"YulFunctionCall","src":"6227:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6211:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6291:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6309:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6314:4:10","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6305:3:10"},"nodeType":"YulFunctionCall","src":"6305:14:10"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nodeType":"YulIdentifier","src":"6263:27:10"},"nodeType":"YulFunctionCall","src":"6263:57:10"},"nodeType":"YulExpressionStatement","src":"6263:57:10"}]},{"nodeType":"YulBlock","src":"6340:173:10","statements":[{"nodeType":"YulVariableDeclaration","src":"6384:43:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6414:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"6421:4:10","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6410:3:10"},"nodeType":"YulFunctionCall","src":"6410:16:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6404:5:10"},"nodeType":"YulFunctionCall","src":"6404:23:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6388:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6474:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6492:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6497:4:10","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6488:3:10"},"nodeType":"YulFunctionCall","src":"6488:14:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"6440:33:10"},"nodeType":"YulFunctionCall","src":"6440:63:10"},"nodeType":"YulExpressionStatement","src":"6440:63:10"}]},{"nodeType":"YulBlock","src":"6523:172:10","statements":[{"nodeType":"YulVariableDeclaration","src":"6564:45:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6594:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"6601:6:10","type":"","value":"0x0100"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6590:3:10"},"nodeType":"YulFunctionCall","src":"6590:18:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6584:5:10"},"nodeType":"YulFunctionCall","src":"6584:25:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6568:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6654:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6672:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6677:6:10","type":"","value":"0x0100"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6668:3:10"},"nodeType":"YulFunctionCall","src":"6668:16:10"}],"functionName":{"name":"abi_encode_t_uint96_to_t_uint96","nodeType":"YulIdentifier","src":"6622:31:10"},"nodeType":"YulFunctionCall","src":"6622:63:10"},"nodeType":"YulExpressionStatement","src":"6622:63:10"}]},{"nodeType":"YulBlock","src":"6705:170:10","statements":[{"nodeType":"YulVariableDeclaration","src":"6742:45:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6772:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"6779:6:10","type":"","value":"0x0120"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6768:3:10"},"nodeType":"YulFunctionCall","src":"6768:18:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6762:5:10"},"nodeType":"YulFunctionCall","src":"6762:25:10"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6746:12:10","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6834:12:10"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6852:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6857:6:10","type":"","value":"0x0120"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6848:3:10"},"nodeType":"YulFunctionCall","src":"6848:16:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"6800:33:10"},"nodeType":"YulFunctionCall","src":"6800:65:10"},"nodeType":"YulExpressionStatement","src":"6800:65:10"}]}]},"name":"abi_encode_t_struct$_Order_$1822_memory_ptr_to_t_struct$_Order_$1822_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5031:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5038:3:10","type":""}],"src":"4932:1950:10"},{"body":{"nodeType":"YulBlock","src":"7032:171:10","statements":[{"nodeType":"YulAssignment","src":"7042:27:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7054:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7065:3:10","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7050:3:10"},"nodeType":"YulFunctionCall","src":"7050:19:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7042:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7169:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7182:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7193:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7178:3:10"},"nodeType":"YulFunctionCall","src":"7178:17:10"}],"functionName":{"name":"abi_encode_t_struct$_Order_$1822_memory_ptr_to_t_struct$_Order_$1822_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7079:89:10"},"nodeType":"YulFunctionCall","src":"7079:117:10"},"nodeType":"YulExpressionStatement","src":"7079:117:10"}]},"name":"abi_encode_tuple_t_struct$_Order_$1822_memory_ptr__to_t_struct$_Order_$1822_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7004:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7016:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7027:4:10","type":""}],"src":"6888:315:10"},{"body":{"nodeType":"YulBlock","src":"7251:78:10","statements":[{"body":{"nodeType":"YulBlock","src":"7307:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7316:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7319:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7309:6:10"},"nodeType":"YulFunctionCall","src":"7309:12:10"},"nodeType":"YulExpressionStatement","src":"7309:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7274:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7298:5:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"7281:16:10"},"nodeType":"YulFunctionCall","src":"7281:23:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7271:2:10"},"nodeType":"YulFunctionCall","src":"7271:34:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7264:6:10"},"nodeType":"YulFunctionCall","src":"7264:42:10"},"nodeType":"YulIf","src":"7261:62:10"}]},"name":"validator_revert_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7244:5:10","type":""}],"src":"7209:120:10"},{"body":{"nodeType":"YulBlock","src":"7386:86:10","statements":[{"nodeType":"YulAssignment","src":"7396:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7418:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7405:12:10"},"nodeType":"YulFunctionCall","src":"7405:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"7396:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7460:5:10"}],"functionName":{"name":"validator_revert_t_uint96","nodeType":"YulIdentifier","src":"7434:25:10"},"nodeType":"YulFunctionCall","src":"7434:32:10"},"nodeType":"YulExpressionStatement","src":"7434:32:10"}]},"name":"abi_decode_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7364:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"7372:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"7380:5:10","type":""}],"src":"7335:137:10"},{"body":{"nodeType":"YulBlock","src":"7567:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7584:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7587:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7577:6:10"},"nodeType":"YulFunctionCall","src":"7577:12:10"},"nodeType":"YulExpressionStatement","src":"7577:12:10"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"7478:117:10"},{"body":{"nodeType":"YulBlock","src":"7690:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7707:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7710:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7700:6:10"},"nodeType":"YulFunctionCall","src":"7700:12:10"},"nodeType":"YulExpressionStatement","src":"7700:12:10"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulFunctionDefinition","src":"7601:117:10"},{"body":{"nodeType":"YulBlock","src":"7813:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7830:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7833:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7823:6:10"},"nodeType":"YulFunctionCall","src":"7823:12:10"},"nodeType":"YulExpressionStatement","src":"7823:12:10"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"7724:117:10"},{"body":{"nodeType":"YulBlock","src":"7936:478:10","statements":[{"body":{"nodeType":"YulBlock","src":"7985:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7987:77:10"},"nodeType":"YulFunctionCall","src":"7987:79:10"},"nodeType":"YulExpressionStatement","src":"7987:79:10"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7964:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"7972:4:10","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7960:3:10"},"nodeType":"YulFunctionCall","src":"7960:17:10"},{"name":"end","nodeType":"YulIdentifier","src":"7979:3:10"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7956:3:10"},"nodeType":"YulFunctionCall","src":"7956:27:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7949:6:10"},"nodeType":"YulFunctionCall","src":"7949:35:10"},"nodeType":"YulIf","src":"7946:122:10"},{"nodeType":"YulAssignment","src":"8077:30:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8100:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8087:12:10"},"nodeType":"YulFunctionCall","src":"8087:20:10"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8077:6:10"}]},{"body":{"nodeType":"YulBlock","src":"8150:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"8152:77:10"},"nodeType":"YulFunctionCall","src":"8152:79:10"},"nodeType":"YulExpressionStatement","src":"8152:79:10"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8122:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"8130:18:10","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8119:2:10"},"nodeType":"YulFunctionCall","src":"8119:30:10"},"nodeType":"YulIf","src":"8116:117:10"},{"nodeType":"YulAssignment","src":"8242:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8258:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"8266:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8254:3:10"},"nodeType":"YulFunctionCall","src":"8254:17:10"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"8242:8:10"}]},{"body":{"nodeType":"YulBlock","src":"8325:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"8327:77:10"},"nodeType":"YulFunctionCall","src":"8327:79:10"},"nodeType":"YulExpressionStatement","src":"8327:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"8290:8:10"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8304:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"8312:4:10","type":"","value":"0x01"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8300:3:10"},"nodeType":"YulFunctionCall","src":"8300:17:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8286:3:10"},"nodeType":"YulFunctionCall","src":"8286:32:10"},{"name":"end","nodeType":"YulIdentifier","src":"8320:3:10"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8283:2:10"},"nodeType":"YulFunctionCall","src":"8283:41:10"},"nodeType":"YulIf","src":"8280:128:10"}]},"name":"abi_decode_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7903:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"7911:3:10","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"7919:8:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"7929:6:10","type":""}],"src":"7861:553:10"},{"body":{"nodeType":"YulBlock","src":"8607:1214:10","statements":[{"body":{"nodeType":"YulBlock","src":"8654:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"8656:77:10"},"nodeType":"YulFunctionCall","src":"8656:79:10"},"nodeType":"YulExpressionStatement","src":"8656:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8628:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"8637:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8624:3:10"},"nodeType":"YulFunctionCall","src":"8624:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"8649:3:10","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8620:3:10"},"nodeType":"YulFunctionCall","src":"8620:33:10"},"nodeType":"YulIf","src":"8617:120:10"},{"nodeType":"YulBlock","src":"8747:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"8762:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"8776:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8766:6:10","type":""}]},{"nodeType":"YulAssignment","src":"8791:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8826:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"8837:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8822:3:10"},"nodeType":"YulFunctionCall","src":"8822:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8846:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8801:20:10"},"nodeType":"YulFunctionCall","src":"8801:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8791:6:10"}]}]},{"nodeType":"YulBlock","src":"8874:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"8889:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"8903:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8893:6:10","type":""}]},{"nodeType":"YulAssignment","src":"8919:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8954:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"8965:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8950:3:10"},"nodeType":"YulFunctionCall","src":"8950:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8974:7:10"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"8929:20:10"},"nodeType":"YulFunctionCall","src":"8929:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8919:6:10"}]}]},{"nodeType":"YulBlock","src":"9002:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"9017:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"9031:2:10","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9021:6:10","type":""}]},{"nodeType":"YulAssignment","src":"9047:62:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9081:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"9092:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9077:3:10"},"nodeType":"YulFunctionCall","src":"9077:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9101:7:10"}],"functionName":{"name":"abi_decode_t_uint96","nodeType":"YulIdentifier","src":"9057:19:10"},"nodeType":"YulFunctionCall","src":"9057:52:10"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9047:6:10"}]}]},{"nodeType":"YulBlock","src":"9129:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"9144:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"9158:2:10","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9148:6:10","type":""}]},{"nodeType":"YulAssignment","src":"9174:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9209:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"9220:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9205:3:10"},"nodeType":"YulFunctionCall","src":"9205:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9229:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"9184:20:10"},"nodeType":"YulFunctionCall","src":"9184:53:10"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9174:6:10"}]}]},{"nodeType":"YulBlock","src":"9257:119:10","statements":[{"nodeType":"YulVariableDeclaration","src":"9272:17:10","value":{"kind":"number","nodeType":"YulLiteral","src":"9286:3:10","type":"","value":"128"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9276:6:10","type":""}]},{"nodeType":"YulAssignment","src":"9303:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9338:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"9349:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9334:3:10"},"nodeType":"YulFunctionCall","src":"9334:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9358:7:10"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"9313:20:10"},"nodeType":"YulFunctionCall","src":"9313:53:10"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9303:6:10"}]}]},{"nodeType":"YulBlock","src":"9386:119:10","statements":[{"nodeType":"YulVariableDeclaration","src":"9401:17:10","value":{"kind":"number","nodeType":"YulLiteral","src":"9415:3:10","type":"","value":"160"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9405:6:10","type":""}]},{"nodeType":"YulAssignment","src":"9432:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9467:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"9478:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9463:3:10"},"nodeType":"YulFunctionCall","src":"9463:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9487:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"9442:20:10"},"nodeType":"YulFunctionCall","src":"9442:53:10"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"9432:6:10"}]}]},{"nodeType":"YulBlock","src":"9515:299:10","statements":[{"nodeType":"YulVariableDeclaration","src":"9530:47:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9561:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"9572:3:10","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9557:3:10"},"nodeType":"YulFunctionCall","src":"9557:19:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9544:12:10"},"nodeType":"YulFunctionCall","src":"9544:33:10"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9534:6:10","type":""}]},{"body":{"nodeType":"YulBlock","src":"9624:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9626:77:10"},"nodeType":"YulFunctionCall","src":"9626:79:10"},"nodeType":"YulExpressionStatement","src":"9626:79:10"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9596:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"9604:18:10","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9593:2:10"},"nodeType":"YulFunctionCall","src":"9593:30:10"},"nodeType":"YulIf","src":"9590:117:10"},{"nodeType":"YulAssignment","src":"9721:83:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9776:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"9787:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9772:3:10"},"nodeType":"YulFunctionCall","src":"9772:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9796:7:10"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nodeType":"YulIdentifier","src":"9739:32:10"},"nodeType":"YulFunctionCall","src":"9739:65:10"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"9721:6:10"},{"name":"value7","nodeType":"YulIdentifier","src":"9729:6:10"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint96t_addresst_uint256t_addresst_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8521:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8532:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8544:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8552:6:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8560:6:10","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8568:6:10","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8576:6:10","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8584:6:10","type":""},{"name":"value6","nodeType":"YulTypedName","src":"8592:6:10","type":""},{"name":"value7","nodeType":"YulTypedName","src":"8600:6:10","type":""}],"src":"8420:1401:10"},{"body":{"nodeType":"YulBlock","src":"9892:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9909:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9932:5:10"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"9914:17:10"},"nodeType":"YulFunctionCall","src":"9914:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9902:6:10"},"nodeType":"YulFunctionCall","src":"9902:37:10"},"nodeType":"YulExpressionStatement","src":"9902:37:10"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9880:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9887:3:10","type":""}],"src":"9827:118:10"},{"body":{"nodeType":"YulBlock","src":"10049:124:10","statements":[{"nodeType":"YulAssignment","src":"10059:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10071:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10082:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10067:3:10"},"nodeType":"YulFunctionCall","src":"10067:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10059:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10139:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10152:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10163:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10148:3:10"},"nodeType":"YulFunctionCall","src":"10148:17:10"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"10095:43:10"},"nodeType":"YulFunctionCall","src":"10095:71:10"},"nodeType":"YulExpressionStatement","src":"10095:71:10"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10021:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10033:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10044:4:10","type":""}],"src":"9951:222:10"},{"body":{"nodeType":"YulBlock","src":"10244:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10261:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10284:5:10"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"10266:17:10"},"nodeType":"YulFunctionCall","src":"10266:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10254:6:10"},"nodeType":"YulFunctionCall","src":"10254:37:10"},"nodeType":"YulExpressionStatement","src":"10254:37:10"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10232:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10239:3:10","type":""}],"src":"10179:118:10"},{"body":{"nodeType":"YulBlock","src":"10401:124:10","statements":[{"nodeType":"YulAssignment","src":"10411:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10423:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10434:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10419:3:10"},"nodeType":"YulFunctionCall","src":"10419:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10411:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10491:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10504:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10515:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10500:3:10"},"nodeType":"YulFunctionCall","src":"10500:17:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10447:43:10"},"nodeType":"YulFunctionCall","src":"10447:71:10"},"nodeType":"YulExpressionStatement","src":"10447:71:10"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10373:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10385:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10396:4:10","type":""}],"src":"10303:222:10"},{"body":{"nodeType":"YulBlock","src":"10594:52:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10611:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10633:5:10"}],"functionName":{"name":"cleanup_t_uint64","nodeType":"YulIdentifier","src":"10616:16:10"},"nodeType":"YulFunctionCall","src":"10616:23:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10604:6:10"},"nodeType":"YulFunctionCall","src":"10604:36:10"},"nodeType":"YulExpressionStatement","src":"10604:36:10"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10582:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10589:3:10","type":""}],"src":"10531:115:10"},{"body":{"nodeType":"YulBlock","src":"10717:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10734:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10757:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"10739:17:10"},"nodeType":"YulFunctionCall","src":"10739:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10727:6:10"},"nodeType":"YulFunctionCall","src":"10727:37:10"},"nodeType":"YulExpressionStatement","src":"10727:37:10"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10705:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10712:3:10","type":""}],"src":"10652:118:10"},{"body":{"nodeType":"YulBlock","src":"10900:204:10","statements":[{"nodeType":"YulAssignment","src":"10910:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10922:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10933:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10918:3:10"},"nodeType":"YulFunctionCall","src":"10918:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10910:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10988:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11001:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"11012:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10997:3:10"},"nodeType":"YulFunctionCall","src":"10997:17:10"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nodeType":"YulIdentifier","src":"10946:41:10"},"nodeType":"YulFunctionCall","src":"10946:69:10"},"nodeType":"YulExpressionStatement","src":"10946:69:10"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11069:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11082:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"11093:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11078:3:10"},"nodeType":"YulFunctionCall","src":"11078:18:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11025:43:10"},"nodeType":"YulFunctionCall","src":"11025:72:10"},"nodeType":"YulExpressionStatement","src":"11025:72:10"}]},"name":"abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10864:9:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10876:6:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10884:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10895:4:10","type":""}],"src":"10776:328:10"},{"body":{"nodeType":"YulBlock","src":"11210:519:10","statements":[{"body":{"nodeType":"YulBlock","src":"11256:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"11258:77:10"},"nodeType":"YulFunctionCall","src":"11258:79:10"},"nodeType":"YulExpressionStatement","src":"11258:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11231:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"11240:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11227:3:10"},"nodeType":"YulFunctionCall","src":"11227:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"11252:2:10","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11223:3:10"},"nodeType":"YulFunctionCall","src":"11223:32:10"},"nodeType":"YulIf","src":"11220:119:10"},{"nodeType":"YulBlock","src":"11349:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"11364:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"11378:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11368:6:10","type":""}]},{"nodeType":"YulAssignment","src":"11393:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11428:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"11439:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11424:3:10"},"nodeType":"YulFunctionCall","src":"11424:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11448:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"11403:20:10"},"nodeType":"YulFunctionCall","src":"11403:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11393:6:10"}]}]},{"nodeType":"YulBlock","src":"11476:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"11491:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"11505:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11495:6:10","type":""}]},{"nodeType":"YulAssignment","src":"11521:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11556:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"11567:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11552:3:10"},"nodeType":"YulFunctionCall","src":"11552:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11576:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"11531:20:10"},"nodeType":"YulFunctionCall","src":"11531:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11521:6:10"}]}]},{"nodeType":"YulBlock","src":"11604:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"11619:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"11633:2:10","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11623:6:10","type":""}]},{"nodeType":"YulAssignment","src":"11649:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11684:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"11695:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11680:3:10"},"nodeType":"YulFunctionCall","src":"11680:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11704:7:10"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"11659:20:10"},"nodeType":"YulFunctionCall","src":"11659:53:10"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11649:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11164:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11175:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11187:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11195:6:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11203:6:10","type":""}],"src":"11110:619:10"},{"body":{"nodeType":"YulBlock","src":"11851:647:10","statements":[{"body":{"nodeType":"YulBlock","src":"11898:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"11900:77:10"},"nodeType":"YulFunctionCall","src":"11900:79:10"},"nodeType":"YulExpressionStatement","src":"11900:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11872:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"11881:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11868:3:10"},"nodeType":"YulFunctionCall","src":"11868:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"11893:3:10","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11864:3:10"},"nodeType":"YulFunctionCall","src":"11864:33:10"},"nodeType":"YulIf","src":"11861:120:10"},{"nodeType":"YulBlock","src":"11991:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"12006:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"12020:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12010:6:10","type":""}]},{"nodeType":"YulAssignment","src":"12035:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12070:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"12081:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12066:3:10"},"nodeType":"YulFunctionCall","src":"12066:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12090:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"12045:20:10"},"nodeType":"YulFunctionCall","src":"12045:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12035:6:10"}]}]},{"nodeType":"YulBlock","src":"12118:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"12133:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"12147:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12137:6:10","type":""}]},{"nodeType":"YulAssignment","src":"12163:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12198:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"12209:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12194:3:10"},"nodeType":"YulFunctionCall","src":"12194:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12218:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"12173:20:10"},"nodeType":"YulFunctionCall","src":"12173:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12163:6:10"}]}]},{"nodeType":"YulBlock","src":"12246:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"12261:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"12275:2:10","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12265:6:10","type":""}]},{"nodeType":"YulAssignment","src":"12291:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12326:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"12337:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12322:3:10"},"nodeType":"YulFunctionCall","src":"12322:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12346:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"12301:20:10"},"nodeType":"YulFunctionCall","src":"12301:53:10"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12291:6:10"}]}]},{"nodeType":"YulBlock","src":"12374:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"12389:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"12403:2:10","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12393:6:10","type":""}]},{"nodeType":"YulAssignment","src":"12419:62:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12453:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"12464:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12449:3:10"},"nodeType":"YulFunctionCall","src":"12449:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12473:7:10"}],"functionName":{"name":"abi_decode_t_uint64","nodeType":"YulIdentifier","src":"12429:19:10"},"nodeType":"YulFunctionCall","src":"12429:52:10"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12419:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_addresst_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11797:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11808:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11820:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11828:6:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11836:6:10","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11844:6:10","type":""}],"src":"11735:763:10"},{"body":{"nodeType":"YulBlock","src":"12600:73:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12617:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"12622:6:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12610:6:10"},"nodeType":"YulFunctionCall","src":"12610:19:10"},"nodeType":"YulExpressionStatement","src":"12610:19:10"},{"nodeType":"YulAssignment","src":"12638:29:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12657:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"12662:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12653:3:10"},"nodeType":"YulFunctionCall","src":"12653:14:10"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12638:11:10"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12572:3:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"12577:6:10","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12588:11:10","type":""}],"src":"12504:169:10"},{"body":{"nodeType":"YulBlock","src":"12785:65:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12807:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"12815:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12803:3:10"},"nodeType":"YulFunctionCall","src":"12803:14:10"},{"hexValue":"476174657761793a207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"12819:23:10","type":"","value":"Gateway: zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12796:6:10"},"nodeType":"YulFunctionCall","src":"12796:47:10"},"nodeType":"YulExpressionStatement","src":"12796:47:10"}]},"name":"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12777:6:10","type":""}],"src":"12679:171:10"},{"body":{"nodeType":"YulBlock","src":"13002:220:10","statements":[{"nodeType":"YulAssignment","src":"13012:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13078:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"13083:2:10","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13019:58:10"},"nodeType":"YulFunctionCall","src":"13019:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13012:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13184:3:10"}],"functionName":{"name":"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","nodeType":"YulIdentifier","src":"13095:88:10"},"nodeType":"YulFunctionCall","src":"13095:93:10"},"nodeType":"YulExpressionStatement","src":"13095:93:10"},{"nodeType":"YulAssignment","src":"13197:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13208:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"13213:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13204:3:10"},"nodeType":"YulFunctionCall","src":"13204:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13197:3:10"}]}]},"name":"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12990:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12998:3:10","type":""}],"src":"12856:366:10"},{"body":{"nodeType":"YulBlock","src":"13399:248:10","statements":[{"nodeType":"YulAssignment","src":"13409:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:10"},"nodeType":"YulFunctionCall","src":"13417:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13409:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13456:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"13467:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13452:3:10"},"nodeType":"YulFunctionCall","src":"13452:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"13475:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"13481:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13471:3:10"},"nodeType":"YulFunctionCall","src":"13471:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13445:6:10"},"nodeType":"YulFunctionCall","src":"13445:47:10"},"nodeType":"YulExpressionStatement","src":"13445:47:10"},{"nodeType":"YulAssignment","src":"13501:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"13635:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13509:124:10"},"nodeType":"YulFunctionCall","src":"13509:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13501:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13379:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13394:4:10","type":""}],"src":"13228:419:10"},{"body":{"nodeType":"YulBlock","src":"13759:118:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13781:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"13789:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13777:3:10"},"nodeType":"YulFunctionCall","src":"13777:14:10"},{"hexValue":"476174657761793a207472656173757279206164647265737320616c72656164","kind":"string","nodeType":"YulLiteral","src":"13793:34:10","type":"","value":"Gateway: treasury address alread"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13770:6:10"},"nodeType":"YulFunctionCall","src":"13770:58:10"},"nodeType":"YulExpressionStatement","src":"13770:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13849:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"13857:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13845:3:10"},"nodeType":"YulFunctionCall","src":"13845:15:10"},{"hexValue":"7920736574","kind":"string","nodeType":"YulLiteral","src":"13862:7:10","type":"","value":"y set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13838:6:10"},"nodeType":"YulFunctionCall","src":"13838:32:10"},"nodeType":"YulExpressionStatement","src":"13838:32:10"}]},"name":"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"13751:6:10","type":""}],"src":"13653:224:10"},{"body":{"nodeType":"YulBlock","src":"14029:220:10","statements":[{"nodeType":"YulAssignment","src":"14039:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14105:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"14110:2:10","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14046:58:10"},"nodeType":"YulFunctionCall","src":"14046:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14039:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14211:3:10"}],"functionName":{"name":"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","nodeType":"YulIdentifier","src":"14122:88:10"},"nodeType":"YulFunctionCall","src":"14122:93:10"},"nodeType":"YulExpressionStatement","src":"14122:93:10"},{"nodeType":"YulAssignment","src":"14224:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14235:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"14240:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14231:3:10"},"nodeType":"YulFunctionCall","src":"14231:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14224:3:10"}]}]},"name":"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14017:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14025:3:10","type":""}],"src":"13883:366:10"},{"body":{"nodeType":"YulBlock","src":"14426:248:10","statements":[{"nodeType":"YulAssignment","src":"14436:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14448:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"14459:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14444:3:10"},"nodeType":"YulFunctionCall","src":"14444:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14436:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14483:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"14494:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14479:3:10"},"nodeType":"YulFunctionCall","src":"14479:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14502:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"14508:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14498:3:10"},"nodeType":"YulFunctionCall","src":"14498:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14472:6:10"},"nodeType":"YulFunctionCall","src":"14472:47:10"},"nodeType":"YulExpressionStatement","src":"14472:47:10"},{"nodeType":"YulAssignment","src":"14528:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14662:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14536:124:10"},"nodeType":"YulFunctionCall","src":"14536:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14528:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14406:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14421:4:10","type":""}],"src":"14255:419:10"},{"body":{"nodeType":"YulBlock","src":"14786:120:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14808:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"14816:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14804:3:10"},"nodeType":"YulFunctionCall","src":"14804:14:10"},{"hexValue":"476174657761793a2061676772656761746f72206164647265737320616c7265","kind":"string","nodeType":"YulLiteral","src":"14820:34:10","type":"","value":"Gateway: aggregator address alre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14797:6:10"},"nodeType":"YulFunctionCall","src":"14797:58:10"},"nodeType":"YulExpressionStatement","src":"14797:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14876:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"14884:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14872:3:10"},"nodeType":"YulFunctionCall","src":"14872:15:10"},{"hexValue":"61647920736574","kind":"string","nodeType":"YulLiteral","src":"14889:9:10","type":"","value":"ady set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14865:6:10"},"nodeType":"YulFunctionCall","src":"14865:34:10"},"nodeType":"YulExpressionStatement","src":"14865:34:10"}]},"name":"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"14778:6:10","type":""}],"src":"14680:226:10"},{"body":{"nodeType":"YulBlock","src":"15058:220:10","statements":[{"nodeType":"YulAssignment","src":"15068:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15134:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"15139:2:10","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15075:58:10"},"nodeType":"YulFunctionCall","src":"15075:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15068:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15240:3:10"}],"functionName":{"name":"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","nodeType":"YulIdentifier","src":"15151:88:10"},"nodeType":"YulFunctionCall","src":"15151:93:10"},"nodeType":"YulExpressionStatement","src":"15151:93:10"},{"nodeType":"YulAssignment","src":"15253:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15264:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"15269:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15260:3:10"},"nodeType":"YulFunctionCall","src":"15260:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15253:3:10"}]}]},"name":"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"15046:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15054:3:10","type":""}],"src":"14912:366:10"},{"body":{"nodeType":"YulBlock","src":"15455:248:10","statements":[{"nodeType":"YulAssignment","src":"15465:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15477:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"15488:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15473:3:10"},"nodeType":"YulFunctionCall","src":"15473:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15465:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15512:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"15523:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15508:3:10"},"nodeType":"YulFunctionCall","src":"15508:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15531:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"15537:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15527:3:10"},"nodeType":"YulFunctionCall","src":"15527:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15501:6:10"},"nodeType":"YulFunctionCall","src":"15501:47:10"},"nodeType":"YulExpressionStatement","src":"15501:47:10"},{"nodeType":"YulAssignment","src":"15557:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15691:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15565:124:10"},"nodeType":"YulFunctionCall","src":"15565:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15557:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15435:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15450:4:10","type":""}],"src":"15284:419:10"},{"body":{"nodeType":"YulBlock","src":"15805:122:10","statements":[{"nodeType":"YulAssignment","src":"15815:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15827:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"15838:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15823:3:10"},"nodeType":"YulFunctionCall","src":"15823:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15815:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15893:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15906:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"15917:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15902:3:10"},"nodeType":"YulFunctionCall","src":"15902:17:10"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nodeType":"YulIdentifier","src":"15851:41:10"},"nodeType":"YulFunctionCall","src":"15851:69:10"},"nodeType":"YulExpressionStatement","src":"15851:69:10"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15777:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15789:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15800:4:10","type":""}],"src":"15709:218:10"},{"body":{"nodeType":"YulBlock","src":"16039:58:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16061:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"16069:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16057:3:10"},"nodeType":"YulFunctionCall","src":"16057:14:10"},{"hexValue":"4f6e6c7941676772656761746f72","kind":"string","nodeType":"YulLiteral","src":"16073:16:10","type":"","value":"OnlyAggregator"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16050:6:10"},"nodeType":"YulFunctionCall","src":"16050:40:10"},"nodeType":"YulExpressionStatement","src":"16050:40:10"}]},"name":"store_literal_in_memory_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16031:6:10","type":""}],"src":"15933:164:10"},{"body":{"nodeType":"YulBlock","src":"16249:220:10","statements":[{"nodeType":"YulAssignment","src":"16259:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16325:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"16330:2:10","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16266:58:10"},"nodeType":"YulFunctionCall","src":"16266:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16259:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16431:3:10"}],"functionName":{"name":"store_literal_in_memory_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243","nodeType":"YulIdentifier","src":"16342:88:10"},"nodeType":"YulFunctionCall","src":"16342:93:10"},"nodeType":"YulExpressionStatement","src":"16342:93:10"},{"nodeType":"YulAssignment","src":"16444:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16455:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"16460:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16451:3:10"},"nodeType":"YulFunctionCall","src":"16451:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16444:3:10"}]}]},"name":"abi_encode_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16237:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16245:3:10","type":""}],"src":"16103:366:10"},{"body":{"nodeType":"YulBlock","src":"16646:248:10","statements":[{"nodeType":"YulAssignment","src":"16656:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16668:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"16679:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16664:3:10"},"nodeType":"YulFunctionCall","src":"16664:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16656:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16703:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"16714:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16699:3:10"},"nodeType":"YulFunctionCall","src":"16699:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16722:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"16728:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16718:3:10"},"nodeType":"YulFunctionCall","src":"16718:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16692:6:10"},"nodeType":"YulFunctionCall","src":"16692:47:10"},"nodeType":"YulExpressionStatement","src":"16692:47:10"},{"nodeType":"YulAssignment","src":"16748:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16882:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16756:124:10"},"nodeType":"YulFunctionCall","src":"16756:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16748:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16626:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16641:4:10","type":""}],"src":"16475:419:10"},{"body":{"nodeType":"YulBlock","src":"17006:58:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"17028:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"17036:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17024:3:10"},"nodeType":"YulFunctionCall","src":"17024:14:10"},{"hexValue":"4f7264657246756c66696c6c6564","kind":"string","nodeType":"YulLiteral","src":"17040:16:10","type":"","value":"OrderFulfilled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17017:6:10"},"nodeType":"YulFunctionCall","src":"17017:40:10"},"nodeType":"YulExpressionStatement","src":"17017:40:10"}]},"name":"store_literal_in_memory_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16998:6:10","type":""}],"src":"16900:164:10"},{"body":{"nodeType":"YulBlock","src":"17216:220:10","statements":[{"nodeType":"YulAssignment","src":"17226:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17292:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"17297:2:10","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"17233:58:10"},"nodeType":"YulFunctionCall","src":"17233:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"17226:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17398:3:10"}],"functionName":{"name":"store_literal_in_memory_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5","nodeType":"YulIdentifier","src":"17309:88:10"},"nodeType":"YulFunctionCall","src":"17309:93:10"},"nodeType":"YulExpressionStatement","src":"17309:93:10"},{"nodeType":"YulAssignment","src":"17411:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17422:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"17427:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17418:3:10"},"nodeType":"YulFunctionCall","src":"17418:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17411:3:10"}]}]},"name":"abi_encode_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17204:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17212:3:10","type":""}],"src":"17070:366:10"},{"body":{"nodeType":"YulBlock","src":"17613:248:10","statements":[{"nodeType":"YulAssignment","src":"17623:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17635:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"17646:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17631:3:10"},"nodeType":"YulFunctionCall","src":"17631:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17623:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17670:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"17681:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17666:3:10"},"nodeType":"YulFunctionCall","src":"17666:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17689:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"17695:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17685:3:10"},"nodeType":"YulFunctionCall","src":"17685:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17659:6:10"},"nodeType":"YulFunctionCall","src":"17659:47:10"},"nodeType":"YulExpressionStatement","src":"17659:47:10"},{"nodeType":"YulAssignment","src":"17715:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17849:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"17723:124:10"},"nodeType":"YulFunctionCall","src":"17723:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17715:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17593:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17608:4:10","type":""}],"src":"17442:419:10"},{"body":{"nodeType":"YulBlock","src":"17973:57:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"17995:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"18003:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17991:3:10"},"nodeType":"YulFunctionCall","src":"17991:14:10"},{"hexValue":"4f72646572526566756e646564","kind":"string","nodeType":"YulLiteral","src":"18007:15:10","type":"","value":"OrderRefunded"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17984:6:10"},"nodeType":"YulFunctionCall","src":"17984:39:10"},"nodeType":"YulExpressionStatement","src":"17984:39:10"}]},"name":"store_literal_in_memory_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"17965:6:10","type":""}],"src":"17867:163:10"},{"body":{"nodeType":"YulBlock","src":"18182:220:10","statements":[{"nodeType":"YulAssignment","src":"18192:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18258:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"18263:2:10","type":"","value":"13"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"18199:58:10"},"nodeType":"YulFunctionCall","src":"18199:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"18192:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18364:3:10"}],"functionName":{"name":"store_literal_in_memory_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd","nodeType":"YulIdentifier","src":"18275:88:10"},"nodeType":"YulFunctionCall","src":"18275:93:10"},"nodeType":"YulExpressionStatement","src":"18275:93:10"},{"nodeType":"YulAssignment","src":"18377:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18388:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"18393:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18384:3:10"},"nodeType":"YulFunctionCall","src":"18384:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18377:3:10"}]}]},"name":"abi_encode_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18170:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18178:3:10","type":""}],"src":"18036:366:10"},{"body":{"nodeType":"YulBlock","src":"18579:248:10","statements":[{"nodeType":"YulAssignment","src":"18589:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18601:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"18612:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18597:3:10"},"nodeType":"YulFunctionCall","src":"18597:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18589:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18636:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"18647:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18632:3:10"},"nodeType":"YulFunctionCall","src":"18632:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"18655:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"18661:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18651:3:10"},"nodeType":"YulFunctionCall","src":"18651:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18625:6:10"},"nodeType":"YulFunctionCall","src":"18625:47:10"},"nodeType":"YulExpressionStatement","src":"18625:47:10"},{"nodeType":"YulAssignment","src":"18681:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"18815:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"18689:124:10"},"nodeType":"YulFunctionCall","src":"18689:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18681:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18559:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18574:4:10","type":""}],"src":"18408:419:10"},{"body":{"nodeType":"YulBlock","src":"18939:65:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18961:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"18969:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18957:3:10"},"nodeType":"YulFunctionCall","src":"18957:14:10"},{"hexValue":"4665654578636565647350726f746f636f6c466565","kind":"string","nodeType":"YulLiteral","src":"18973:23:10","type":"","value":"FeeExceedsProtocolFee"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18950:6:10"},"nodeType":"YulFunctionCall","src":"18950:47:10"},"nodeType":"YulExpressionStatement","src":"18950:47:10"}]},"name":"store_literal_in_memory_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"18931:6:10","type":""}],"src":"18833:171:10"},{"body":{"nodeType":"YulBlock","src":"19156:220:10","statements":[{"nodeType":"YulAssignment","src":"19166:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19232:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:10","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"19173:58:10"},"nodeType":"YulFunctionCall","src":"19173:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19166:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19338:3:10"}],"functionName":{"name":"store_literal_in_memory_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de","nodeType":"YulIdentifier","src":"19249:88:10"},"nodeType":"YulFunctionCall","src":"19249:93:10"},"nodeType":"YulExpressionStatement","src":"19249:93:10"},{"nodeType":"YulAssignment","src":"19351:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19362:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"19367:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19358:3:10"},"nodeType":"YulFunctionCall","src":"19358:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19351:3:10"}]}]},"name":"abi_encode_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19144:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19152:3:10","type":""}],"src":"19010:366:10"},{"body":{"nodeType":"YulBlock","src":"19553:248:10","statements":[{"nodeType":"YulAssignment","src":"19563:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19575:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"19586:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19571:3:10"},"nodeType":"YulFunctionCall","src":"19571:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19563:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19610:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"19621:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19606:3:10"},"nodeType":"YulFunctionCall","src":"19606:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"19629:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"19635:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19625:3:10"},"nodeType":"YulFunctionCall","src":"19625:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19599:6:10"},"nodeType":"YulFunctionCall","src":"19599:47:10"},"nodeType":"YulExpressionStatement","src":"19599:47:10"},{"nodeType":"YulAssignment","src":"19655:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"19789:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"19663:124:10"},"nodeType":"YulFunctionCall","src":"19663:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19655:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19533:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19548:4:10","type":""}],"src":"19382:419:10"},{"body":{"nodeType":"YulBlock","src":"19933:206:10","statements":[{"nodeType":"YulAssignment","src":"19943:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19955:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"19966:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19951:3:10"},"nodeType":"YulFunctionCall","src":"19951:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19943:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20023:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20036:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"20047:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20032:3:10"},"nodeType":"YulFunctionCall","src":"20032:17:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"19979:43:10"},"nodeType":"YulFunctionCall","src":"19979:71:10"},"nodeType":"YulExpressionStatement","src":"19979:71:10"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"20104:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20117:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"20128:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20113:3:10"},"nodeType":"YulFunctionCall","src":"20113:18:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"20060:43:10"},"nodeType":"YulFunctionCall","src":"20060:72:10"},"nodeType":"YulExpressionStatement","src":"20060:72:10"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19897:9:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19909:6:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19917:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19928:4:10","type":""}],"src":"19807:332:10"},{"body":{"nodeType":"YulBlock","src":"20185:76:10","statements":[{"body":{"nodeType":"YulBlock","src":"20239:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20248:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20251:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20241:6:10"},"nodeType":"YulFunctionCall","src":"20241:12:10"},"nodeType":"YulExpressionStatement","src":"20241:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20208:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20230:5:10"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"20215:14:10"},"nodeType":"YulFunctionCall","src":"20215:21:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20205:2:10"},"nodeType":"YulFunctionCall","src":"20205:32:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20198:6:10"},"nodeType":"YulFunctionCall","src":"20198:40:10"},"nodeType":"YulIf","src":"20195:60:10"}]},"name":"validator_revert_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20178:5:10","type":""}],"src":"20145:116:10"},{"body":{"nodeType":"YulBlock","src":"20327:77:10","statements":[{"nodeType":"YulAssignment","src":"20337:22:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"20352:6:10"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20346:5:10"},"nodeType":"YulFunctionCall","src":"20346:13:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"20337:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20392:5:10"}],"functionName":{"name":"validator_revert_t_bool","nodeType":"YulIdentifier","src":"20368:23:10"},"nodeType":"YulFunctionCall","src":"20368:30:10"},"nodeType":"YulExpressionStatement","src":"20368:30:10"}]},"name":"abi_decode_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"20305:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"20313:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"20321:5:10","type":""}],"src":"20267:137:10"},{"body":{"nodeType":"YulBlock","src":"20484:271:10","statements":[{"body":{"nodeType":"YulBlock","src":"20530:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"20532:77:10"},"nodeType":"YulFunctionCall","src":"20532:79:10"},"nodeType":"YulExpressionStatement","src":"20532:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20505:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"20514:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20501:3:10"},"nodeType":"YulFunctionCall","src":"20501:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"20526:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20497:3:10"},"nodeType":"YulFunctionCall","src":"20497:32:10"},"nodeType":"YulIf","src":"20494:119:10"},{"nodeType":"YulBlock","src":"20623:125:10","statements":[{"nodeType":"YulVariableDeclaration","src":"20638:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"20652:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"20642:6:10","type":""}]},{"nodeType":"YulAssignment","src":"20667:71:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20710:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"20721:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20706:3:10"},"nodeType":"YulFunctionCall","src":"20706:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20730:7:10"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nodeType":"YulIdentifier","src":"20677:28:10"},"nodeType":"YulFunctionCall","src":"20677:61:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20667:6:10"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20454:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20465:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20477:6:10","type":""}],"src":"20410:345:10"},{"body":{"nodeType":"YulBlock","src":"20789:152:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20806:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20809:77:10","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20799:6:10"},"nodeType":"YulFunctionCall","src":"20799:88:10"},"nodeType":"YulExpressionStatement","src":"20799:88:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20903:1:10","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20906:4:10","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20896:6:10"},"nodeType":"YulFunctionCall","src":"20896:15:10"},"nodeType":"YulExpressionStatement","src":"20896:15:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20927:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20930:4:10","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20920:6:10"},"nodeType":"YulFunctionCall","src":"20920:15:10"},"nodeType":"YulExpressionStatement","src":"20920:15:10"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"20761:180:10"},{"body":{"nodeType":"YulBlock","src":"20992:149:10","statements":[{"nodeType":"YulAssignment","src":"21002:25:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21025:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"21007:17:10"},"nodeType":"YulFunctionCall","src":"21007:20:10"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"21002:1:10"}]},{"nodeType":"YulAssignment","src":"21036:25:10","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21059:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"21041:17:10"},"nodeType":"YulFunctionCall","src":"21041:20:10"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"21036:1:10"}]},{"nodeType":"YulAssignment","src":"21070:17:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21082:1:10"},{"name":"y","nodeType":"YulIdentifier","src":"21085:1:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21078:3:10"},"nodeType":"YulFunctionCall","src":"21078:9:10"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21070:4:10"}]},{"body":{"nodeType":"YulBlock","src":"21112:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21114:16:10"},"nodeType":"YulFunctionCall","src":"21114:18:10"},"nodeType":"YulExpressionStatement","src":"21114:18:10"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"21103:4:10"},{"name":"x","nodeType":"YulIdentifier","src":"21109:1:10"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21100:2:10"},"nodeType":"YulFunctionCall","src":"21100:11:10"},"nodeType":"YulIf","src":"21097:37:10"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20978:1:10","type":""},{"name":"y","nodeType":"YulTypedName","src":"20981:1:10","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"20987:4:10","type":""}],"src":"20947:194:10"},{"body":{"nodeType":"YulBlock","src":"21191:147:10","statements":[{"nodeType":"YulAssignment","src":"21201:25:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21224:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"21206:17:10"},"nodeType":"YulFunctionCall","src":"21206:20:10"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"21201:1:10"}]},{"nodeType":"YulAssignment","src":"21235:25:10","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21258:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"21240:17:10"},"nodeType":"YulFunctionCall","src":"21240:20:10"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"21235:1:10"}]},{"nodeType":"YulAssignment","src":"21269:16:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21280:1:10"},{"name":"y","nodeType":"YulIdentifier","src":"21283:1:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21276:3:10"},"nodeType":"YulFunctionCall","src":"21276:9:10"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"21269:3:10"}]},{"body":{"nodeType":"YulBlock","src":"21309:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21311:16:10"},"nodeType":"YulFunctionCall","src":"21311:18:10"},"nodeType":"YulExpressionStatement","src":"21311:18:10"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21301:1:10"},{"name":"sum","nodeType":"YulIdentifier","src":"21304:3:10"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21298:2:10"},"nodeType":"YulFunctionCall","src":"21298:10:10"},"nodeType":"YulIf","src":"21295:36:10"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21178:1:10","type":""},{"name":"y","nodeType":"YulTypedName","src":"21181:1:10","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21187:3:10","type":""}],"src":"21147:191:10"},{"body":{"nodeType":"YulBlock","src":"21442:124:10","statements":[{"nodeType":"YulAssignment","src":"21452:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21464:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"21475:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21460:3:10"},"nodeType":"YulFunctionCall","src":"21460:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21452:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21532:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21545:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"21556:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21541:3:10"},"nodeType":"YulFunctionCall","src":"21541:17:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"21488:43:10"},"nodeType":"YulFunctionCall","src":"21488:71:10"},"nodeType":"YulExpressionStatement","src":"21488:71:10"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21414:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21426:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21437:4:10","type":""}],"src":"21344:222:10"},{"body":{"nodeType":"YulBlock","src":"21678:122:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21700:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"21708:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21696:3:10"},"nodeType":"YulFunctionCall","src":"21696:14:10"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nodeType":"YulLiteral","src":"21712:34:10","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21689:6:10"},"nodeType":"YulFunctionCall","src":"21689:58:10"},"nodeType":"YulExpressionStatement","src":"21689:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21768:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"21776:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21764:3:10"},"nodeType":"YulFunctionCall","src":"21764:15:10"},{"hexValue":"6e6577206f776e6572","kind":"string","nodeType":"YulLiteral","src":"21781:11:10","type":"","value":"new owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21757:6:10"},"nodeType":"YulFunctionCall","src":"21757:36:10"},"nodeType":"YulExpressionStatement","src":"21757:36:10"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"21670:6:10","type":""}],"src":"21572:228:10"},{"body":{"nodeType":"YulBlock","src":"21952:220:10","statements":[{"nodeType":"YulAssignment","src":"21962:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22028:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"22033:2:10","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"21969:58:10"},"nodeType":"YulFunctionCall","src":"21969:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"21962:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22134:3:10"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulIdentifier","src":"22045:88:10"},"nodeType":"YulFunctionCall","src":"22045:93:10"},"nodeType":"YulExpressionStatement","src":"22045:93:10"},{"nodeType":"YulAssignment","src":"22147:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22158:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"22163:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22154:3:10"},"nodeType":"YulFunctionCall","src":"22154:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22147:3:10"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21940:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21948:3:10","type":""}],"src":"21806:366:10"},{"body":{"nodeType":"YulBlock","src":"22349:248:10","statements":[{"nodeType":"YulAssignment","src":"22359:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22371:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"22382:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22367:3:10"},"nodeType":"YulFunctionCall","src":"22367:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22359:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22406:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"22417:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22402:3:10"},"nodeType":"YulFunctionCall","src":"22402:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"22425:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"22431:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22421:3:10"},"nodeType":"YulFunctionCall","src":"22421:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22395:6:10"},"nodeType":"YulFunctionCall","src":"22395:47:10"},"nodeType":"YulExpressionStatement","src":"22395:47:10"},{"nodeType":"YulAssignment","src":"22451:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"22585:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"22459:124:10"},"nodeType":"YulFunctionCall","src":"22459:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22451:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22329:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22344:4:10","type":""}],"src":"22178:419:10"},{"body":{"nodeType":"YulBlock","src":"22709:62:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22731:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"22739:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22727:3:10"},"nodeType":"YulFunctionCall","src":"22727:14:10"},{"hexValue":"496e76616c69644d65737361676548617368","kind":"string","nodeType":"YulLiteral","src":"22743:20:10","type":"","value":"InvalidMessageHash"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22720:6:10"},"nodeType":"YulFunctionCall","src":"22720:44:10"},"nodeType":"YulExpressionStatement","src":"22720:44:10"}]},"name":"store_literal_in_memory_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"22701:6:10","type":""}],"src":"22603:168:10"},{"body":{"nodeType":"YulBlock","src":"22923:220:10","statements":[{"nodeType":"YulAssignment","src":"22933:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22999:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"23004:2:10","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"22940:58:10"},"nodeType":"YulFunctionCall","src":"22940:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"22933:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23105:3:10"}],"functionName":{"name":"store_literal_in_memory_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4","nodeType":"YulIdentifier","src":"23016:88:10"},"nodeType":"YulFunctionCall","src":"23016:93:10"},"nodeType":"YulExpressionStatement","src":"23016:93:10"},{"nodeType":"YulAssignment","src":"23118:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23129:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"23134:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23125:3:10"},"nodeType":"YulFunctionCall","src":"23125:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23118:3:10"}]}]},"name":"abi_encode_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22911:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22919:3:10","type":""}],"src":"22777:366:10"},{"body":{"nodeType":"YulBlock","src":"23320:248:10","statements":[{"nodeType":"YulAssignment","src":"23330:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23342:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"23353:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23338:3:10"},"nodeType":"YulFunctionCall","src":"23338:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23330:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23377:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"23388:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23373:3:10"},"nodeType":"YulFunctionCall","src":"23373:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23396:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"23402:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23392:3:10"},"nodeType":"YulFunctionCall","src":"23392:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23366:6:10"},"nodeType":"YulFunctionCall","src":"23366:47:10"},"nodeType":"YulExpressionStatement","src":"23366:47:10"},{"nodeType":"YulAssignment","src":"23422:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23556:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"23430:124:10"},"nodeType":"YulFunctionCall","src":"23430:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23422:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23300:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23315:4:10","type":""}],"src":"23149:419:10"},{"body":{"nodeType":"YulBlock","src":"23728:288:10","statements":[{"nodeType":"YulAssignment","src":"23738:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23750:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"23761:2:10","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23746:3:10"},"nodeType":"YulFunctionCall","src":"23746:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23738:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23818:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23831:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"23842:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23827:3:10"},"nodeType":"YulFunctionCall","src":"23827:17:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"23774:43:10"},"nodeType":"YulFunctionCall","src":"23774:71:10"},"nodeType":"YulExpressionStatement","src":"23774:71:10"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23899:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23912:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"23923:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23908:3:10"},"nodeType":"YulFunctionCall","src":"23908:18:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"23855:43:10"},"nodeType":"YulFunctionCall","src":"23855:72:10"},"nodeType":"YulExpressionStatement","src":"23855:72:10"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23981:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23994:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"24005:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23990:3:10"},"nodeType":"YulFunctionCall","src":"23990:18:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"23937:43:10"},"nodeType":"YulFunctionCall","src":"23937:72:10"},"nodeType":"YulExpressionStatement","src":"23937:72:10"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23684:9:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23696:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23704:6:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23712:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23723:4:10","type":""}],"src":"23574:442:10"},{"body":{"nodeType":"YulBlock","src":"24065:190:10","statements":[{"nodeType":"YulAssignment","src":"24075:33:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24102:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24084:17:10"},"nodeType":"YulFunctionCall","src":"24084:24:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"24075:5:10"}]},{"body":{"nodeType":"YulBlock","src":"24198:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24200:16:10"},"nodeType":"YulFunctionCall","src":"24200:18:10"},"nodeType":"YulExpressionStatement","src":"24200:18:10"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24123:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"24130:66:10","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24120:2:10"},"nodeType":"YulFunctionCall","src":"24120:77:10"},"nodeType":"YulIf","src":"24117:103:10"},{"nodeType":"YulAssignment","src":"24229:20:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24240:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"24247:1:10","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24236:3:10"},"nodeType":"YulFunctionCall","src":"24236:13:10"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"24229:3:10"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"24051:5:10","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"24061:3:10","type":""}],"src":"24022:233:10"},{"body":{"nodeType":"YulBlock","src":"24309:362:10","statements":[{"nodeType":"YulAssignment","src":"24319:25:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24342:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24324:17:10"},"nodeType":"YulFunctionCall","src":"24324:20:10"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24319:1:10"}]},{"nodeType":"YulAssignment","src":"24353:25:10","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24376:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24358:17:10"},"nodeType":"YulFunctionCall","src":"24358:20:10"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24353:1:10"}]},{"nodeType":"YulVariableDeclaration","src":"24387:28:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24410:1:10"},{"name":"y","nodeType":"YulIdentifier","src":"24413:1:10"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24406:3:10"},"nodeType":"YulFunctionCall","src":"24406:9:10"},"variables":[{"name":"product_raw","nodeType":"YulTypedName","src":"24391:11:10","type":""}]},{"nodeType":"YulAssignment","src":"24424:41:10","value":{"arguments":[{"name":"product_raw","nodeType":"YulIdentifier","src":"24453:11:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24435:17:10"},"nodeType":"YulFunctionCall","src":"24435:30:10"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24424:7:10"}]},{"body":{"nodeType":"YulBlock","src":"24642:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24644:16:10"},"nodeType":"YulFunctionCall","src":"24644:18:10"},"nodeType":"YulExpressionStatement","src":"24644:18:10"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24575:1:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24568:6:10"},"nodeType":"YulFunctionCall","src":"24568:9:10"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24598:1:10"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"24605:7:10"},{"name":"x","nodeType":"YulIdentifier","src":"24614:1:10"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24601:3:10"},"nodeType":"YulFunctionCall","src":"24601:15:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24595:2:10"},"nodeType":"YulFunctionCall","src":"24595:22:10"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24548:2:10"},"nodeType":"YulFunctionCall","src":"24548:83:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:10"},"nodeType":"YulFunctionCall","src":"24528:113:10"},"nodeType":"YulIf","src":"24525:139:10"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24292:1:10","type":""},{"name":"y","nodeType":"YulTypedName","src":"24295:1:10","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24301:7:10","type":""}],"src":"24261:410:10"},{"body":{"nodeType":"YulBlock","src":"24705:152:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24722:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24725:77:10","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24715:6:10"},"nodeType":"YulFunctionCall","src":"24715:88:10"},"nodeType":"YulExpressionStatement","src":"24715:88:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24819:1:10","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24822:4:10","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24812:6:10"},"nodeType":"YulFunctionCall","src":"24812:15:10"},"nodeType":"YulExpressionStatement","src":"24812:15:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24843:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24846:4:10","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24836:6:10"},"nodeType":"YulFunctionCall","src":"24836:15:10"},"nodeType":"YulExpressionStatement","src":"24836:15:10"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24677:180:10"},{"body":{"nodeType":"YulBlock","src":"24905:143:10","statements":[{"nodeType":"YulAssignment","src":"24915:25:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24938:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24920:17:10"},"nodeType":"YulFunctionCall","src":"24920:20:10"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24915:1:10"}]},{"nodeType":"YulAssignment","src":"24949:25:10","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24972:1:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24954:17:10"},"nodeType":"YulFunctionCall","src":"24954:20:10"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24949:1:10"}]},{"body":{"nodeType":"YulBlock","src":"24996:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24998:16:10"},"nodeType":"YulFunctionCall","src":"24998:18:10"},"nodeType":"YulExpressionStatement","src":"24998:18:10"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24993:1:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24986:6:10"},"nodeType":"YulFunctionCall","src":"24986:9:10"},"nodeType":"YulIf","src":"24983:35:10"},{"nodeType":"YulAssignment","src":"25028:14:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25037:1:10"},{"name":"y","nodeType":"YulIdentifier","src":"25040:1:10"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25033:3:10"},"nodeType":"YulFunctionCall","src":"25033:9:10"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25028:1:10"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24894:1:10","type":""},{"name":"y","nodeType":"YulTypedName","src":"24897:1:10","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24903:1:10","type":""}],"src":"24863:185:10"},{"body":{"nodeType":"YulBlock","src":"25086:28:10","statements":[{"nodeType":"YulAssignment","src":"25096:12:10","value":{"name":"value","nodeType":"YulIdentifier","src":"25103:5:10"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"25096:3:10"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"25072:5:10","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"25082:3:10","type":""}],"src":"25054:60:10"},{"body":{"nodeType":"YulBlock","src":"25179:81:10","statements":[{"nodeType":"YulAssignment","src":"25189:65:10","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"25246:5:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"25229:16:10"},"nodeType":"YulFunctionCall","src":"25229:23:10"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"25220:8:10"},"nodeType":"YulFunctionCall","src":"25220:33:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"25202:17:10"},"nodeType":"YulFunctionCall","src":"25202:52:10"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"25189:9:10"}]}]},"name":"convert_t_uint96_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"25159:5:10","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"25169:9:10","type":""}],"src":"25120:140:10"},{"body":{"nodeType":"YulBlock","src":"25330:65:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25347:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"25382:5:10"}],"functionName":{"name":"convert_t_uint96_to_t_uint256","nodeType":"YulIdentifier","src":"25352:29:10"},"nodeType":"YulFunctionCall","src":"25352:36:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25340:6:10"},"nodeType":"YulFunctionCall","src":"25340:49:10"},"nodeType":"YulExpressionStatement","src":"25340:49:10"}]},"name":"abi_encode_t_uint96_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"25318:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"25325:3:10","type":""}],"src":"25266:129:10"},{"body":{"nodeType":"YulBlock","src":"25465:82:10","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"25488:3:10"},{"name":"src","nodeType":"YulIdentifier","src":"25493:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"25498:6:10"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"25475:12:10"},"nodeType":"YulFunctionCall","src":"25475:30:10"},"nodeType":"YulExpressionStatement","src":"25475:30:10"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"25525:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"25530:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25521:3:10"},"nodeType":"YulFunctionCall","src":"25521:16:10"},{"kind":"number","nodeType":"YulLiteral","src":"25539:1:10","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25514:6:10"},"nodeType":"YulFunctionCall","src":"25514:27:10"},"nodeType":"YulExpressionStatement","src":"25514:27:10"}]},"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"25447:3:10","type":""},{"name":"dst","nodeType":"YulTypedName","src":"25452:3:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"25457:6:10","type":""}],"src":"25401:146:10"},{"body":{"nodeType":"YulBlock","src":"25601:54:10","statements":[{"nodeType":"YulAssignment","src":"25611:38:10","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"25629:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"25636:2:10","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25625:3:10"},"nodeType":"YulFunctionCall","src":"25625:14:10"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25645:2:10","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25641:3:10"},"nodeType":"YulFunctionCall","src":"25641:7:10"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25621:3:10"},"nodeType":"YulFunctionCall","src":"25621:28:10"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"25611:6:10"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"25584:5:10","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"25594:6:10","type":""}],"src":"25553:102:10"},{"body":{"nodeType":"YulBlock","src":"25787:215:10","statements":[{"nodeType":"YulAssignment","src":"25797:78:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25863:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"25868:6:10"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"25804:58:10"},"nodeType":"YulFunctionCall","src":"25804:71:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"25797:3:10"}]},{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"25922:5:10"},{"name":"pos","nodeType":"YulIdentifier","src":"25929:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"25934:6:10"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"25885:36:10"},"nodeType":"YulFunctionCall","src":"25885:56:10"},"nodeType":"YulExpressionStatement","src":"25885:56:10"},{"nodeType":"YulAssignment","src":"25950:46:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25961:3:10"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"25988:6:10"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"25966:21:10"},"nodeType":"YulFunctionCall","src":"25966:29:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25957:3:10"},"nodeType":"YulFunctionCall","src":"25957:39:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"25950:3:10"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"25760:5:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"25767:6:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"25775:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"25783:3:10","type":""}],"src":"25685:317:10"},{"body":{"nodeType":"YulBlock","src":"26219:451:10","statements":[{"nodeType":"YulAssignment","src":"26229:27:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26241:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"26252:3:10","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26237:3:10"},"nodeType":"YulFunctionCall","src":"26237:19:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26229:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26310:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26323:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"26334:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26319:3:10"},"nodeType":"YulFunctionCall","src":"26319:17:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"26266:43:10"},"nodeType":"YulFunctionCall","src":"26266:71:10"},"nodeType":"YulExpressionStatement","src":"26266:71:10"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26391:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26404:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"26415:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26400:3:10"},"nodeType":"YulFunctionCall","src":"26400:18:10"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"26347:43:10"},"nodeType":"YulFunctionCall","src":"26347:72:10"},"nodeType":"YulExpressionStatement","src":"26347:72:10"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26472:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26485:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"26496:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26481:3:10"},"nodeType":"YulFunctionCall","src":"26481:18:10"}],"functionName":{"name":"abi_encode_t_uint96_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"26429:42:10"},"nodeType":"YulFunctionCall","src":"26429:71:10"},"nodeType":"YulExpressionStatement","src":"26429:71:10"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26521:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"26532:2:10","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26517:3:10"},"nodeType":"YulFunctionCall","src":"26517:18:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"26541:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"26547:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26537:3:10"},"nodeType":"YulFunctionCall","src":"26537:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26510:6:10"},"nodeType":"YulFunctionCall","src":"26510:48:10"},"nodeType":"YulExpressionStatement","src":"26510:48:10"},{"nodeType":"YulAssignment","src":"26567:96:10","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"26641:6:10"},{"name":"value4","nodeType":"YulIdentifier","src":"26649:6:10"},{"name":"tail","nodeType":"YulIdentifier","src":"26658:4:10"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"26575:65:10"},"nodeType":"YulFunctionCall","src":"26575:88:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26567:4:10"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint96_t_string_calldata_ptr__to_t_uint256_t_bytes32_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26159:9:10","type":""},{"name":"value4","nodeType":"YulTypedName","src":"26171:6:10","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26179:6:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26187:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26195:6:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26203:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26214:4:10","type":""}],"src":"26008:662:10"},{"body":{"nodeType":"YulBlock","src":"26782:127:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26804:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"26812:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26800:3:10"},"nodeType":"YulFunctionCall","src":"26800:14:10"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"26816:34:10","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26793:6:10"},"nodeType":"YulFunctionCall","src":"26793:58:10"},"nodeType":"YulExpressionStatement","src":"26793:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26872:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"26880:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26868:3:10"},"nodeType":"YulFunctionCall","src":"26868:15:10"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"26885:16:10","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26861:6:10"},"nodeType":"YulFunctionCall","src":"26861:41:10"},"nodeType":"YulExpressionStatement","src":"26861:41:10"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"26774:6:10","type":""}],"src":"26676:233:10"},{"body":{"nodeType":"YulBlock","src":"27061:220:10","statements":[{"nodeType":"YulAssignment","src":"27071:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27137:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"27142:2:10","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"27078:58:10"},"nodeType":"YulFunctionCall","src":"27078:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"27071:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27243:3:10"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nodeType":"YulIdentifier","src":"27154:88:10"},"nodeType":"YulFunctionCall","src":"27154:93:10"},"nodeType":"YulExpressionStatement","src":"27154:93:10"},{"nodeType":"YulAssignment","src":"27256:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27267:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"27272:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27263:3:10"},"nodeType":"YulFunctionCall","src":"27263:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"27256:3:10"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"27049:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"27057:3:10","type":""}],"src":"26915:366:10"},{"body":{"nodeType":"YulBlock","src":"27458:248:10","statements":[{"nodeType":"YulAssignment","src":"27468:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27480:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"27491:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27476:3:10"},"nodeType":"YulFunctionCall","src":"27476:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27468:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27515:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"27526:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27511:3:10"},"nodeType":"YulFunctionCall","src":"27511:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"27534:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"27540:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27530:3:10"},"nodeType":"YulFunctionCall","src":"27530:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27504:6:10"},"nodeType":"YulFunctionCall","src":"27504:47:10"},"nodeType":"YulExpressionStatement","src":"27504:47:10"},{"nodeType":"YulAssignment","src":"27560:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"27694:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"27568:124:10"},"nodeType":"YulFunctionCall","src":"27568:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27560:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27438:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27453:4:10","type":""}],"src":"27287:419:10"},{"body":{"nodeType":"YulBlock","src":"27765:32:10","statements":[{"nodeType":"YulAssignment","src":"27775:16:10","value":{"name":"value","nodeType":"YulIdentifier","src":"27786:5:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"27775:7:10"}]}]},"name":"cleanup_t_rational_1_by_1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27747:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"27757:7:10","type":""}],"src":"27712:85:10"},{"body":{"nodeType":"YulBlock","src":"27846:43:10","statements":[{"nodeType":"YulAssignment","src":"27856:27:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27871:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"27878:4:10","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27867:3:10"},"nodeType":"YulFunctionCall","src":"27867:16:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"27856:7:10"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27828:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"27838:7:10","type":""}],"src":"27803:86:10"},{"body":{"nodeType":"YulBlock","src":"27961:88:10","statements":[{"nodeType":"YulAssignment","src":"27971:72:10","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"28035:5:10"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nodeType":"YulIdentifier","src":"28009:25:10"},"nodeType":"YulFunctionCall","src":"28009:32:10"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"28000:8:10"},"nodeType":"YulFunctionCall","src":"28000:42:10"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"27984:15:10"},"nodeType":"YulFunctionCall","src":"27984:59:10"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"27971:9:10"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27941:5:10","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"27951:9:10","type":""}],"src":"27895:154:10"},{"body":{"nodeType":"YulBlock","src":"28126:72:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28143:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"28185:5:10"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nodeType":"YulIdentifier","src":"28148:36:10"},"nodeType":"YulFunctionCall","src":"28148:43:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28136:6:10"},"nodeType":"YulFunctionCall","src":"28136:56:10"},"nodeType":"YulExpressionStatement","src":"28136:56:10"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"28114:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"28121:3:10","type":""}],"src":"28055:143:10"},{"body":{"nodeType":"YulBlock","src":"28308:130:10","statements":[{"nodeType":"YulAssignment","src":"28318:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28330:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"28341:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28326:3:10"},"nodeType":"YulFunctionCall","src":"28326:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28318:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"28404:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28417:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"28428:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28413:3:10"},"nodeType":"YulFunctionCall","src":"28413:17:10"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"28354:49:10"},"nodeType":"YulFunctionCall","src":"28354:77:10"},"nodeType":"YulExpressionStatement","src":"28354:77:10"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28280:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"28292:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28303:4:10","type":""}],"src":"28204:234:10"},{"body":{"nodeType":"YulBlock","src":"28550:67:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"28572:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"28580:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28568:3:10"},"nodeType":"YulFunctionCall","src":"28568:14:10"},{"hexValue":"476174657761793a20696e76616c696420737461747573","kind":"string","nodeType":"YulLiteral","src":"28584:25:10","type":"","value":"Gateway: invalid status"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28561:6:10"},"nodeType":"YulFunctionCall","src":"28561:49:10"},"nodeType":"YulExpressionStatement","src":"28561:49:10"}]},"name":"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"28542:6:10","type":""}],"src":"28444:173:10"},{"body":{"nodeType":"YulBlock","src":"28769:220:10","statements":[{"nodeType":"YulAssignment","src":"28779:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28845:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"28850:2:10","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"28786:58:10"},"nodeType":"YulFunctionCall","src":"28786:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"28779:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28951:3:10"}],"functionName":{"name":"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","nodeType":"YulIdentifier","src":"28862:88:10"},"nodeType":"YulFunctionCall","src":"28862:93:10"},"nodeType":"YulExpressionStatement","src":"28862:93:10"},{"nodeType":"YulAssignment","src":"28964:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28975:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"28980:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28971:3:10"},"nodeType":"YulFunctionCall","src":"28971:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"28964:3:10"}]}]},"name":"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"28757:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"28765:3:10","type":""}],"src":"28623:366:10"},{"body":{"nodeType":"YulBlock","src":"29166:248:10","statements":[{"nodeType":"YulAssignment","src":"29176:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29188:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"29199:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29184:3:10"},"nodeType":"YulFunctionCall","src":"29184:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29176:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29223:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"29234:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29219:3:10"},"nodeType":"YulFunctionCall","src":"29219:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"29242:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"29248:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29238:3:10"},"nodeType":"YulFunctionCall","src":"29238:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29212:6:10"},"nodeType":"YulFunctionCall","src":"29212:47:10"},"nodeType":"YulExpressionStatement","src":"29212:47:10"},{"nodeType":"YulAssignment","src":"29268:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"29402:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"29276:124:10"},"nodeType":"YulFunctionCall","src":"29276:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29268:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29146:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29161:4:10","type":""}],"src":"28995:419:10"},{"body":{"nodeType":"YulBlock","src":"29464:172:10","statements":[{"nodeType":"YulAssignment","src":"29474:24:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29496:1:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"29479:16:10"},"nodeType":"YulFunctionCall","src":"29479:19:10"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"29474:1:10"}]},{"nodeType":"YulAssignment","src":"29507:24:10","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"29529:1:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"29512:16:10"},"nodeType":"YulFunctionCall","src":"29512:19:10"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"29507:1:10"}]},{"nodeType":"YulAssignment","src":"29540:17:10","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29552:1:10"},{"name":"y","nodeType":"YulIdentifier","src":"29555:1:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29548:3:10"},"nodeType":"YulFunctionCall","src":"29548:9:10"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"29540:4:10"}]},{"body":{"nodeType":"YulBlock","src":"29607:22:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29609:16:10"},"nodeType":"YulFunctionCall","src":"29609:18:10"},"nodeType":"YulExpressionStatement","src":"29609:18:10"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"29573:4:10"},{"kind":"number","nodeType":"YulLiteral","src":"29579:26:10","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"29570:2:10"},"nodeType":"YulFunctionCall","src":"29570:36:10"},"nodeType":"YulIf","src":"29567:62:10"}]},"name":"checked_sub_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"29450:1:10","type":""},{"name":"y","nodeType":"YulTypedName","src":"29453:1:10","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"29459:4:10","type":""}],"src":"29420:216:10"},{"body":{"nodeType":"YulBlock","src":"29700:80:10","statements":[{"nodeType":"YulAssignment","src":"29710:64:10","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29766:5:10"}],"functionName":{"name":"cleanup_t_uint64","nodeType":"YulIdentifier","src":"29749:16:10"},"nodeType":"YulFunctionCall","src":"29749:23:10"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"29740:8:10"},"nodeType":"YulFunctionCall","src":"29740:33:10"}],"functionName":{"name":"cleanup_t_uint96","nodeType":"YulIdentifier","src":"29723:16:10"},"nodeType":"YulFunctionCall","src":"29723:51:10"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"29710:9:10"}]}]},"name":"convert_t_uint64_to_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"29680:5:10","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"29690:9:10","type":""}],"src":"29642:138:10"},{"body":{"nodeType":"YulBlock","src":"29849:64:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29866:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29900:5:10"}],"functionName":{"name":"convert_t_uint64_to_t_uint96","nodeType":"YulIdentifier","src":"29871:28:10"},"nodeType":"YulFunctionCall","src":"29871:35:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29859:6:10"},"nodeType":"YulFunctionCall","src":"29859:48:10"},"nodeType":"YulExpressionStatement","src":"29859:48:10"}]},"name":"abi_encode_t_uint64_to_t_uint96_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"29837:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"29844:3:10","type":""}],"src":"29786:127:10"},{"body":{"nodeType":"YulBlock","src":"30043:204:10","statements":[{"nodeType":"YulAssignment","src":"30053:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30065:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"30076:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30061:3:10"},"nodeType":"YulFunctionCall","src":"30061:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30053:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30133:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30146:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"30157:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30142:3:10"},"nodeType":"YulFunctionCall","src":"30142:17:10"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"30089:43:10"},"nodeType":"YulFunctionCall","src":"30089:71:10"},"nodeType":"YulExpressionStatement","src":"30089:71:10"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30212:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30225:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"30236:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30221:3:10"},"nodeType":"YulFunctionCall","src":"30221:18:10"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint96_fromStack","nodeType":"YulIdentifier","src":"30170:41:10"},"nodeType":"YulFunctionCall","src":"30170:70:10"},"nodeType":"YulExpressionStatement","src":"30170:70:10"}]},"name":"abi_encode_tuple_t_bytes32_t_uint64__to_t_bytes32_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30007:9:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30019:6:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30027:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30038:4:10","type":""}],"src":"29919:328:10"},{"body":{"nodeType":"YulBlock","src":"30359:76:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"30381:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"30389:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30377:3:10"},"nodeType":"YulFunctionCall","src":"30377:14:10"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"30393:34:10","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30370:6:10"},"nodeType":"YulFunctionCall","src":"30370:58:10"},"nodeType":"YulExpressionStatement","src":"30370:58:10"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"30351:6:10","type":""}],"src":"30253:182:10"},{"body":{"nodeType":"YulBlock","src":"30587:220:10","statements":[{"nodeType":"YulAssignment","src":"30597:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30663:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"30668:2:10","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"30604:58:10"},"nodeType":"YulFunctionCall","src":"30604:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"30597:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30769:3:10"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulIdentifier","src":"30680:88:10"},"nodeType":"YulFunctionCall","src":"30680:93:10"},"nodeType":"YulExpressionStatement","src":"30680:93:10"},{"nodeType":"YulAssignment","src":"30782:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30793:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"30798:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30789:3:10"},"nodeType":"YulFunctionCall","src":"30789:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"30782:3:10"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"30575:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"30583:3:10","type":""}],"src":"30441:366:10"},{"body":{"nodeType":"YulBlock","src":"30984:248:10","statements":[{"nodeType":"YulAssignment","src":"30994:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31006:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"31017:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31002:3:10"},"nodeType":"YulFunctionCall","src":"31002:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30994:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31041:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"31052:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31037:3:10"},"nodeType":"YulFunctionCall","src":"31037:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"31060:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"31066:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31056:3:10"},"nodeType":"YulFunctionCall","src":"31056:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31030:6:10"},"nodeType":"YulFunctionCall","src":"31030:47:10"},"nodeType":"YulExpressionStatement","src":"31030:47:10"},{"nodeType":"YulAssignment","src":"31086:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"31220:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"31094:124:10"},"nodeType":"YulFunctionCall","src":"31094:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31086:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30964:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30979:4:10","type":""}],"src":"30813:419:10"},{"body":{"nodeType":"YulBlock","src":"31344:60:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"31366:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"31374:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31362:3:10"},"nodeType":"YulFunctionCall","src":"31362:14:10"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"31378:18:10","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31355:6:10"},"nodeType":"YulFunctionCall","src":"31355:42:10"},"nodeType":"YulExpressionStatement","src":"31355:42:10"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"31336:6:10","type":""}],"src":"31238:166:10"},{"body":{"nodeType":"YulBlock","src":"31556:220:10","statements":[{"nodeType":"YulAssignment","src":"31566:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31632:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"31637:2:10","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"31573:58:10"},"nodeType":"YulFunctionCall","src":"31573:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"31566:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31738:3:10"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nodeType":"YulIdentifier","src":"31649:88:10"},"nodeType":"YulFunctionCall","src":"31649:93:10"},"nodeType":"YulExpressionStatement","src":"31649:93:10"},{"nodeType":"YulAssignment","src":"31751:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31762:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"31767:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31758:3:10"},"nodeType":"YulFunctionCall","src":"31758:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"31751:3:10"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"31544:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"31552:3:10","type":""}],"src":"31410:366:10"},{"body":{"nodeType":"YulBlock","src":"31953:248:10","statements":[{"nodeType":"YulAssignment","src":"31963:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31975:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"31986:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31971:3:10"},"nodeType":"YulFunctionCall","src":"31971:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31963:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32010:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"32021:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32006:3:10"},"nodeType":"YulFunctionCall","src":"32006:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"32029:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"32035:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32025:3:10"},"nodeType":"YulFunctionCall","src":"32025:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31999:6:10"},"nodeType":"YulFunctionCall","src":"31999:47:10"},"nodeType":"YulExpressionStatement","src":"31999:47:10"},{"nodeType":"YulAssignment","src":"32055:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"32189:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"32063:124:10"},"nodeType":"YulFunctionCall","src":"32063:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32055:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31933:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31948:4:10","type":""}],"src":"31782:419:10"},{"body":{"nodeType":"YulBlock","src":"32313:61:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32335:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"32343:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32331:3:10"},"nodeType":"YulFunctionCall","src":"32331:14:10"},{"hexValue":"546f6b656e4e6f74537570706f72746564","kind":"string","nodeType":"YulLiteral","src":"32347:19:10","type":"","value":"TokenNotSupported"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32324:6:10"},"nodeType":"YulFunctionCall","src":"32324:43:10"},"nodeType":"YulExpressionStatement","src":"32324:43:10"}]},"name":"store_literal_in_memory_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"32305:6:10","type":""}],"src":"32207:167:10"},{"body":{"nodeType":"YulBlock","src":"32526:220:10","statements":[{"nodeType":"YulAssignment","src":"32536:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32602:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"32607:2:10","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"32543:58:10"},"nodeType":"YulFunctionCall","src":"32543:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"32536:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32708:3:10"}],"functionName":{"name":"store_literal_in_memory_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1","nodeType":"YulIdentifier","src":"32619:88:10"},"nodeType":"YulFunctionCall","src":"32619:93:10"},"nodeType":"YulExpressionStatement","src":"32619:93:10"},{"nodeType":"YulAssignment","src":"32721:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32732:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"32737:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32728:3:10"},"nodeType":"YulFunctionCall","src":"32728:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"32721:3:10"}]}]},"name":"abi_encode_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"32514:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"32522:3:10","type":""}],"src":"32380:366:10"},{"body":{"nodeType":"YulBlock","src":"32923:248:10","statements":[{"nodeType":"YulAssignment","src":"32933:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32945:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"32956:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32941:3:10"},"nodeType":"YulFunctionCall","src":"32941:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32933:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32980:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"32991:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32976:3:10"},"nodeType":"YulFunctionCall","src":"32976:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"32999:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"33005:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32995:3:10"},"nodeType":"YulFunctionCall","src":"32995:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32969:6:10"},"nodeType":"YulFunctionCall","src":"32969:47:10"},"nodeType":"YulExpressionStatement","src":"32969:47:10"},{"nodeType":"YulAssignment","src":"33025:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"33159:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"33033:124:10"},"nodeType":"YulFunctionCall","src":"33033:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33025:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32903:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32918:4:10","type":""}],"src":"32752:419:10"},{"body":{"nodeType":"YulBlock","src":"33283:56:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"33305:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"33313:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33301:3:10"},"nodeType":"YulFunctionCall","src":"33301:14:10"},{"hexValue":"416d6f756e7449735a65726f","kind":"string","nodeType":"YulLiteral","src":"33317:14:10","type":"","value":"AmountIsZero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33294:6:10"},"nodeType":"YulFunctionCall","src":"33294:38:10"},"nodeType":"YulExpressionStatement","src":"33294:38:10"}]},"name":"store_literal_in_memory_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"33275:6:10","type":""}],"src":"33177:162:10"},{"body":{"nodeType":"YulBlock","src":"33491:220:10","statements":[{"nodeType":"YulAssignment","src":"33501:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33567:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"33572:2:10","type":"","value":"12"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"33508:58:10"},"nodeType":"YulFunctionCall","src":"33508:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"33501:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33673:3:10"}],"functionName":{"name":"store_literal_in_memory_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2","nodeType":"YulIdentifier","src":"33584:88:10"},"nodeType":"YulFunctionCall","src":"33584:93:10"},"nodeType":"YulExpressionStatement","src":"33584:93:10"},{"nodeType":"YulAssignment","src":"33686:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33697:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"33702:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33693:3:10"},"nodeType":"YulFunctionCall","src":"33693:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"33686:3:10"}]}]},"name":"abi_encode_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"33479:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"33487:3:10","type":""}],"src":"33345:366:10"},{"body":{"nodeType":"YulBlock","src":"33888:248:10","statements":[{"nodeType":"YulAssignment","src":"33898:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33910:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"33921:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33906:3:10"},"nodeType":"YulFunctionCall","src":"33906:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33898:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33945:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"33956:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33941:3:10"},"nodeType":"YulFunctionCall","src":"33941:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"33964:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"33970:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33960:3:10"},"nodeType":"YulFunctionCall","src":"33960:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33934:6:10"},"nodeType":"YulFunctionCall","src":"33934:47:10"},"nodeType":"YulExpressionStatement","src":"33934:47:10"},{"nodeType":"YulAssignment","src":"33990:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"34124:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"33998:124:10"},"nodeType":"YulFunctionCall","src":"33998:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33990:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33868:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33883:4:10","type":""}],"src":"33717:419:10"},{"body":{"nodeType":"YulBlock","src":"34248:60:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"34270:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"34278:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34266:3:10"},"nodeType":"YulFunctionCall","src":"34266:14:10"},{"hexValue":"5468726f775a65726f41646472657373","kind":"string","nodeType":"YulLiteral","src":"34282:18:10","type":"","value":"ThrowZeroAddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34259:6:10"},"nodeType":"YulFunctionCall","src":"34259:42:10"},"nodeType":"YulExpressionStatement","src":"34259:42:10"}]},"name":"store_literal_in_memory_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"34240:6:10","type":""}],"src":"34142:166:10"},{"body":{"nodeType":"YulBlock","src":"34460:220:10","statements":[{"nodeType":"YulAssignment","src":"34470:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34536:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"34541:2:10","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"34477:58:10"},"nodeType":"YulFunctionCall","src":"34477:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"34470:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34642:3:10"}],"functionName":{"name":"store_literal_in_memory_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7","nodeType":"YulIdentifier","src":"34553:88:10"},"nodeType":"YulFunctionCall","src":"34553:93:10"},"nodeType":"YulExpressionStatement","src":"34553:93:10"},{"nodeType":"YulAssignment","src":"34655:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34666:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"34671:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34662:3:10"},"nodeType":"YulFunctionCall","src":"34662:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"34655:3:10"}]}]},"name":"abi_encode_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"34448:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"34456:3:10","type":""}],"src":"34314:366:10"},{"body":{"nodeType":"YulBlock","src":"34857:248:10","statements":[{"nodeType":"YulAssignment","src":"34867:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34879:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"34890:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34875:3:10"},"nodeType":"YulFunctionCall","src":"34875:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34867:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34914:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"34925:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34910:3:10"},"nodeType":"YulFunctionCall","src":"34910:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"34933:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"34939:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"34929:3:10"},"nodeType":"YulFunctionCall","src":"34929:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34903:6:10"},"nodeType":"YulFunctionCall","src":"34903:47:10"},"nodeType":"YulExpressionStatement","src":"34903:47:10"},{"nodeType":"YulAssignment","src":"34959:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"35093:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"34967:124:10"},"nodeType":"YulFunctionCall","src":"34967:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34959:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34837:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34852:4:10","type":""}],"src":"34686:419:10"},{"body":{"nodeType":"YulBlock","src":"35217:69:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"35239:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"35247:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35235:3:10"},"nodeType":"YulFunctionCall","src":"35235:14:10"},{"hexValue":"496e76616c696453656e646572466565526563697069656e74","kind":"string","nodeType":"YulLiteral","src":"35251:27:10","type":"","value":"InvalidSenderFeeRecipient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35228:6:10"},"nodeType":"YulFunctionCall","src":"35228:51:10"},"nodeType":"YulExpressionStatement","src":"35228:51:10"}]},"name":"store_literal_in_memory_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"35209:6:10","type":""}],"src":"35111:175:10"},{"body":{"nodeType":"YulBlock","src":"35438:220:10","statements":[{"nodeType":"YulAssignment","src":"35448:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35514:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"35519:2:10","type":"","value":"25"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"35455:58:10"},"nodeType":"YulFunctionCall","src":"35455:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"35448:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35620:3:10"}],"functionName":{"name":"store_literal_in_memory_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8","nodeType":"YulIdentifier","src":"35531:88:10"},"nodeType":"YulFunctionCall","src":"35531:93:10"},"nodeType":"YulExpressionStatement","src":"35531:93:10"},{"nodeType":"YulAssignment","src":"35633:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35644:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"35649:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35640:3:10"},"nodeType":"YulFunctionCall","src":"35640:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"35633:3:10"}]}]},"name":"abi_encode_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"35426:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"35434:3:10","type":""}],"src":"35292:366:10"},{"body":{"nodeType":"YulBlock","src":"35835:248:10","statements":[{"nodeType":"YulAssignment","src":"35845:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35857:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"35868:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35853:3:10"},"nodeType":"YulFunctionCall","src":"35853:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35845:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35892:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"35903:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35888:3:10"},"nodeType":"YulFunctionCall","src":"35888:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"35911:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"35917:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"35907:3:10"},"nodeType":"YulFunctionCall","src":"35907:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35881:6:10"},"nodeType":"YulFunctionCall","src":"35881:47:10"},"nodeType":"YulExpressionStatement","src":"35881:47:10"},{"nodeType":"YulAssignment","src":"35937:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"36071:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"35945:124:10"},"nodeType":"YulFunctionCall","src":"35945:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35937:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35815:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35830:4:10","type":""}],"src":"35664:419:10"},{"body":{"nodeType":"YulBlock","src":"36195:124:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36217:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"36225:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36213:3:10"},"nodeType":"YulFunctionCall","src":"36213:14:10"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"36229:34:10","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36206:6:10"},"nodeType":"YulFunctionCall","src":"36206:58:10"},"nodeType":"YulExpressionStatement","src":"36206:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36285:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"36293:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36281:3:10"},"nodeType":"YulFunctionCall","src":"36281:15:10"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"36298:13:10","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36274:6:10"},"nodeType":"YulFunctionCall","src":"36274:38:10"},"nodeType":"YulExpressionStatement","src":"36274:38:10"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"36187:6:10","type":""}],"src":"36089:230:10"},{"body":{"nodeType":"YulBlock","src":"36471:220:10","statements":[{"nodeType":"YulAssignment","src":"36481:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36547:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"36552:2:10","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"36488:58:10"},"nodeType":"YulFunctionCall","src":"36488:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"36481:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36653:3:10"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nodeType":"YulIdentifier","src":"36564:88:10"},"nodeType":"YulFunctionCall","src":"36564:93:10"},"nodeType":"YulExpressionStatement","src":"36564:93:10"},{"nodeType":"YulAssignment","src":"36666:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36677:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"36682:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36673:3:10"},"nodeType":"YulFunctionCall","src":"36673:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"36666:3:10"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"36459:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"36467:3:10","type":""}],"src":"36325:366:10"},{"body":{"nodeType":"YulBlock","src":"36868:248:10","statements":[{"nodeType":"YulAssignment","src":"36878:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36890:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"36901:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36886:3:10"},"nodeType":"YulFunctionCall","src":"36886:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36878:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36925:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"36936:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36921:3:10"},"nodeType":"YulFunctionCall","src":"36921:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"36944:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"36950:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"36940:3:10"},"nodeType":"YulFunctionCall","src":"36940:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36914:6:10"},"nodeType":"YulFunctionCall","src":"36914:47:10"},"nodeType":"YulExpressionStatement","src":"36914:47:10"},{"nodeType":"YulAssignment","src":"36970:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"37104:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"36978:124:10"},"nodeType":"YulFunctionCall","src":"36978:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36970:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36848:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36863:4:10","type":""}],"src":"36697:419:10"},{"body":{"nodeType":"YulBlock","src":"37228:64:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"37250:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"37258:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37246:3:10"},"nodeType":"YulFunctionCall","src":"37246:14:10"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"37262:22:10","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37239:6:10"},"nodeType":"YulFunctionCall","src":"37239:46:10"},"nodeType":"YulExpressionStatement","src":"37239:46:10"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"37220:6:10","type":""}],"src":"37122:170:10"},{"body":{"nodeType":"YulBlock","src":"37444:220:10","statements":[{"nodeType":"YulAssignment","src":"37454:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37520:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"37525:2:10","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"37461:58:10"},"nodeType":"YulFunctionCall","src":"37461:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"37454:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37626:3:10"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nodeType":"YulIdentifier","src":"37537:88:10"},"nodeType":"YulFunctionCall","src":"37537:93:10"},"nodeType":"YulExpressionStatement","src":"37537:93:10"},{"nodeType":"YulAssignment","src":"37639:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37650:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"37655:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37646:3:10"},"nodeType":"YulFunctionCall","src":"37646:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"37639:3:10"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"37432:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"37440:3:10","type":""}],"src":"37298:366:10"},{"body":{"nodeType":"YulBlock","src":"37841:248:10","statements":[{"nodeType":"YulAssignment","src":"37851:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37863:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"37874:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37859:3:10"},"nodeType":"YulFunctionCall","src":"37859:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37851:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37898:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"37909:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37894:3:10"},"nodeType":"YulFunctionCall","src":"37894:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"37917:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"37923:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37913:3:10"},"nodeType":"YulFunctionCall","src":"37913:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37887:6:10"},"nodeType":"YulFunctionCall","src":"37887:47:10"},"nodeType":"YulExpressionStatement","src":"37887:47:10"},{"nodeType":"YulAssignment","src":"37943:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"38077:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"37951:124:10"},"nodeType":"YulFunctionCall","src":"37951:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37943:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37821:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37836:4:10","type":""}],"src":"37670:419:10"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function cleanup_t_uint96(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff)\n }\n\n function abi_encode_t_uint96_to_t_uint96(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n // struct IGateway.Order -> struct IGateway.Order\n function abi_encode_t_struct$_Order_$1822_memory_ptr_to_t_struct$_Order_$1822_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x0140)\n\n {\n // sender\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // token\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // senderFeeRecipient\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // senderFee\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x60))\n }\n\n {\n // protocolFee\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n }\n\n {\n // isFulfilled\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0xa0))\n }\n\n {\n // isRefunded\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0xc0))\n }\n\n {\n // refundAddress\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0xe0))\n }\n\n {\n // currentBPS\n\n let memberValue0 := mload(add(value, 0x0100))\n abi_encode_t_uint96_to_t_uint96(memberValue0, add(pos, 0x0100))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x0120))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x0120))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_Order_$1822_memory_ptr__to_t_struct$_Order_$1822_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 320)\n\n abi_encode_t_struct$_Order_$1822_memory_ptr_to_t_struct$_Order_$1822_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint96(value) {\n if iszero(eq(value, cleanup_t_uint96(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint96(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint96(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint96t_addresst_uint256t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint96(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 192))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value6, value7 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32t_addresst_uint64(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: zero address\")\n\n }\n\n function abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: treasury address alread\")\n\n mstore(add(memPtr, 32), \"y set\")\n\n }\n\n function abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: aggregator address alre\")\n\n mstore(add(memPtr, 32), \"ady set\")\n\n }\n\n function abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243(memPtr) {\n\n mstore(add(memPtr, 0), \"OnlyAggregator\")\n\n }\n\n function abi_encode_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n store_literal_in_memory_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_feafe41130685cc96aef13592e300ecc17e4f49a66bae4a40d65fbdcce6c7243_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5(memPtr) {\n\n mstore(add(memPtr, 0), \"OrderFulfilled\")\n\n }\n\n function abi_encode_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n store_literal_in_memory_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd(memPtr) {\n\n mstore(add(memPtr, 0), \"OrderRefunded\")\n\n }\n\n function abi_encode_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n store_literal_in_memory_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de(memPtr) {\n\n mstore(add(memPtr, 0), \"FeeExceedsProtocolFee\")\n\n }\n\n function abi_encode_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n mstore(add(memPtr, 32), \"new owner\")\n\n }\n\n function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4(memPtr) {\n\n mstore(add(memPtr, 0), \"InvalidMessageHash\")\n\n }\n\n function abi_encode_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cb943cef37628d805c376539a30fa265326b6f2ae5d9af4711b17e54dc8f15d4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint96_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint96(value)))\n }\n\n function abi_encode_t_uint96_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_uint96_to_t_uint256(value))\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint96_t_string_calldata_ptr__to_t_uint256_t_bytes32_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint96_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value3, value4, tail)\n\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: invalid status\")\n\n }\n\n function abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint96(x, y) -> diff {\n x := cleanup_t_uint96(x)\n y := cleanup_t_uint96(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function convert_t_uint64_to_t_uint96(value) -> converted {\n converted := cleanup_t_uint96(identity(cleanup_t_uint64(value)))\n }\n\n function abi_encode_t_uint64_to_t_uint96_fromStack(value, pos) {\n mstore(pos, convert_t_uint64_to_t_uint96(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint64__to_t_bytes32_t_uint96__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint64_to_t_uint96_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: paused\")\n\n }\n\n function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1(memPtr) {\n\n mstore(add(memPtr, 0), \"TokenNotSupported\")\n\n }\n\n function abi_encode_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2(memPtr) {\n\n mstore(add(memPtr, 0), \"AmountIsZero\")\n\n }\n\n function abi_encode_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n store_literal_in_memory_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7(memPtr) {\n\n mstore(add(memPtr, 0), \"ThrowZeroAddress\")\n\n }\n\n function abi_encode_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8(memPtr) {\n\n mstore(add(memPtr, 0), \"InvalidSenderFeeRecipient\")\n\n }\n\n function abi_encode_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n mstore(add(memPtr, 32), \"nitializing\")\n\n }\n\n function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n }\n\n function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":10,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612536565b610338565b005b61015b600480360381019061015691906125b6565b610600565b005b61016561066b565b60405161017291906125fe565b60405180910390f35b610183610682565b005b61019f600480360381019061019a919061264f565b610696565b6040516101ac91906125fe565b60405180910390f35b6101cf60048036038101906101ca919061268f565b610b0a565b6040516101dc91906125fe565b60405180910390f35b6101ff60048036038101906101fa91906126bc565b610b66565b60405161020c9190612809565b60405180910390f35b61021d610d7e565b005b610239600480360381019061023491906128b6565b610e0b565b6040516102469190612987565b60405180910390f35b610257611340565b005b610261611490565b005b61026b6114a2565b60405161027891906129b1565b60405180910390f35b6102896114cc565b6040516102979291906129ea565b60405180910390f35b6102ba60048036038101906102b59190612a13565b6114f1565b005b6102c4611676565b6040516102d191906129b1565b60405180910390f35b6102f460048036038101906102ef9190612a66565b6116a0565b60405161030191906125fe565b60405180910390f35b610324600480360381019061031f919061268f565b611d03565b005b61032e611db0565b610336611e2e565b565b610340611db0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b2a565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bbc565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c4e565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611db0565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c6e565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611db0565b6106946000611e91565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cd5565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d41565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dad565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e19565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e39565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612e8e565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109b99190612eea565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a669190612f1e565b6040518363ffffffff1660e01b8152600401610a83929190612e39565b6020604051808303816000875af1158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190612e8e565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610af79190612f52565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b5c5760019050610b61565b600090505b919050565b610b6e6123db565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610d88611ec2565b90508073ffffffffffffffffffffffffffffffffffffffff16610da9611676565b73ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612fdf565b60405180910390fd5b610e0881611e91565b50565b6000610e15611eca565b610e228989868989611f14565b60008383905003610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061304b565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610e929190612f1e565b6040518463ffffffff1660e01b8152600401610eb09392919061306b565b6020604051808303816000875af1158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190612e8e565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f45906130a2565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610f9d929190612e39565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a610fe691906130ea565b610ff0919061315b565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161132b959493929190613214565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113715750600160008054906101000a900460ff1660ff16105b8061139e5750611380306120c7565b15801561139d5750600160008054906101000a900460ff1660ff16145b5b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906132d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561141a576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061142c6120ea565b611434612143565b801561148d5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051611484919061333c565b60405180910390a15b50565b611498611db0565b6114a061219c565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b6114f9611db0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b2a565b60405180910390fd5b60018114806115775750600281145b6115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906133a3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116715780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116689190612f52565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612cd5565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612d41565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff16156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612dad565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661187c91906133c3565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ace57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611acd5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b81526004016119f8929190612e39565b6020604051808303816000875af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190612e8e565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611aff91906130ea565b611b09919061315b565b90508060ff60008881526020019081526020016000206007016000828254611b319190612eea565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b6991906130ea565b611b73919061315b565b90508082611b819190612eea565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611be0929190612e39565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190612e8e565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c5f929190612e39565b6020604051808303816000875af1158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190612e8e565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611cec929190613434565b60405180910390a360019350505050949350505050565b611d0b611db0565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d6b6114a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611db8611ec2565b73ffffffffffffffffffffffffffffffffffffffff16611dd66114a2565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906134a9565b60405180910390fd5b565b611e366121ff565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e7a611ec2565b604051611e8791906129b1565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ebf81612248565b50565b600033905090565b611ed261066b565b15611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990613515565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613581565b60405180910390fd5b60008403611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd0906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613659565b60405180910390fd5b600081146120c057600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6906136c5565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613757565b60405180910390fd5b61214161230e565b565b600060019054906101000a900460ff16612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613757565b60405180910390fd5b61219a61236f565b565b6121a4611eca565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121e8611ec2565b6040516121f591906129b1565b60405180910390a1565b61220761066b565b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906137c3565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235490613757565b60405180910390fd5b61236d612368611ec2565b611e91565b565b600060019054906101000a900460ff166123be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b590613757565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124b5816124a2565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000806040838503121561254d5761254c612498565b5b600061255b858286016124c3565b925050602061256c85828601612521565b9150509250929050565b600067ffffffffffffffff82169050919050565b61259381612576565b811461259e57600080fd5b50565b6000813590506125b08161258a565b92915050565b6000602082840312156125cc576125cb612498565b5b60006125da848285016125a1565b91505092915050565b60008115159050919050565b6125f8816125e3565b82525050565b600060208201905061261360008301846125ef565b92915050565b6000819050919050565b61262c81612619565b811461263757600080fd5b50565b60008135905061264981612623565b92915050565b6000806040838503121561266657612665612498565b5b60006126748582860161263a565b9250506020612685858286016124c3565b9150509250929050565b6000602082840312156126a5576126a4612498565b5b60006126b384828501612521565b91505092915050565b6000602082840312156126d2576126d1612498565b5b60006126e0848285016124c3565b91505092915050565b6126f2816124f8565b82525050565b61270181612619565b82525050565b612710816125e3565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61273781612716565b82525050565b6101408201600082015161275460008501826126e9565b50602082015161276760208501826126e9565b50604082015161277a60408501826126e9565b50606082015161278d60608501826126f8565b5060808201516127a060808501826126f8565b5060a08201516127b360a0850182612707565b5060c08201516127c660c0850182612707565b5060e08201516127d960e08501826126e9565b506101008201516127ee61010085018261272e565b506101208201516128036101208501826126f8565b50505050565b60006101408201905061281f600083018461273d565b92915050565b61282e81612716565b811461283957600080fd5b50565b60008135905061284b81612825565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261287657612875612851565b5b8235905067ffffffffffffffff81111561289357612892612856565b5b6020830191508360018202830111156128af576128ae61285b565b5b9250929050565b60008060008060008060008060e0898b0312156128d6576128d5612498565b5b60006128e48b828c01612521565b98505060206128f58b828c0161263a565b97505060406129068b828c0161283c565b96505060606129178b828c01612521565b95505060806129288b828c0161263a565b94505060a06129398b828c01612521565b93505060c089013567ffffffffffffffff81111561295a5761295961249d565b5b6129668b828c01612860565b92509250509295985092959890939650565b612981816124a2565b82525050565b600060208201905061299c6000830184612978565b92915050565b6129ab816124f8565b82525050565b60006020820190506129c660008301846129a2565b92915050565b6129d581612576565b82525050565b6129e481612619565b82525050565b60006040820190506129ff60008301856129cc565b612a0c60208301846129db565b9392505050565b600080600060608486031215612a2c57612a2b612498565b5b6000612a3a868287016124c3565b9350506020612a4b86828701612521565b9250506040612a5c8682870161263a565b9150509250925092565b60008060008060808587031215612a8057612a7f612498565b5b6000612a8e878288016124c3565b9450506020612a9f878288016124c3565b9350506040612ab087828801612521565b9250506060612ac1878288016125a1565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b14601583612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612ba6602583612acd565b9150612bb182612b4a565b604082019050919050565b60006020820190508181036000830152612bd581612b99565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c38602783612acd565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000602082019050612c8360008301846129cc565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612cbf600e83612acd565b9150612cca82612c89565b602082019050919050565b60006020820190508181036000830152612cee81612cb2565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d2b600e83612acd565b9150612d3682612cf5565b602082019050919050565b60006020820190508181036000830152612d5a81612d1e565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612d97600d83612acd565b9150612da282612d61565b602082019050919050565b60006020820190508181036000830152612dc681612d8a565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e03601583612acd565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b6000604082019050612e4e60008301856129a2565b612e5b60208301846129db565b9392505050565b612e6b816125e3565b8114612e7657600080fd5b50565b600081519050612e8881612e62565b92915050565b600060208284031215612ea457612ea3612498565b5b6000612eb284828501612e79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef582612619565b9150612f0083612619565b9250828203905081811115612f1857612f17612ebb565b5b92915050565b6000612f2982612619565b9150612f3483612619565b9250828201905080821115612f4c57612f4b612ebb565b5b92915050565b6000602082019050612f6760008301846129db565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fc9602983612acd565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613035601283612acd565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b600060608201905061308060008301866129a2565b61308d60208301856129a2565b61309a60408301846129db565b949350505050565b60006130ad82612619565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130df576130de612ebb565b5b600182019050919050565b60006130f582612619565b915061310083612619565b925082820261310e81612619565b9150828204841483151761312557613124612ebb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612619565b915061317183612619565b9250826131815761318061312c565b5b828204905092915050565b6000819050919050565b60006131b16131ac6131a784612716565b61318c565b612619565b9050919050565b6131c181613196565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006131f38385612acd565b93506132008385846131c7565b613209836131d6565b840190509392505050565b600060808201905061322960008301886129db565b6132366020830187612978565b61324360408301866131b8565b81810360608301526132568184866131e7565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132be602e83612acd565b91506132c982613262565b604082019050919050565b600060208201905081810360008301526132ed816132b1565b9050919050565b6000819050919050565b600060ff82169050919050565b600061332661332161331c846132f4565b61318c565b6132fe565b9050919050565b6133368161330b565b82525050565b6000602082019050613351600083018461332d565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b600061338d601783612acd565b915061339882613357565b602082019050919050565b600060208201905081810360008301526133bc81613380565b9050919050565b60006133ce82612716565b91506133d983612716565b925082820390506bffffffffffffffffffffffff8111156133fd576133fc612ebb565b5b92915050565b600061341e61341961341484612576565b61318c565b612716565b9050919050565b61342e81613403565b82525050565b60006040820190506134496000830185612978565b6134566020830184613425565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613493602083612acd565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134ff601083612acd565b915061350a826134c9565b602082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061356b601183612acd565b915061357682613535565b602082019050919050565b6000602082019050818103600083015261359a8161355e565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135d7600c83612acd565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613643601083612acd565b915061364e8261360d565b602082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136af601983612acd565b91506136ba82613679565b602082019050919050565b600060208201905081810360008301526136de816136a2565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613741602b83612acd565b915061374c826136e5565b604082019050919050565b6000602082019050818103600083015261377081613734565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ad601483612acd565b91506137b882613777565b602082019050919050565b600060208201905081810360008301526137dc816137a0565b905091905056fea26469706673582212207cd069c89fca81913b7fadc08d0724a8e7733532ed2dde3ec1ba0961a69ea46164736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x809804F7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xB810C636 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB810C636 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xCD992400 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xF22EE704 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x30A JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x809804F7 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x263 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x71EEDB88 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x75151B63 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x768C6EC0 EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x215 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x40EBC677 EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x47094E2E EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x15D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x2536 JUMP JUMPDEST PUSH2 0x338 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x25B6 JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x172 SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x682 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x19F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19A SWAP2 SWAP1 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x696 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x268F JUMP JUMPDEST PUSH2 0xB0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x26BC JUMP JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x2809 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0xD7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28B6 JUMP JUMPDEST PUSH2 0xE0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x2987 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH2 0x1340 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x261 PUSH2 0x1490 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH2 0x14A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x289 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP3 SWAP2 SWAP1 PUSH2 0x29EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x2A13 JUMP JUMPDEST PUSH2 0x14F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C4 PUSH2 0x1676 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EF SWAP2 SWAP1 PUSH2 0x2A66 JUMP JUMPDEST PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0x268F JUMP JUMPDEST PUSH2 0x1D03 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x32E PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x336 PUSH2 0x1E2E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x340 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A6 SWAP1 PUSH2 0x2B2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x7472656173757279000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x4B2 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x45F SWAP1 PUSH2 0x2BBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x98 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x5B0 JUMP JUMPDEST PUSH32 0x61676772656761746F7200000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x5AF JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x569 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x560 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x99 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x5FB JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xBBC5B96E57CFECB3DBEEADF92E87F15E58E64FCD75CBE256DCC5D9EF2E51E8A4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 PUSH2 0x1DB0 JUMP JUMPDEST DUP1 PUSH1 0x98 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x1CE29A697A4765BD17D91DF93BA75B250B629ECF030553FF1F6AB59F15AE6C7B DUP2 PUSH1 0x40 MLOAD PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x2C6E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x68A PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x694 PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x728 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71F SWAP1 PUSH2 0x2CD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x78C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x783 SWAP1 PUSH2 0x2D41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E7 SWAP1 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x2E19 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8DC SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP4 PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD PUSH2 0x9B9 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD DUP5 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x2F1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA83 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC6 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP3 PUSH32 0x736FE428E1747CA8D387C2E6FA1A31A0CDE62D3A167C40A46ADE59A3CDC828E DUP6 PUSH1 0x40 MLOAD PUSH2 0xAF7 SWAP2 SWAP1 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB PUSH2 0xB5C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0xB61 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E PUSH2 0x23DB JUMP JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD88 PUSH2 0x1EC2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xDA9 PUSH2 0x1676 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF6 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE08 DUP2 PUSH2 0x1E91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE15 PUSH2 0x1ECA JUMP JUMPDEST PUSH2 0xE22 DUP10 DUP10 DUP7 DUP10 DUP10 PUSH2 0x1F14 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SUB PUSH2 0xE68 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE5F SWAP1 PUSH2 0x304B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP9 DUP13 PUSH2 0xE92 SWAP2 SWAP1 PUSH2 0x2F1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEF3 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH2 0x100 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xF45 SWAP1 PUSH2 0x30A2 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH2 0x100 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF9D SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x97 SLOAD PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP11 PUSH2 0xFE6 SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0xFF0 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x97 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP PUSH1 0xFF PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE SWAP1 POP POP PUSH1 0xFF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x40CCD1CEB111A3C186EF9911E1B876DC1F789ED331B86097B3B8851055B6A137 DUP5 DUP7 DUP14 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x132B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x1371 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x139E JUMPI POP PUSH2 0x1380 ADDRESS PUSH2 0x20C7 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x139D JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x13DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13D4 SWAP1 PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH3 0x186A0 PUSH1 0x97 DUP2 SWAP1 SSTORE POP PUSH2 0x142C PUSH2 0x20EA JUMP JUMPDEST PUSH2 0x1434 PUSH2 0x2143 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x148D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1484 SWAP2 SWAP1 PUSH2 0x333C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1498 PUSH2 0x1DB0 JUMP JUMPDEST PUSH2 0x14A0 PUSH2 0x219C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x97 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x14F9 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x2B2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 EQ DUP1 PUSH2 0x1577 JUMPI POP PUSH1 0x2 DUP2 EQ JUMPDEST PUSH2 0x15B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15AD SWAP1 PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x746F6B656E000000000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x1671 JUMPI DUP1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xCFA976492AF7C14A916CC3A239F4C9C75BBD7F5F0E398BEB41D892C7EECCAE4C DUP4 PUSH1 0x40 MLOAD PUSH2 0x1668 SWAP2 SWAP1 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1732 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1729 SWAP1 PUSH2 0x2CD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x178D SWAP1 PUSH2 0x2D41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFF PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x17FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17F1 SWAP1 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x187C SWAP2 SWAP1 PUSH2 0x33C3 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1ACE JUMPI PUSH1 0x1 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD EQ PUSH2 0x1ACD JUMPI PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0xFF PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F8 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A17 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3B SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP PUSH1 0xFF PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0xFF PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x44F6938CA4A10313AABB76F874CCED61E35710A734A126E4AFB34461BF8C2501 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x97 SLOAD DUP5 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0xFF PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD SLOAD PUSH2 0x1AFF SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0x1B09 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1B31 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x97 SLOAD PUSH1 0x98 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1B69 SWAP2 SWAP1 PUSH2 0x30EA JUMP JUMPDEST PUSH2 0x1B73 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1B81 SWAP2 SWAP1 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C23 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP8 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C5F SWAP3 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CA2 SWAP2 SWAP1 PUSH2 0x2E8E JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH32 0x98ECE21E01A01CBE1D1C0DAD3B053C8FBD368F99BE78BE958FCF1D1D13FD249A DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1CEC SWAP3 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D0B PUSH2 0x1DB0 JUMP JUMPDEST DUP1 PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D6B PUSH2 0x14A2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x1DB8 PUSH2 0x1EC2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1DD6 PUSH2 0x14A2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E23 SWAP1 PUSH2 0x34A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1E36 PUSH2 0x21FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0x1E7A PUSH2 0x1EC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E87 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x1EBF DUP2 PUSH2 0x2248 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1ED2 PUSH2 0x66B JUMP JUMPDEST ISZERO PUSH2 0x1F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F09 SWAP1 PUSH2 0x3515 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x9A PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ PUSH2 0x1F96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F8D SWAP1 PUSH2 0x3581 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 SUB PUSH2 0x1FD9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FD0 SWAP1 PUSH2 0x35ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2048 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x203F SWAP1 PUSH2 0x3659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 EQ PUSH2 0x20C0 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x20BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B6 SWAP1 PUSH2 0x36C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2139 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2130 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2141 PUSH2 0x230E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2192 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2189 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x219A PUSH2 0x236F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x21A4 PUSH2 0x1ECA JUMP JUMPDEST PUSH1 0x1 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x21E8 PUSH2 0x1EC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F5 SWAP2 SWAP1 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2207 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x2246 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x223D SWAP1 PUSH2 0x37C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x33 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2354 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x236D PUSH2 0x2368 PUSH2 0x1EC2 JUMP JUMPDEST PUSH2 0x1E91 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23BE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23B5 SWAP1 PUSH2 0x3757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x24B5 DUP2 PUSH2 0x24A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x24C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24D2 DUP2 PUSH2 0x24AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2503 DUP3 PUSH2 0x24D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2513 DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP2 EQ PUSH2 0x251E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2530 DUP2 PUSH2 0x250A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x254D JUMPI PUSH2 0x254C PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x255B DUP6 DUP3 DUP7 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x256C DUP6 DUP3 DUP7 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2593 DUP2 PUSH2 0x2576 JUMP JUMPDEST DUP2 EQ PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25B0 DUP2 PUSH2 0x258A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25CC JUMPI PUSH2 0x25CB PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25DA DUP5 DUP3 DUP6 ADD PUSH2 0x25A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25F8 DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2613 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x262C DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP2 EQ PUSH2 0x2637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2649 DUP2 PUSH2 0x2623 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2674 DUP6 DUP3 DUP7 ADD PUSH2 0x263A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2685 DUP6 DUP3 DUP7 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI PUSH2 0x26A4 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26B3 DUP5 DUP3 DUP6 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D2 JUMPI PUSH2 0x26D1 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26E0 DUP5 DUP3 DUP6 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26F2 DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2701 DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2710 DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2737 DUP2 PUSH2 0x2716 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x140 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x2754 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x2767 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x277A PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x278D PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x27A0 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH2 0x27B3 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2707 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH2 0x27C6 PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x2707 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH2 0x27D9 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x26E9 JUMP JUMPDEST POP PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x27EE PUSH2 0x100 DUP6 ADD DUP3 PUSH2 0x272E JUMP JUMPDEST POP PUSH2 0x120 DUP3 ADD MLOAD PUSH2 0x2803 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0x26F8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x273D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x282E DUP2 PUSH2 0x2716 JUMP JUMPDEST DUP2 EQ PUSH2 0x2839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x284B DUP2 PUSH2 0x2825 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2876 JUMPI PUSH2 0x2875 PUSH2 0x2851 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2893 JUMPI PUSH2 0x2892 PUSH2 0x2856 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x28AF JUMPI PUSH2 0x28AE PUSH2 0x285B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x28D6 JUMPI PUSH2 0x28D5 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28E4 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x28F5 DUP12 DUP3 DUP13 ADD PUSH2 0x263A JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x2906 DUP12 DUP3 DUP13 ADD PUSH2 0x283C JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x2917 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH2 0x2928 DUP12 DUP3 DUP13 ADD PUSH2 0x263A JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x2939 DUP12 DUP3 DUP13 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x295A JUMPI PUSH2 0x2959 PUSH2 0x249D JUMP JUMPDEST JUMPDEST PUSH2 0x2966 DUP12 DUP3 DUP13 ADD PUSH2 0x2860 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x2981 DUP2 PUSH2 0x24A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x299C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2978 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29AB DUP2 PUSH2 0x24F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29C6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29D5 DUP2 PUSH2 0x2576 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x29E4 DUP2 PUSH2 0x2619 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x29FF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29CC JUMP JUMPDEST PUSH2 0x2A0C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A2C JUMPI PUSH2 0x2A2B PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A3A DUP7 DUP3 DUP8 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A4B DUP7 DUP3 DUP8 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A5C DUP7 DUP3 DUP8 ADD PUSH2 0x263A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP8 DUP3 DUP9 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP8 DUP3 DUP9 ADD PUSH2 0x24C3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP8 DUP3 DUP9 ADD PUSH2 0x2521 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2AC1 DUP8 DUP3 DUP9 ADD PUSH2 0x25A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A207A65726F20616464726573730000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B14 PUSH1 0x15 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1F DUP3 PUSH2 0x2ADE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2B43 DUP2 PUSH2 0x2B07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A207472656173757279206164647265737320616C72656164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7920736574000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BA6 PUSH1 0x25 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2BB1 DUP3 PUSH2 0x2B4A JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2BD5 DUP2 PUSH2 0x2B99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A2061676772656761746F72206164647265737320616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C38 PUSH1 0x27 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2C43 DUP3 PUSH2 0x2BDC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C67 DUP2 PUSH2 0x2C2B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C83 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C7941676772656761746F72000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CBF PUSH1 0xE DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2CCA DUP3 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CEE DUP2 PUSH2 0x2CB2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F7264657246756C66696C6C6564000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D2B PUSH1 0xE DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2D36 DUP3 PUSH2 0x2CF5 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2D5A DUP2 PUSH2 0x2D1E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F72646572526566756E64656400000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D97 PUSH1 0xD DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2DA2 DUP3 PUSH2 0x2D61 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2DC6 DUP2 PUSH2 0x2D8A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4665654578636565647350726F746F636F6C4665650000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E03 PUSH1 0x15 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2E0E DUP3 PUSH2 0x2DCD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2E32 DUP2 PUSH2 0x2DF6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E4E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x2E5B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2E6B DUP2 PUSH2 0x25E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2E88 DUP2 PUSH2 0x2E62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA4 JUMPI PUSH2 0x2EA3 PUSH2 0x2498 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2E79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF5 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F00 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2F18 JUMPI PUSH2 0x2F17 PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F29 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F34 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F4C JUMPI PUSH2 0x2F4B PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F67 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC9 PUSH1 0x29 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD4 DUP3 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FF8 DUP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69644D657373616765486173680000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3035 PUSH1 0x12 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3040 DUP3 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3064 DUP2 PUSH2 0x3028 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3080 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x308D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29A2 JUMP JUMPDEST PUSH2 0x309A PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x29DB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AD DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30DF JUMPI PUSH2 0x30DE PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30F5 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x3100 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x310E DUP2 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3125 JUMPI PUSH2 0x3124 PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3166 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP2 POP PUSH2 0x3171 DUP4 PUSH2 0x2619 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3181 JUMPI PUSH2 0x3180 PUSH2 0x312C JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31B1 PUSH2 0x31AC PUSH2 0x31A7 DUP5 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31C1 DUP2 PUSH2 0x3196 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31F3 DUP4 DUP6 PUSH2 0x2ACD JUMP JUMPDEST SWAP4 POP PUSH2 0x3200 DUP4 DUP6 DUP5 PUSH2 0x31C7 JUMP JUMPDEST PUSH2 0x3209 DUP4 PUSH2 0x31D6 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3229 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x3236 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2978 JUMP JUMPDEST PUSH2 0x3243 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x31B8 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3256 DUP2 DUP5 DUP7 PUSH2 0x31E7 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32BE PUSH1 0x2E DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x32C9 DUP3 PUSH2 0x3262 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x32ED DUP2 PUSH2 0x32B1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3326 PUSH2 0x3321 PUSH2 0x331C DUP5 PUSH2 0x32F4 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x32FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3336 DUP2 PUSH2 0x330B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3351 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x332D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A20696E76616C696420737461747573000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338D PUSH1 0x17 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3398 DUP3 PUSH2 0x3357 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x33BC DUP2 PUSH2 0x3380 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33CE DUP3 PUSH2 0x2716 JUMP JUMPDEST SWAP2 POP PUSH2 0x33D9 DUP4 PUSH2 0x2716 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x33FD JUMPI PUSH2 0x33FC PUSH2 0x2EBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x341E PUSH2 0x3419 PUSH2 0x3414 DUP5 PUSH2 0x2576 JUMP JUMPDEST PUSH2 0x318C JUMP JUMPDEST PUSH2 0x2716 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x342E DUP2 PUSH2 0x3403 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2978 JUMP JUMPDEST PUSH2 0x3456 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3425 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3493 PUSH1 0x20 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x349E DUP3 PUSH2 0x345D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34C2 DUP2 PUSH2 0x3486 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34FF PUSH1 0x10 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x350A DUP3 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x352E DUP2 PUSH2 0x34F2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x546F6B656E4E6F74537570706F72746564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356B PUSH1 0x11 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x3576 DUP3 PUSH2 0x3535 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359A DUP2 PUSH2 0x355E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416D6F756E7449735A65726F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35D7 PUSH1 0xC DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x35E2 DUP3 PUSH2 0x35A1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3606 DUP2 PUSH2 0x35CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5468726F775A65726F4164647265737300000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3643 PUSH1 0x10 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x364E DUP3 PUSH2 0x360D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3672 DUP2 PUSH2 0x3636 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696453656E646572466565526563697069656E7400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36AF PUSH1 0x19 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x36BA DUP3 PUSH2 0x3679 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 PUSH2 0x36A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3741 PUSH1 0x2B DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x374C DUP3 PUSH2 0x36E5 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3770 DUP2 PUSH2 0x3734 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37AD PUSH1 0x14 DUP4 PUSH2 0x2ACD JUMP JUMPDEST SWAP2 POP PUSH2 0x37B8 DUP3 PUSH2 0x3777 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x37DC DUP2 PUSH2 0x37A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xD069C89FCA81913B7FADC08D0724A8E7733532ED2DDE3EC1BA0961A69E LOG4 PUSH2 0x6473 PUSH16 0x6C634300081200330000000000000000 ","sourceMap":"390:6884:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:1;;;:::i;:::-;;5690:896:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6975:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6819:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:0;;;:::i;:::-;;1709:1331:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7163:109:7;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:1554:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:7;1355:13:1;:11;:13::i;:::-;1463:10:7::1;:8;:10::i;:::-;1421:56::o:0;2293:551:8:-;1355:13:1;:11;:13::i;:::-;2401:1:8::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:1;:11;:13::i;:::-;1993:19:8::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:3:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:1:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5690:896:7:-;5771:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:5:::1;:15;5847:8;5841:15;;;;;;;;;;;:27;;;;;;;;;;;;5840:28;5832:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:5;:15;5906:8;5900:15;;;;;;;;;;;:26;;;;;;;;;;;;5899:27;5891:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5987:4;5956:5;:15;5962:8;5956:15;;;;;;;;;;;:27;;;:35;;5948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:5;:15;6076:8;6070:15;;;;;;;;;;;:21;;;;;;;;;;;;6063:38;;;6102:15;;;;;;;;;;;6119:4;6063:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6182:4;6153:5;:15;6159:8;6153:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6219:1;6190:5;:15;6196:8;6190:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6259:20;6307:4;6282:5;:15;6288:8;6282:15;;;;;;;;;;;:22;;;:29;;;;:::i;:::-;6259:52;;6388:5;:15;6394:8;6388:15;;;;;;;;;;;:21;;;;;;;;;;;;6381:38;;;6424:5;:15;6430:8;6424:15;;;;;;;;;;;:29;;;;;;;;;;;;6473:5;:15;6479:8;6473:15;;;;;;;;;;;:25;;;6458:12;:40;;;;:::i;:::-;6381:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6557:8;6537:29;6551:4;6537:29;;;;;;:::i;:::-;;;;;;;;6578:4;6571:11;;;5690:896:::0;;;;:::o;6975:142::-;7040:4;7083:1;7054:17;:25;7072:6;7054:25;;;;;;;;;;;;;;;;:30;7050:47;;7093:4;7086:11;;;;7050:47;7108:5;7101:12;;6975:142;;;;:::o;6819:107::-;6882:12;;:::i;:::-;6907:5;:15;6913:8;6907:15;;;;;;;;;;;6900:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6819:107;;;:::o;2031:212:0:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1331:7:-;1928:15;1503:19:3;:17;:19::i;:::-;1979:74:7::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2551:7;;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:40;;;;:::i;:::-;2495:63;;2579:283;;;;;;;;2598:10;2579:283;;;;;;2620:6;2579:283;;;;;;2651:19;2579:283;;;;;;2686:10;2579:283;;;;2714:12;2579:283;;;;2744:5;2579:283;;;;;;2766:5;2579:283;;;;;;2791:14;2579:283;;;;;;2829:7;;2579:283;;;;;;;;2850:7;2579:283;;::::0;2562:5:::1;:14;2568:7;2562:14;;;;;;;;;;;:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;:14;2962:7;2956:14;;;;;;;;;;;:21;;;2945:6;2902:134;;2919:5;:14;2925:7;2919:14;;;;;;;;;;;:21;;;;;;;;;;;;2902:134;;;2982:12;2999:7;3011:5;3021:11;;2902:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1095;1709:1331:::0;;;;;;;;;;:::o;795:114::-;3279:19:2;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:7::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:2::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:7:o;1325:52::-;1355:13:1;:11;:13::i;:::-;1365:8:7::1;:6;:8::i;:::-;1325:52::o:0;1462:85:1:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7163:109:7:-;7211:6;7219:7;7240:18;;;;;;;;;;;7260:7;;7232:36;;;;7163:109;;:::o;1426:335:8:-;1355:13:1;:11;:13::i;:::-;1547:1:8::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:0:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4097:1554:7:-;4249:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:5:::1;:15;4325:8;4319:15;;;;;;;;;;;:27;;;;;;;;;;;;4318:28;4310:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:5;:15;4384:8;4378:15;;;;;;;;;;;:26;;;;;;;;;;;;4377:27;4369:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:13;4475:5;:15;4481:8;4475:15;;;;;;;;;;;:21;;;;;;;;;;;;4459:37;;4593:14;4563:44;;:5;:15;4569:8;4563:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4646:1;4616:5;:15;4622:8;4616:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4612:453:::1;;4729:4;4699:5;:15;4705:8;4699:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4772:1;4743:5;:15;4749:8;4743:15;;;;;;;;;;;:25;;;:30;4739:321;;4815:5;:15;4821:8;4815:15;;;;;;;;;;;:21;;;;;;;;;;;;4808:38;;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:34;;;;;;;;;;;;4894:5;:15;4900:8;4894:15;;;;;;;;;;;:25;;;4808:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5023:5;:15;5029:8;5023:15;;;;;;;;;;;:25;;;4982:5;:15;4988:8;4982:15;;;;;;;;;;;:34;;;;;;;;;;;;4955:99;;;;;;;;;;;;4739:321;4612:453;5105:31;5183:7;;5165:14;5140:39;;:5;:15;5146:8;5140:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5139:51;;;;:::i;:::-;5105:85;;5220:23;5194:5;:15;5200:8;5194:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5248:19;5319:7;;5297:18;;;;;;;;;;;5271:44;;:23;:44;;;;:::i;:::-;5270:56;;;;:::i;:::-;5248:78;;5357:11;5330:38;;;;;:::i;:::-;;;5407:5;5400:22;;;5423:15;;;;;;;;;;;5440:11;5400:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5464:5;5457:22;;;5480:18;5500:23;5457:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5596:18;5558:73;;5586:8;5558:73;5571:13;5616:14;5558:73;;;;;;;:::i;:::-;;;;;;;;5643:4;5636:11;;;;;4097:1554:::0;;;;;;:::o;1436:178:0:-;1355:13:1;:11;:13::i;:::-;1541:8:0::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:1:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:3:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:0:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:5:-;939:7;965:10;958:17;;886:96;:::o;2031:106:3:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3433:427:7:-;3625:1;3596:17;:25;3614:6;3596:25;;;;;;;;;;;;;;;;:30;3588:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:1;3660:7;:12;3652:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:1;3701:28;;:14;:28;;;3693:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3773:1;3759:10;:15;3755:102;;3820:1;3789:33;;:19;:33;;;3781:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3755:102;3433:427;;;;;:::o;1423:320:4:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:0:-;5374:13:2;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:0::1;:24;:26::i;:::-;889:100::o:0;1084:97:3:-;5374:13:2;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:3::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:1:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:2;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:1::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:3:-;5374:13:2;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:3::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:101::-;1713:7;1753:18;1746:5;1742:30;1731:41;;1677:101;;;:::o;1784:120::-;1856:23;1873:5;1856:23;:::i;:::-;1849:5;1846:34;1836:62;;1894:1;1891;1884:12;1836:62;1784:120;:::o;1910:137::-;1955:5;1993:6;1980:20;1971:29;;2009:32;2035:5;2009:32;:::i;:::-;1910:137;;;;:::o;2053:327::-;2111:6;2160:2;2148:9;2139:7;2135:23;2131:32;2128:119;;;2166:79;;:::i;:::-;2128:119;2286:1;2311:52;2355:7;2346:6;2335:9;2331:22;2311:52;:::i;:::-;2301:62;;2257:116;2053:327;;;;:::o;2386:90::-;2420:7;2463:5;2456:13;2449:21;2438:32;;2386:90;;;:::o;2482:109::-;2563:21;2578:5;2563:21;:::i;:::-;2558:3;2551:34;2482:109;;:::o;2597:210::-;2684:4;2722:2;2711:9;2707:18;2699:26;;2735:65;2797:1;2786:9;2782:17;2773:6;2735:65;:::i;:::-;2597:210;;;;:::o;2813:77::-;2850:7;2879:5;2868:16;;2813:77;;;:::o;2896:122::-;2969:24;2987:5;2969:24;:::i;:::-;2962:5;2959:35;2949:63;;3008:1;3005;2998:12;2949:63;2896:122;:::o;3024:139::-;3070:5;3108:6;3095:20;3086:29;;3124:33;3151:5;3124:33;:::i;:::-;3024:139;;;;:::o;3169:474::-;3237:6;3245;3294:2;3282:9;3273:7;3269:23;3265:32;3262:119;;;3300:79;;:::i;:::-;3262:119;3420:1;3445:53;3490:7;3481:6;3470:9;3466:22;3445:53;:::i;:::-;3435:63;;3391:117;3547:2;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3518:118;3169:474;;;;;:::o;3649:329::-;3708:6;3757:2;3745:9;3736:7;3732:23;3728:32;3725:119;;;3763:79;;:::i;:::-;3725:119;3883:1;3908:53;3953:7;3944:6;3933:9;3929:22;3908:53;:::i;:::-;3898:63;;3854:117;3649:329;;;;:::o;3984:::-;4043:6;4092:2;4080:9;4071:7;4067:23;4063:32;4060:119;;;4098:79;;:::i;:::-;4060:119;4218:1;4243:53;4288:7;4279:6;4268:9;4264:22;4243:53;:::i;:::-;4233:63;;4189:117;3984:329;;;;:::o;4319:108::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4319:108;;:::o;4433:::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4433:108;;:::o;4547:99::-;4618:21;4633:5;4618:21;:::i;:::-;4613:3;4606:34;4547:99;;:::o;4652:109::-;4688:7;4728:26;4721:5;4717:38;4706:49;;4652:109;;;:::o;4767:105::-;4842:23;4859:5;4842:23;:::i;:::-;4837:3;4830:36;4767:105;;:::o;4932:1950::-;5075:6;5070:3;5066:16;5166:4;5159:5;5155:16;5149:23;5185:63;5242:4;5237:3;5233:14;5219:12;5185:63;:::i;:::-;5092:166;5341:4;5334:5;5330:16;5324:23;5360:63;5417:4;5412:3;5408:14;5394:12;5360:63;:::i;:::-;5268:165;5529:4;5522:5;5518:16;5512:23;5548:63;5605:4;5600:3;5596:14;5582:12;5548:63;:::i;:::-;5443:178;5708:4;5701:5;5697:16;5691:23;5727:63;5784:4;5779:3;5775:14;5761:12;5727:63;:::i;:::-;5631:169;5889:4;5882:5;5878:16;5872:23;5908:63;5965:4;5960:3;5956:14;5942:12;5908:63;:::i;:::-;5810:171;6070:4;6063:5;6059:16;6053:23;6089:57;6140:4;6135:3;6131:14;6117:12;6089:57;:::i;:::-;5991:165;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6166:164;6421:4;6414:5;6410:16;6404:23;6440:63;6497:4;6492:3;6488:14;6474:12;6440:63;:::i;:::-;6340:173;6601:6;6594:5;6590:18;6584:25;6622:63;6677:6;6672:3;6668:16;6654:12;6622:63;:::i;:::-;6523:172;6779:6;6772:5;6768:18;6762:25;6800:65;6857:6;6852:3;6848:16;6834:12;6800:65;:::i;:::-;6705:170;5044:1838;4932:1950;;:::o;6888:315::-;7027:4;7065:3;7054:9;7050:19;7042:27;;7079:117;7193:1;7182:9;7178:17;7169:6;7079:117;:::i;:::-;6888:315;;;;:::o;7209:120::-;7281:23;7298:5;7281:23;:::i;:::-;7274:5;7271:34;7261:62;;7319:1;7316;7309:12;7261:62;7209:120;:::o;7335:137::-;7380:5;7418:6;7405:20;7396:29;;7434:32;7460:5;7434:32;:::i;:::-;7335:137;;;;:::o;7478:117::-;7587:1;7584;7577:12;7601:117;7710:1;7707;7700:12;7724:117;7833:1;7830;7823:12;7861:553;7919:8;7929:6;7979:3;7972:4;7964:6;7960:17;7956:27;7946:122;;7987:79;;:::i;:::-;7946:122;8100:6;8087:20;8077:30;;8130:18;8122:6;8119:30;8116:117;;;8152:79;;:::i;:::-;8116:117;8266:4;8258:6;8254:17;8242:29;;8320:3;8312:4;8304:6;8300:17;8290:8;8286:32;8283:41;8280:128;;;8327:79;;:::i;:::-;8280:128;7861:553;;;;;:::o;8420:1401::-;8544:6;8552;8560;8568;8576;8584;8592;8600;8649:3;8637:9;8628:7;8624:23;8620:33;8617:120;;;8656:79;;:::i;:::-;8617:120;8776:1;8801:53;8846:7;8837:6;8826:9;8822:22;8801:53;:::i;:::-;8791:63;;8747:117;8903:2;8929:53;8974:7;8965:6;8954:9;8950:22;8929:53;:::i;:::-;8919:63;;8874:118;9031:2;9057:52;9101:7;9092:6;9081:9;9077:22;9057:52;:::i;:::-;9047:62;;9002:117;9158:2;9184:53;9229:7;9220:6;9209:9;9205:22;9184:53;:::i;:::-;9174:63;;9129:118;9286:3;9313:53;9358:7;9349:6;9338:9;9334:22;9313:53;:::i;:::-;9303:63;;9257:119;9415:3;9442:53;9487:7;9478:6;9467:9;9463:22;9442:53;:::i;:::-;9432:63;;9386:119;9572:3;9561:9;9557:19;9544:33;9604:18;9596:6;9593:30;9590:117;;;9626:79;;:::i;:::-;9590:117;9739:65;9796:7;9787:6;9776:9;9772:22;9739:65;:::i;:::-;9721:83;;;;9515:299;8420:1401;;;;;;;;;;;:::o;9827:118::-;9914:24;9932:5;9914:24;:::i;:::-;9909:3;9902:37;9827:118;;:::o;9951:222::-;10044:4;10082:2;10071:9;10067:18;10059:26;;10095:71;10163:1;10152:9;10148:17;10139:6;10095:71;:::i;:::-;9951:222;;;;:::o;10179:118::-;10266:24;10284:5;10266:24;:::i;:::-;10261:3;10254:37;10179:118;;:::o;10303:222::-;10396:4;10434:2;10423:9;10419:18;10411:26;;10447:71;10515:1;10504:9;10500:17;10491:6;10447:71;:::i;:::-;10303:222;;;;:::o;10531:115::-;10616:23;10633:5;10616:23;:::i;:::-;10611:3;10604:36;10531:115;;:::o;10652:118::-;10739:24;10757:5;10739:24;:::i;:::-;10734:3;10727:37;10652:118;;:::o;10776:328::-;10895:4;10933:2;10922:9;10918:18;10910:26;;10946:69;11012:1;11001:9;10997:17;10988:6;10946:69;:::i;:::-;11025:72;11093:2;11082:9;11078:18;11069:6;11025:72;:::i;:::-;10776:328;;;;;:::o;11110:619::-;11187:6;11195;11203;11252:2;11240:9;11231:7;11227:23;11223:32;11220:119;;;11258:79;;:::i;:::-;11220:119;11378:1;11403:53;11448:7;11439:6;11428:9;11424:22;11403:53;:::i;:::-;11393:63;;11349:117;11505:2;11531:53;11576:7;11567:6;11556:9;11552:22;11531:53;:::i;:::-;11521:63;;11476:118;11633:2;11659:53;11704:7;11695:6;11684:9;11680:22;11659:53;:::i;:::-;11649:63;;11604:118;11110:619;;;;;:::o;11735:763::-;11820:6;11828;11836;11844;11893:3;11881:9;11872:7;11868:23;11864:33;11861:120;;;11900:79;;:::i;:::-;11861:120;12020:1;12045:53;12090:7;12081:6;12070:9;12066:22;12045:53;:::i;:::-;12035:63;;11991:117;12147:2;12173:53;12218:7;12209:6;12198:9;12194:22;12173:53;:::i;:::-;12163:63;;12118:118;12275:2;12301:53;12346:7;12337:6;12326:9;12322:22;12301:53;:::i;:::-;12291:63;;12246:118;12403:2;12429:52;12473:7;12464:6;12453:9;12449:22;12429:52;:::i;:::-;12419:62;;12374:117;11735:763;;;;;;;:::o;12504:169::-;12588:11;12622:6;12617:3;12610:19;12662:4;12657:3;12653:14;12638:29;;12504:169;;;;:::o;12679:171::-;12819:23;12815:1;12807:6;12803:14;12796:47;12679:171;:::o;12856:366::-;12998:3;13019:67;13083:2;13078:3;13019:67;:::i;:::-;13012:74;;13095:93;13184:3;13095:93;:::i;:::-;13213:2;13208:3;13204:12;13197:19;;12856:366;;;:::o;13228:419::-;13394:4;13432:2;13421:9;13417:18;13409:26;;13481:9;13475:4;13471:20;13467:1;13456:9;13452:17;13445:47;13509:131;13635:4;13509:131;:::i;:::-;13501:139;;13228:419;;;:::o;13653:224::-;13793:34;13789:1;13781:6;13777:14;13770:58;13862:7;13857:2;13849:6;13845:15;13838:32;13653:224;:::o;13883:366::-;14025:3;14046:67;14110:2;14105:3;14046:67;:::i;:::-;14039:74;;14122:93;14211:3;14122:93;:::i;:::-;14240:2;14235:3;14231:12;14224:19;;13883:366;;;:::o;14255:419::-;14421:4;14459:2;14448:9;14444:18;14436:26;;14508:9;14502:4;14498:20;14494:1;14483:9;14479:17;14472:47;14536:131;14662:4;14536:131;:::i;:::-;14528:139;;14255:419;;;:::o;14680:226::-;14820:34;14816:1;14808:6;14804:14;14797:58;14889:9;14884:2;14876:6;14872:15;14865:34;14680:226;:::o;14912:366::-;15054:3;15075:67;15139:2;15134:3;15075:67;:::i;:::-;15068:74;;15151:93;15240:3;15151:93;:::i;:::-;15269:2;15264:3;15260:12;15253:19;;14912:366;;;:::o;15284:419::-;15450:4;15488:2;15477:9;15473:18;15465:26;;15537:9;15531:4;15527:20;15523:1;15512:9;15508:17;15501:47;15565:131;15691:4;15565:131;:::i;:::-;15557:139;;15284:419;;;:::o;15709:218::-;15800:4;15838:2;15827:9;15823:18;15815:26;;15851:69;15917:1;15906:9;15902:17;15893:6;15851:69;:::i;:::-;15709:218;;;;:::o;15933:164::-;16073:16;16069:1;16061:6;16057:14;16050:40;15933:164;:::o;16103:366::-;16245:3;16266:67;16330:2;16325:3;16266:67;:::i;:::-;16259:74;;16342:93;16431:3;16342:93;:::i;:::-;16460:2;16455:3;16451:12;16444:19;;16103:366;;;:::o;16475:419::-;16641:4;16679:2;16668:9;16664:18;16656:26;;16728:9;16722:4;16718:20;16714:1;16703:9;16699:17;16692:47;16756:131;16882:4;16756:131;:::i;:::-;16748:139;;16475:419;;;:::o;16900:164::-;17040:16;17036:1;17028:6;17024:14;17017:40;16900:164;:::o;17070:366::-;17212:3;17233:67;17297:2;17292:3;17233:67;:::i;:::-;17226:74;;17309:93;17398:3;17309:93;:::i;:::-;17427:2;17422:3;17418:12;17411:19;;17070:366;;;:::o;17442:419::-;17608:4;17646:2;17635:9;17631:18;17623:26;;17695:9;17689:4;17685:20;17681:1;17670:9;17666:17;17659:47;17723:131;17849:4;17723:131;:::i;:::-;17715:139;;17442:419;;;:::o;17867:163::-;18007:15;18003:1;17995:6;17991:14;17984:39;17867:163;:::o;18036:366::-;18178:3;18199:67;18263:2;18258:3;18199:67;:::i;:::-;18192:74;;18275:93;18364:3;18275:93;:::i;:::-;18393:2;18388:3;18384:12;18377:19;;18036:366;;;:::o;18408:419::-;18574:4;18612:2;18601:9;18597:18;18589:26;;18661:9;18655:4;18651:20;18647:1;18636:9;18632:17;18625:47;18689:131;18815:4;18689:131;:::i;:::-;18681:139;;18408:419;;;:::o;18833:171::-;18973:23;18969:1;18961:6;18957:14;18950:47;18833:171;:::o;19010:366::-;19152:3;19173:67;19237:2;19232:3;19173:67;:::i;:::-;19166:74;;19249:93;19338:3;19249:93;:::i;:::-;19367:2;19362:3;19358:12;19351:19;;19010:366;;;:::o;19382:419::-;19548:4;19586:2;19575:9;19571:18;19563:26;;19635:9;19629:4;19625:20;19621:1;19610:9;19606:17;19599:47;19663:131;19789:4;19663:131;:::i;:::-;19655:139;;19382:419;;;:::o;19807:332::-;19928:4;19966:2;19955:9;19951:18;19943:26;;19979:71;20047:1;20036:9;20032:17;20023:6;19979:71;:::i;:::-;20060:72;20128:2;20117:9;20113:18;20104:6;20060:72;:::i;:::-;19807:332;;;;;:::o;20145:116::-;20215:21;20230:5;20215:21;:::i;:::-;20208:5;20205:32;20195:60;;20251:1;20248;20241:12;20195:60;20145:116;:::o;20267:137::-;20321:5;20352:6;20346:13;20337:22;;20368:30;20392:5;20368:30;:::i;:::-;20267:137;;;;:::o;20410:345::-;20477:6;20526:2;20514:9;20505:7;20501:23;20497:32;20494:119;;;20532:79;;:::i;:::-;20494:119;20652:1;20677:61;20730:7;20721:6;20710:9;20706:22;20677:61;:::i;:::-;20667:71;;20623:125;20410:345;;;;:::o;20761:180::-;20809:77;20806:1;20799:88;20906:4;20903:1;20896:15;20930:4;20927:1;20920:15;20947:194;20987:4;21007:20;21025:1;21007:20;:::i;:::-;21002:25;;21041:20;21059:1;21041:20;:::i;:::-;21036:25;;21085:1;21082;21078:9;21070:17;;21109:1;21103:4;21100:11;21097:37;;;21114:18;;:::i;:::-;21097:37;20947:194;;;;:::o;21147:191::-;21187:3;21206:20;21224:1;21206:20;:::i;:::-;21201:25;;21240:20;21258:1;21240:20;:::i;:::-;21235:25;;21283:1;21280;21276:9;21269:16;;21304:3;21301:1;21298:10;21295:36;;;21311:18;;:::i;:::-;21295:36;21147:191;;;;:::o;21344:222::-;21437:4;21475:2;21464:9;21460:18;21452:26;;21488:71;21556:1;21545:9;21541:17;21532:6;21488:71;:::i;:::-;21344:222;;;;:::o;21572:228::-;21712:34;21708:1;21700:6;21696:14;21689:58;21781:11;21776:2;21768:6;21764:15;21757:36;21572:228;:::o;21806:366::-;21948:3;21969:67;22033:2;22028:3;21969:67;:::i;:::-;21962:74;;22045:93;22134:3;22045:93;:::i;:::-;22163:2;22158:3;22154:12;22147:19;;21806:366;;;:::o;22178:419::-;22344:4;22382:2;22371:9;22367:18;22359:26;;22431:9;22425:4;22421:20;22417:1;22406:9;22402:17;22395:47;22459:131;22585:4;22459:131;:::i;:::-;22451:139;;22178:419;;;:::o;22603:168::-;22743:20;22739:1;22731:6;22727:14;22720:44;22603:168;:::o;22777:366::-;22919:3;22940:67;23004:2;22999:3;22940:67;:::i;:::-;22933:74;;23016:93;23105:3;23016:93;:::i;:::-;23134:2;23129:3;23125:12;23118:19;;22777:366;;;:::o;23149:419::-;23315:4;23353:2;23342:9;23338:18;23330:26;;23402:9;23396:4;23392:20;23388:1;23377:9;23373:17;23366:47;23430:131;23556:4;23430:131;:::i;:::-;23422:139;;23149:419;;;:::o;23574:442::-;23723:4;23761:2;23750:9;23746:18;23738:26;;23774:71;23842:1;23831:9;23827:17;23818:6;23774:71;:::i;:::-;23855:72;23923:2;23912:9;23908:18;23899:6;23855:72;:::i;:::-;23937;24005:2;23994:9;23990:18;23981:6;23937:72;:::i;:::-;23574:442;;;;;;:::o;24022:233::-;24061:3;24084:24;24102:5;24084:24;:::i;:::-;24075:33;;24130:66;24123:5;24120:77;24117:103;;24200:18;;:::i;:::-;24117:103;24247:1;24240:5;24236:13;24229:20;;24022:233;;;:::o;24261:410::-;24301:7;24324:20;24342:1;24324:20;:::i;:::-;24319:25;;24358:20;24376:1;24358:20;:::i;:::-;24353:25;;24413:1;24410;24406:9;24435:30;24453:11;24435:30;:::i;:::-;24424:41;;24614:1;24605:7;24601:15;24598:1;24595:22;24575:1;24568:9;24548:83;24525:139;;24644:18;;:::i;:::-;24525:139;24309:362;24261:410;;;;:::o;24677:180::-;24725:77;24722:1;24715:88;24822:4;24819:1;24812:15;24846:4;24843:1;24836:15;24863:185;24903:1;24920:20;24938:1;24920:20;:::i;:::-;24915:25;;24954:20;24972:1;24954:20;:::i;:::-;24949:25;;24993:1;24983:35;;24998:18;;:::i;:::-;24983:35;25040:1;25037;25033:9;25028:14;;24863:185;;;;:::o;25054:60::-;25082:3;25103:5;25096:12;;25054:60;;;:::o;25120:140::-;25169:9;25202:52;25220:33;25229:23;25246:5;25229:23;:::i;:::-;25220:33;:::i;:::-;25202:52;:::i;:::-;25189:65;;25120:140;;;:::o;25266:129::-;25352:36;25382:5;25352:36;:::i;:::-;25347:3;25340:49;25266:129;;:::o;25401:146::-;25498:6;25493:3;25488;25475:30;25539:1;25530:6;25525:3;25521:16;25514:27;25401:146;;;:::o;25553:102::-;25594:6;25645:2;25641:7;25636:2;25629:5;25625:14;25621:28;25611:38;;25553:102;;;:::o;25685:317::-;25783:3;25804:71;25868:6;25863:3;25804:71;:::i;:::-;25797:78;;25885:56;25934:6;25929:3;25922:5;25885:56;:::i;:::-;25966:29;25988:6;25966:29;:::i;:::-;25961:3;25957:39;25950:46;;25685:317;;;;;:::o;26008:662::-;26214:4;26252:3;26241:9;26237:19;26229:27;;26266:71;26334:1;26323:9;26319:17;26310:6;26266:71;:::i;:::-;26347:72;26415:2;26404:9;26400:18;26391:6;26347:72;:::i;:::-;26429:71;26496:2;26485:9;26481:18;26472:6;26429:71;:::i;:::-;26547:9;26541:4;26537:20;26532:2;26521:9;26517:18;26510:48;26575:88;26658:4;26649:6;26641;26575:88;:::i;:::-;26567:96;;26008:662;;;;;;;;:::o;26676:233::-;26816:34;26812:1;26804:6;26800:14;26793:58;26885:16;26880:2;26872:6;26868:15;26861:41;26676:233;:::o;26915:366::-;27057:3;27078:67;27142:2;27137:3;27078:67;:::i;:::-;27071:74;;27154:93;27243:3;27154:93;:::i;:::-;27272:2;27267:3;27263:12;27256:19;;26915:366;;;:::o;27287:419::-;27453:4;27491:2;27480:9;27476:18;27468:26;;27540:9;27534:4;27530:20;27526:1;27515:9;27511:17;27504:47;27568:131;27694:4;27568:131;:::i;:::-;27560:139;;27287:419;;;:::o;27712:85::-;27757:7;27786:5;27775:16;;27712:85;;;:::o;27803:86::-;27838:7;27878:4;27871:5;27867:16;27856:27;;27803:86;;;:::o;27895:154::-;27951:9;27984:59;28000:42;28009:32;28035:5;28009:32;:::i;:::-;28000:42;:::i;:::-;27984:59;:::i;:::-;27971:72;;27895:154;;;:::o;28055:143::-;28148:43;28185:5;28148:43;:::i;:::-;28143:3;28136:56;28055:143;;:::o;28204:234::-;28303:4;28341:2;28330:9;28326:18;28318:26;;28354:77;28428:1;28417:9;28413:17;28404:6;28354:77;:::i;:::-;28204:234;;;;:::o;28444:173::-;28584:25;28580:1;28572:6;28568:14;28561:49;28444:173;:::o;28623:366::-;28765:3;28786:67;28850:2;28845:3;28786:67;:::i;:::-;28779:74;;28862:93;28951:3;28862:93;:::i;:::-;28980:2;28975:3;28971:12;28964:19;;28623:366;;;:::o;28995:419::-;29161:4;29199:2;29188:9;29184:18;29176:26;;29248:9;29242:4;29238:20;29234:1;29223:9;29219:17;29212:47;29276:131;29402:4;29276:131;:::i;:::-;29268:139;;28995:419;;;:::o;29420:216::-;29459:4;29479:19;29496:1;29479:19;:::i;:::-;29474:24;;29512:19;29529:1;29512:19;:::i;:::-;29507:24;;29555:1;29552;29548:9;29540:17;;29579:26;29573:4;29570:36;29567:62;;;29609:18;;:::i;:::-;29567:62;29420:216;;;;:::o;29642:138::-;29690:9;29723:51;29740:33;29749:23;29766:5;29749:23;:::i;:::-;29740:33;:::i;:::-;29723:51;:::i;:::-;29710:64;;29642:138;;;:::o;29786:127::-;29871:35;29900:5;29871:35;:::i;:::-;29866:3;29859:48;29786:127;;:::o;29919:328::-;30038:4;30076:2;30065:9;30061:18;30053:26;;30089:71;30157:1;30146:9;30142:17;30133:6;30089:71;:::i;:::-;30170:70;30236:2;30225:9;30221:18;30212:6;30170:70;:::i;:::-;29919:328;;;;;:::o;30253:182::-;30393:34;30389:1;30381:6;30377:14;30370:58;30253:182;:::o;30441:366::-;30583:3;30604:67;30668:2;30663:3;30604:67;:::i;:::-;30597:74;;30680:93;30769:3;30680:93;:::i;:::-;30798:2;30793:3;30789:12;30782:19;;30441:366;;;:::o;30813:419::-;30979:4;31017:2;31006:9;31002:18;30994:26;;31066:9;31060:4;31056:20;31052:1;31041:9;31037:17;31030:47;31094:131;31220:4;31094:131;:::i;:::-;31086:139;;30813:419;;;:::o;31238:166::-;31378:18;31374:1;31366:6;31362:14;31355:42;31238:166;:::o;31410:366::-;31552:3;31573:67;31637:2;31632:3;31573:67;:::i;:::-;31566:74;;31649:93;31738:3;31649:93;:::i;:::-;31767:2;31762:3;31758:12;31751:19;;31410:366;;;:::o;31782:419::-;31948:4;31986:2;31975:9;31971:18;31963:26;;32035:9;32029:4;32025:20;32021:1;32010:9;32006:17;31999:47;32063:131;32189:4;32063:131;:::i;:::-;32055:139;;31782:419;;;:::o;32207:167::-;32347:19;32343:1;32335:6;32331:14;32324:43;32207:167;:::o;32380:366::-;32522:3;32543:67;32607:2;32602:3;32543:67;:::i;:::-;32536:74;;32619:93;32708:3;32619:93;:::i;:::-;32737:2;32732:3;32728:12;32721:19;;32380:366;;;:::o;32752:419::-;32918:4;32956:2;32945:9;32941:18;32933:26;;33005:9;32999:4;32995:20;32991:1;32980:9;32976:17;32969:47;33033:131;33159:4;33033:131;:::i;:::-;33025:139;;32752:419;;;:::o;33177:162::-;33317:14;33313:1;33305:6;33301:14;33294:38;33177:162;:::o;33345:366::-;33487:3;33508:67;33572:2;33567:3;33508:67;:::i;:::-;33501:74;;33584:93;33673:3;33584:93;:::i;:::-;33702:2;33697:3;33693:12;33686:19;;33345:366;;;:::o;33717:419::-;33883:4;33921:2;33910:9;33906:18;33898:26;;33970:9;33964:4;33960:20;33956:1;33945:9;33941:17;33934:47;33998:131;34124:4;33998:131;:::i;:::-;33990:139;;33717:419;;;:::o;34142:166::-;34282:18;34278:1;34270:6;34266:14;34259:42;34142:166;:::o;34314:366::-;34456:3;34477:67;34541:2;34536:3;34477:67;:::i;:::-;34470:74;;34553:93;34642:3;34553:93;:::i;:::-;34671:2;34666:3;34662:12;34655:19;;34314:366;;;:::o;34686:419::-;34852:4;34890:2;34879:9;34875:18;34867:26;;34939:9;34933:4;34929:20;34925:1;34914:9;34910:17;34903:47;34967:131;35093:4;34967:131;:::i;:::-;34959:139;;34686:419;;;:::o;35111:175::-;35251:27;35247:1;35239:6;35235:14;35228:51;35111:175;:::o;35292:366::-;35434:3;35455:67;35519:2;35514:3;35455:67;:::i;:::-;35448:74;;35531:93;35620:3;35531:93;:::i;:::-;35649:2;35644:3;35640:12;35633:19;;35292:366;;;:::o;35664:419::-;35830:4;35868:2;35857:9;35853:18;35845:26;;35917:9;35911:4;35907:20;35903:1;35892:9;35888:17;35881:47;35945:131;36071:4;35945:131;:::i;:::-;35937:139;;35664:419;;;:::o;36089:230::-;36229:34;36225:1;36217:6;36213:14;36206:58;36298:13;36293:2;36285:6;36281:15;36274:38;36089:230;:::o;36325:366::-;36467:3;36488:67;36552:2;36547:3;36488:67;:::i;:::-;36481:74;;36564:93;36653:3;36564:93;:::i;:::-;36682:2;36677:3;36673:12;36666:19;;36325:366;;;:::o;36697:419::-;36863:4;36901:2;36890:9;36886:18;36878:26;;36950:9;36944:4;36940:20;36936:1;36925:9;36921:17;36914:47;36978:131;37104:4;36978:131;:::i;:::-;36970:139;;36697:419;;;:::o;37122:170::-;37262:22;37258:1;37250:6;37246:14;37239:46;37122:170;:::o;37298:366::-;37440:3;37461:67;37525:2;37520:3;37461:67;:::i;:::-;37454:74;;37537:93;37626:3;37537:93;:::i;:::-;37655:2;37650:3;37646:12;37639:19;;37298:366;;;:::o;37670:419::-;37836:4;37874:2;37863:9;37859:18;37851:26;;37923:9;37917:4;37913:20;37909:1;37898:9;37894:17;37887:47;37951:131;38077:4;37951:131;:::i;:::-;37943:139;;37670:419;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"2872200","executionCost":"infinite","totalCost":"infinite"},"external":{"acceptOwnership()":"54769","createOrder(address,uint256,uint96,address,uint256,address,string)":"infinite","getFeeDetails()":"4715","getOrderInfo(bytes32)":"infinite","initialize()":"191278","isTokenSupported(address)":"2948","owner()":"2611","pause()":"infinite","paused()":"2569","pendingOwner()":"2588","refund(uint256,bytes32)":"infinite","renounceOwnership()":"54692","settingManagerBool(bytes32,address,uint256)":"infinite","settle(bytes32,bytes32,address,uint64)":"infinite","transferOwnership(address)":"infinite","unpause()":"infinite","updateProtocolAddress(bytes32,address)":"31117","updateProtocolFee(uint64)":"infinite"},"internal":{"_handler(address,uint256,address,address,uint256)":"infinite"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","createOrder(address,uint256,uint96,address,uint256,address,string)":"809804f7","getFeeDetails()":"b810c636","getOrderInfo(bytes32)":"768c6ec0","initialize()":"8129fc1c","isTokenSupported(address)":"75151b63","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","refund(uint256,bytes32)":"71eedb88","renounceOwnership()":"715018a6","settingManagerBool(bytes32,address,uint256)":"cd992400","settle(bytes32,bytes32,address,uint64)":"f22ee704","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateProtocolAddress(bytes32,address)":"40ebc677","updateProtocolFee(uint64)":"47094e2e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"messageHash\",\"type\":\"string\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"OrderRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"splitOrderId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"liquidityProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"settlePercent\",\"type\":\"uint96\"}],\"name\":\"OrderSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"name\":\"ProtocolAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"}],\"name\":\"ProtocolFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SenderFeeTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"name\":\"SetFeeRecipient\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"SettingManagerBool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"_rate\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"_senderFeeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_senderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"messageHash\",\"type\":\"string\"}],\"name\":\"createOrder\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDetails\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"}],\"name\":\"getOrderInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"senderFeeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"senderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isFulfilled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRefunded\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"currentBPS\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IGateway.Order\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"settingManagerBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_splitOrderId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_liquidityProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_settlePercent\",\"type\":\"uint64\"}],\"name\":\"settle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"updateProtocolAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_protocolFeePercent\",\"type\":\"uint64\"}],\"name\":\"updateProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OrderCreated(address,address,uint256,uint256,bytes32,uint256,string)\":{\"details\":\"Emitted when a deposit is made.\",\"params\":{\"amount\":\"The amount of the deposit.\",\"messageHash\":\"The hash of the message.\",\"orderId\":\"The ID of the order.\",\"rate\":\"The rate at which the deposit is made.\",\"sender\":\"The address of the sender.\",\"token\":\"The address of the deposited token.\"}},\"OrderRefunded(uint256,bytes32)\":{\"details\":\"Emitted when an aggregator refunds a transaction.\",\"params\":{\"fee\":\"The fee deducted from the refund amount.\",\"orderId\":\"The ID of the order.\"}},\"OrderSettled(bytes32,bytes32,address,uint96)\":{\"details\":\"Emitted when an aggregator settles a transaction.\",\"params\":{\"liquidityProvider\":\"The address of the liquidity provider.\",\"orderId\":\"The ID of the order.\",\"settlePercent\":\"The percentage at which the transaction is settled.\",\"splitOrderId\":\"The ID of the split order.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"SenderFeeTransferred(address,uint256)\":{\"details\":\"Emitted when the sender's fee is transferred.\",\"params\":{\"amount\":\"The amount of the fee transferred.\",\"sender\":\"The address of the sender.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createOrder(address,uint256,uint96,address,uint256,address,string)\":{\"details\":\"See {createOrder-IGateway}. \"},\"getFeeDetails()\":{\"details\":\"See {getFeeDetails-IGateway}. \"},\"getOrderInfo(bytes32)\":{\"details\":\"See {getOrderInfo-IGateway}. \"},\"initialize()\":{\"details\":\"Initialize function.\"},\"isTokenSupported(address)\":{\"details\":\"See {isTokenSupported-IGateway}. \"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pause the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"refund(uint256,bytes32)\":{\"details\":\"See {refund-IGateway}. \"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"settingManagerBool(bytes32,address,uint256)\":{\"details\":\"Sets the boolean value for a specific setting.\",\"params\":{\"status\":\"The boolean value to be set. Requirements: - The value must not be a zero address.\",\"value\":\"The address or value associated with the setting.\",\"what\":\"The setting to be updated.\"}},\"settle(bytes32,bytes32,address,uint64)\":{\"details\":\"See {settle-IGateway}. \"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpause the contract.\"},\"updateProtocolAddress(bytes32,address)\":{\"details\":\"Updates a protocol address.\",\"params\":{\"value\":\"The new address to be set. Requirements: - The value must not be a zero address.\",\"what\":\"The address type to be updated (treasury or aggregator).\"}},\"updateProtocolFee(uint64)\":{\"details\":\"Updates the protocol fee percentage.\",\"params\":{\"_protocolFeePercent\":\"The new protocol fee percentage to be set.\"}}},\"title\":\"Gateway\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract serves as a gateway for creating orders and managing settlements.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Gateway.sol\":\"Gateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n address private _pendingOwner;\\n\\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n function __Ownable2Step_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable2Step_init_unchained() internal onlyInitializing {\\n }\\n /**\\n * @dev Returns the address of the pending owner.\\n */\\n function pendingOwner() public view virtual returns (address) {\\n return _pendingOwner;\\n }\\n\\n /**\\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual override onlyOwner {\\n _pendingOwner = newOwner;\\n emit OwnershipTransferStarted(owner(), newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual override {\\n delete _pendingOwner;\\n super._transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev The new owner accepts the ownership transfer.\\n */\\n function acceptOwnership() public virtual {\\n address sender = _msgSender();\\n require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n _transferOwnership(sender);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n function __Ownable_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable_init_unchained() internal onlyInitializing {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\\n /**\\n * @dev Emitted when the pause is triggered by `account`.\\n */\\n event Paused(address account);\\n\\n /**\\n * @dev Emitted when the pause is lifted by `account`.\\n */\\n event Unpaused(address account);\\n\\n bool private _paused;\\n\\n /**\\n * @dev Initializes the contract in unpaused state.\\n */\\n function __Pausable_init() internal onlyInitializing {\\n __Pausable_init_unchained();\\n }\\n\\n function __Pausable_init_unchained() internal onlyInitializing {\\n _paused = false;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is not paused.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n modifier whenNotPaused() {\\n _requireNotPaused();\\n _;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is paused.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n modifier whenPaused() {\\n _requirePaused();\\n _;\\n }\\n\\n /**\\n * @dev Returns true if the contract is paused, and false otherwise.\\n */\\n function paused() public view virtual returns (bool) {\\n return _paused;\\n }\\n\\n /**\\n * @dev Throws if the contract is paused.\\n */\\n function _requireNotPaused() internal view virtual {\\n require(!paused(), \\\"Pausable: paused\\\");\\n }\\n\\n /**\\n * @dev Throws if the contract is not paused.\\n */\\n function _requirePaused() internal view virtual {\\n require(paused(), \\\"Pausable: not paused\\\");\\n }\\n\\n /**\\n * @dev Triggers stopped state.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n function _pause() internal virtual whenNotPaused {\\n _paused = true;\\n emit Paused(_msgSender());\\n }\\n\\n /**\\n * @dev Returns to normal state.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n function _unpause() internal virtual whenPaused {\\n _paused = false;\\n emit Unpaused(_msgSender());\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"contracts/Gateway.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.18;\\n\\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\\n\\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\\n\\n/**\\n * @title Gateway\\n * @notice This contract serves as a gateway for creating orders and managing settlements.\\n */\\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\\n\\tstruct fee {\\n\\t\\tuint256 protocolFee;\\n\\t\\tuint256 liquidityProviderAmount;\\n\\t}\\n\\n\\tmapping(bytes32 => Order) private order;\\n\\tmapping(address => uint256) private _nonce;\\n\\tuint256[50] private __gap;\\n\\n\\t/// @custom:oz-upgrades-unsafe-allow constructor\\n\\tconstructor() {\\n\\t\\t_disableInitializers();\\n\\t}\\n\\n\\t/**\\n\\t * @dev Initialize function.\\n\\t */\\n\\tfunction initialize() external initializer {\\n\\t\\tMAX_BPS = 100_000;\\n\\t\\t__Ownable2Step_init();\\n\\t\\t__Pausable_init();\\n\\t}\\n\\n\\t/**\\n\\t * @dev Modifier that allows only the aggregator to call a function.\\n\\t */\\n\\tmodifier onlyAggregator() {\\n\\t\\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\\n\\t\\t_;\\n\\t}\\n\\n\\t/* ##################################################################\\n OWNER FUNCTIONS\\n ################################################################## */\\n\\t/**\\n\\t * @dev Pause the contract.\\n\\t */\\n\\tfunction pause() external onlyOwner {\\n\\t\\t_pause();\\n\\t}\\n\\n\\t/**\\n\\t * @dev Unpause the contract.\\n\\t */\\n\\tfunction unpause() external onlyOwner {\\n\\t\\t_unpause();\\n\\t}\\n\\n\\t/* ##################################################################\\n USER CALLS\\n ################################################################## */\\n\\t/** @dev See {createOrder-IGateway}. */\\n\\tfunction createOrder(\\n\\t\\taddress _token,\\n\\t\\tuint256 _amount,\\n\\t\\tuint96 _rate,\\n\\t\\taddress _senderFeeRecipient,\\n\\t\\tuint256 _senderFee,\\n\\t\\taddress _refundAddress,\\n\\t\\tstring calldata messageHash\\n\\t) external whenNotPaused returns (bytes32 orderId) {\\n\\t\\t// checks that are required\\n\\t\\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\\n\\n\\t\\t// validate messageHash\\n\\t\\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\\n\\n\\t\\t// transfer token from msg.sender to contract\\n\\t\\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\\n\\n\\t\\t// increase users nonce to avoid replay attacks\\n\\t\\t_nonce[msg.sender]++;\\n\\n\\t\\t// generate transaction id for the transaction\\n\\t\\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\\n\\n\\t\\t// update transaction\\n\\t\\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\\n\\t\\torder[orderId] = Order({\\n\\t\\t\\tsender: msg.sender,\\n\\t\\t\\ttoken: _token,\\n\\t\\t\\tsenderFeeRecipient: _senderFeeRecipient,\\n\\t\\t\\tsenderFee: _senderFee,\\n\\t\\t\\tprotocolFee: _protocolFee,\\n\\t\\t\\tisFulfilled: false,\\n\\t\\t\\tisRefunded: false,\\n\\t\\t\\trefundAddress: _refundAddress,\\n\\t\\t\\tcurrentBPS: uint64(MAX_BPS),\\n\\t\\t\\tamount: _amount\\n\\t\\t});\\n\\n\\t\\t// emit order created event\\n\\t\\temit OrderCreated(\\n\\t\\t\\torder[orderId].sender,\\n\\t\\t\\t_token,\\n\\t\\t\\torder[orderId].amount,\\n\\t\\t\\t_protocolFee,\\n\\t\\t\\torderId,\\n\\t\\t\\t_rate,\\n\\t\\t\\tmessageHash\\n\\t\\t);\\n\\t}\\n\\n\\t/**\\n\\t * @dev Internal function to handle order creation.\\n\\t * @param _token The address of the token being traded.\\n\\t * @param _amount The amount of tokens being traded.\\n\\t * @param _refundAddress The address to refund the tokens in case of cancellation.\\n\\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\\n\\t * @param _senderFee The amount of the sender fee.\\n\\t */\\n\\tfunction _handler(\\n\\t\\taddress _token,\\n\\t\\tuint256 _amount,\\n\\t\\taddress _refundAddress,\\n\\t\\taddress _senderFeeRecipient,\\n\\t\\tuint256 _senderFee\\n\\t) internal view {\\n\\t\\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\\n\\t\\trequire(_amount != 0, 'AmountIsZero');\\n\\t\\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\\n\\n\\t\\tif (_senderFee != 0) {\\n\\t\\t\\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\\n\\t\\t}\\n\\t}\\n\\n\\t/* ##################################################################\\n AGGREGATOR FUNCTIONS\\n ################################################################## */\\n\\t/** @dev See {settle-IGateway}. */\\n\\tfunction settle(\\n\\t\\tbytes32 _splitOrderId,\\n\\t\\tbytes32 _orderId,\\n\\t\\taddress _liquidityProvider,\\n\\t\\tuint64 _settlePercent\\n\\t) external onlyAggregator returns (bool) {\\n\\t\\t// ensure the transaction has not been fulfilled\\n\\t\\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\\n\\t\\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\\n\\n\\t\\t// load the token into memory\\n\\t\\taddress token = order[_orderId].token;\\n\\n\\t\\t// subtract sum of amount based on the input _settlePercent\\n\\t\\torder[_orderId].currentBPS -= _settlePercent;\\n\\n\\t\\tif (order[_orderId].currentBPS == 0) {\\n\\t\\t\\t// update the transaction to be fulfilled\\n\\t\\t\\torder[_orderId].isFulfilled = true;\\n\\n\\t\\t\\tif (order[_orderId].senderFee != 0) {\\n\\t\\t\\t\\t// transfer sender fee\\n\\t\\t\\t\\tIERC20(order[_orderId].token).transfer(\\n\\t\\t\\t\\t\\torder[_orderId].senderFeeRecipient,\\n\\t\\t\\t\\t\\torder[_orderId].senderFee\\n\\t\\t\\t\\t);\\n\\n\\t\\t\\t\\t// emit event\\n\\t\\t\\t\\temit SenderFeeTransferred(\\n\\t\\t\\t\\t\\torder[_orderId].senderFeeRecipient,\\n\\t\\t\\t\\t\\torder[_orderId].senderFee\\n\\t\\t\\t\\t);\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\t// transfer to liquidity provider\\n\\t\\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\\n\\t\\torder[_orderId].amount -= liquidityProviderAmount;\\n\\n\\t\\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\\n\\t\\tliquidityProviderAmount -= protocolFee;\\n\\n\\t\\t// transfer protocol fee\\n\\t\\tIERC20(token).transfer(treasuryAddress, protocolFee);\\n\\n\\t\\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\\n\\n\\t\\t// emit settled event\\n\\t\\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\\n\\n\\t\\treturn true;\\n\\t}\\n\\n\\t/** @dev See {refund-IGateway}. */\\n\\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\\n\\t\\t// ensure the transaction has not been fulfilled\\n\\t\\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\\n\\t\\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\\n\\t\\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\\n\\n\\t\\t// transfer refund fee to the treasury\\n\\t\\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\\n\\n\\t\\t// reset state values\\n\\t\\torder[_orderId].isRefunded = true;\\n\\t\\torder[_orderId].currentBPS = 0;\\n\\n\\t\\t// deduct fee from order amount\\n\\t\\tuint256 refundAmount = order[_orderId].amount - _fee;\\n\\n\\t\\t// transfer refund amount and sender fee to the refund address\\n\\t\\tIERC20(order[_orderId].token).transfer(\\n\\t\\t\\torder[_orderId].refundAddress,\\n\\t\\t\\trefundAmount + order[_orderId].senderFee\\n\\t\\t);\\n\\n\\t\\t// emit refunded event\\n\\t\\temit OrderRefunded(_fee, _orderId);\\n\\n\\t\\treturn true;\\n\\t}\\n\\n\\t/* ##################################################################\\n VIEW CALLS\\n ################################################################## */\\n\\t/** @dev See {getOrderInfo-IGateway}. */\\n\\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\\n\\t\\treturn order[_orderId];\\n\\t}\\n\\n\\t/** @dev See {isTokenSupported-IGateway}. */\\n\\tfunction isTokenSupported(address _token) external view returns (bool) {\\n\\t\\tif (_isTokenSupported[_token] == 1) return true;\\n\\t\\treturn false;\\n\\t}\\n\\n\\t/** @dev See {getFeeDetails-IGateway}. */\\n\\tfunction getFeeDetails() external view returns (uint64, uint256) {\\n\\t\\treturn (protocolFeePercent, MAX_BPS);\\n\\t}\\n}\\n\",\"keccak256\":\"0xf007641df4c281fff0686751a78bfa2f9e658ddf7abac69b2e5f4996e5dc0e28\",\"license\":\"UNLICENSED\"},\"contracts/GatewaySettingManager.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\n\\n/**\\n * @title GatewaySettingManager\\n * @dev This contract manages the settings and configurations for the Gateway protocol.\\n */\\npragma solidity ^0.8.18;\\n\\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\\n\\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\\n\\tuint256 internal MAX_BPS;\\n\\tuint64 internal protocolFeePercent;\\n\\taddress internal treasuryAddress;\\n\\taddress internal _aggregatorAddress;\\n\\tmapping(address => uint256) internal _isTokenSupported;\\n\\n\\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\\n\\tuint256[50] private __gap;\\n\\n\\n\\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\\n\\tevent ProtocolFeeUpdated(uint64 protocolFee);\\n\\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\\n\\tevent SetFeeRecipient(address indexed treasuryAddress);\\n\\n\\t/* ##################################################################\\n OWNER FUNCTIONS\\n ################################################################## */\\n\\n\\t/**\\n\\t * @dev Sets the boolean value for a specific setting.\\n\\t * @param what The setting to be updated.\\n\\t * @param value The address or value associated with the setting.\\n\\t * @param status The boolean value to be set.\\n\\t * Requirements:\\n\\t * - The value must not be a zero address.\\n\\t */\\n\\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\\n\\t\\trequire(value != address(0), 'Gateway: zero address');\\n\\t\\trequire(status == 1 || status == 2, 'Gateway: invalid status');\\n\\t\\tif (what == 'token') {\\n\\t\\t\\t_isTokenSupported[value] = status;\\n\\t\\t\\temit SettingManagerBool(what, value, status);\\n\\t\\t}\\n\\t}\\n\\n\\t/**\\n\\t * @dev Updates the protocol fee percentage.\\n\\t * @param _protocolFeePercent The new protocol fee percentage to be set.\\n\\t */\\n\\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\\n\\t\\tprotocolFeePercent = _protocolFeePercent;\\n\\t\\temit ProtocolFeeUpdated(_protocolFeePercent);\\n\\t}\\n\\n\\t/**\\n\\t * @dev Updates a protocol address.\\n\\t * @param what The address type to be updated (treasury or aggregator).\\n\\t * @param value The new address to be set.\\n\\t * Requirements:\\n\\t * - The value must not be a zero address.\\n\\t */\\n\\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\\n\\t\\trequire(value != address(0), 'Gateway: zero address');\\n\\t\\tbool updated;\\n\\t\\tif (what == 'treasury') {\\n\\t\\t\\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\\n\\t\\t\\ttreasuryAddress = value;\\n\\t\\t\\tupdated = true;\\n\\t\\t} else if (what == 'aggregator') {\\n\\t\\t\\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\\n\\t\\t\\t_aggregatorAddress = value;\\n\\t\\t\\tupdated = true;\\n\\t\\t}\\n\\t\\tif (updated) {\\n\\t\\t\\temit ProtocolAddressUpdated(what, value);\\n\\t\\t}\\n\\t}\\n}\\n\",\"keccak256\":\"0xa6bc7df8377942cbbcd340f9fddad581486e8842ab71e5109b4d71ea1e148059\",\"license\":\"UNLICENSED\"},\"contracts/interfaces/IGateway.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.18;\\n\\nimport {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';\\n\\n/**\\n * @title IGateway\\n * @notice Interface for the Gateway contract.\\n */\\ninterface IGateway {\\n\\t/* ##################################################################\\n EVENTS\\n ################################################################## */\\n\\t/**\\n\\t * @dev Emitted when a deposit is made.\\n\\t * @param sender The address of the sender.\\n\\t * @param token The address of the deposited token.\\n\\t * @param amount The amount of the deposit.\\n\\t * @param orderId The ID of the order.\\n\\t * @param rate The rate at which the deposit is made.\\n\\t * @param messageHash The hash of the message.\\n\\t */\\n\\tevent OrderCreated(\\n\\t\\taddress indexed sender,\\n\\t\\taddress indexed token,\\n\\t\\tuint256 indexed amount,\\n\\t\\tuint256 protocolFee,\\n\\t\\tbytes32 orderId,\\n\\t\\tuint256 rate,\\n\\t\\tstring messageHash\\n\\t);\\n\\n\\t/**\\n\\t * @dev Emitted when an aggregator settles a transaction.\\n\\t * @param splitOrderId The ID of the split order.\\n\\t * @param orderId The ID of the order.\\n\\t * @param liquidityProvider The address of the liquidity provider.\\n\\t * @param settlePercent The percentage at which the transaction is settled.\\n\\t */\\n\\tevent OrderSettled(\\n\\t\\tbytes32 splitOrderId,\\n\\t\\tbytes32 indexed orderId,\\n\\t\\taddress indexed liquidityProvider,\\n\\t\\tuint96 settlePercent\\n\\t);\\n\\n\\t/**\\n\\t * @dev Emitted when an aggregator refunds a transaction.\\n\\t * @param fee The fee deducted from the refund amount.\\n\\t * @param orderId The ID of the order.\\n\\t */\\n\\tevent OrderRefunded(uint256 fee, bytes32 indexed orderId);\\n\\n\\t/**\\n\\t * @dev Emitted when the sender's fee is transferred.\\n\\t * @param sender The address of the sender.\\n\\t * @param amount The amount of the fee transferred.\\n\\t */\\n\\tevent SenderFeeTransferred(address indexed sender, uint256 indexed amount);\\n\\n\\t/* ##################################################################\\n STRUCTS\\n ################################################################## */\\n\\t/**\\n\\t * @dev Struct representing an order.\\n\\t * @param sender The address of the sender.\\n\\t * @param token The address of the token.\\n\\t * @param senderFeeRecipient The address of the sender fee recipient.\\n\\t * @param senderFee The fee to be paid to the sender fee recipient.\\n\\t * @param protocolFee The protocol fee to be paid.\\n\\t * @param isFulfilled Whether the order is fulfilled.\\n\\t * @param isRefunded Whether the order is refunded.\\n\\t * @param refundAddress The address to which the refund is made.\\n\\t * @param currentBPS The current basis points.\\n\\t * @param amount The amount of the order.\\n\\t */\\n\\tstruct Order {\\n\\t\\taddress sender;\\n\\t\\taddress token;\\n\\t\\taddress senderFeeRecipient;\\n\\t\\tuint256 senderFee;\\n\\t\\tuint256 protocolFee;\\n\\t\\tbool isFulfilled;\\n\\t\\tbool isRefunded;\\n\\t\\taddress refundAddress;\\n\\t\\tuint96 currentBPS;\\n\\t\\tuint256 amount;\\n\\t}\\n\\n\\t/* ##################################################################\\n EXTERNAL CALLS\\n ################################################################## */\\n\\t/**\\n\\t * @notice Locks the sender's amount of token into Gateway.\\n\\t * @dev Requirements:\\n\\t * - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\\n\\t * - `_token` must be an acceptable token. See {isTokenSupported}.\\n\\t * - `amount` must be greater than minimum.\\n\\t * - `_refundAddress` refund address must not be zero address.\\n\\t * @param _token The address of the token.\\n\\t * @param _amount The amount in the decimal of `_token` to be locked.\\n\\t * @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\\n\\t * @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\\n\\t * @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\\n\\t * @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\\n\\t * @param messageHash The hash of the message.\\n\\t * @return _orderId The ID of the order.\\n\\t */\\n\\tfunction createOrder(\\n\\t\\taddress _token,\\n\\t\\tuint256 _amount,\\n\\t\\tuint96 _rate,\\n\\t\\taddress _senderFeeRecipient,\\n\\t\\tuint256 _senderFee,\\n\\t\\taddress _refundAddress,\\n\\t\\tstring calldata messageHash\\n\\t) external returns (bytes32 _orderId);\\n\\n\\t/**\\n\\t * @notice Settles a transaction and distributes rewards accordingly.\\n\\t * @param _splitOrderId The ID of the split order.\\n\\t * @param _orderId The ID of the transaction.\\n\\t * @param _liquidityProvider The address of the liquidity provider.\\n\\t * @param _settlePercent The rate at which the transaction is settled.\\n\\t * @return bool the settlement is successful.\\n\\t */\\n\\tfunction settle(\\n\\t\\tbytes32 _splitOrderId,\\n\\t\\tbytes32 _orderId,\\n\\t\\taddress _liquidityProvider,\\n\\t\\tuint64 _settlePercent\\n\\t) external returns (bool);\\n\\n\\t/**\\n\\t * @notice Refunds to the specified refundable address.\\n\\t * @dev Requirements:\\n\\t * - Only aggregators can call this function.\\n\\t * @param _fee The amount to be deducted from the amount to be refunded.\\n\\t * @param _orderId The ID of the transaction.\\n\\t * @return bool the refund is successful.\\n\\t */\\n\\tfunction refund(uint256 _fee, bytes32 _orderId) external returns (bool);\\n\\n\\t/**\\n\\t * @notice Checks if a token is supported by Gateway.\\n\\t * @param _token The address of the token to check.\\n\\t * @return bool the token is supported.\\n\\t */\\n\\tfunction isTokenSupported(address _token) external view returns (bool);\\n\\n\\t/**\\n\\t * @notice Gets the details of an order.\\n\\t * @param _orderId The ID of the order.\\n\\t * @return Order The order details.\\n\\t */\\n\\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory);\\n\\n\\t/**\\n\\t * @notice Gets the fee details of Gateway.\\n\\t * @return protocolReward The protocol reward amount.\\n\\t * @return max_bps The maximum basis points.\\n\\t */\\n\\tfunction getFeeDetails() external view returns (uint64 protocolReward, uint256 max_bps);\\n}\\n\",\"keccak256\":\"0x356dde777ccf9a99b942382774515f4a18978e782d35cd02019a6a48c0dd53e9\",\"license\":\"UNLICENSED\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"contracts/Gateway.sol:Gateway","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"contracts/Gateway.sol:Gateway","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":118,"contract":"contracts/Gateway.sol:Gateway","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":238,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":11,"contract":"contracts/Gateway.sol:Gateway","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":105,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1577,"contract":"contracts/Gateway.sol:Gateway","label":"MAX_BPS","offset":0,"slot":"151","type":"t_uint256"},{"astId":1579,"contract":"contracts/Gateway.sol:Gateway","label":"protocolFeePercent","offset":0,"slot":"152","type":"t_uint64"},{"astId":1581,"contract":"contracts/Gateway.sol:Gateway","label":"treasuryAddress","offset":8,"slot":"152","type":"t_address"},{"astId":1583,"contract":"contracts/Gateway.sol:Gateway","label":"_aggregatorAddress","offset":0,"slot":"153","type":"t_address"},{"astId":1587,"contract":"contracts/Gateway.sol:Gateway","label":"_isTokenSupported","offset":0,"slot":"154","type":"t_mapping(t_address,t_uint256)"},{"astId":1591,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"155","type":"t_array(t_uint256)50_storage"},{"astId":430,"contract":"contracts/Gateway.sol:Gateway","label":"_paused","offset":0,"slot":"205","type":"t_bool"},{"astId":535,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"206","type":"t_array(t_uint256)49_storage"},{"astId":1020,"contract":"contracts/Gateway.sol:Gateway","label":"order","offset":0,"slot":"255","type":"t_mapping(t_bytes32,t_struct(Order)1822_storage)"},{"astId":1024,"contract":"contracts/Gateway.sol:Gateway","label":"_nonce","offset":0,"slot":"256","type":"t_mapping(t_address,t_uint256)"},{"astId":1028,"contract":"contracts/Gateway.sol:Gateway","label":"__gap","offset":0,"slot":"257","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(Order)1822_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IGateway.Order)","numberOfBytes":"32","value":"t_struct(Order)1822_storage"},"t_struct(Order)1822_storage":{"encoding":"inplace","label":"struct IGateway.Order","members":[{"astId":1803,"contract":"contracts/Gateway.sol:Gateway","label":"sender","offset":0,"slot":"0","type":"t_address"},{"astId":1805,"contract":"contracts/Gateway.sol:Gateway","label":"token","offset":0,"slot":"1","type":"t_address"},{"astId":1807,"contract":"contracts/Gateway.sol:Gateway","label":"senderFeeRecipient","offset":0,"slot":"2","type":"t_address"},{"astId":1809,"contract":"contracts/Gateway.sol:Gateway","label":"senderFee","offset":0,"slot":"3","type":"t_uint256"},{"astId":1811,"contract":"contracts/Gateway.sol:Gateway","label":"protocolFee","offset":0,"slot":"4","type":"t_uint256"},{"astId":1813,"contract":"contracts/Gateway.sol:Gateway","label":"isFulfilled","offset":0,"slot":"5","type":"t_bool"},{"astId":1815,"contract":"contracts/Gateway.sol:Gateway","label":"isRefunded","offset":1,"slot":"5","type":"t_bool"},{"astId":1817,"contract":"contracts/Gateway.sol:Gateway","label":"refundAddress","offset":2,"slot":"5","type":"t_address"},{"astId":1819,"contract":"contracts/Gateway.sol:Gateway","label":"currentBPS","offset":0,"slot":"6","type":"t_uint96"},{"astId":1821,"contract":"contracts/Gateway.sol:Gateway","label":"amount","offset":0,"slot":"7","type":"t_uint256"}],"numberOfBytes":"256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"kind":"user","methods":{},"notice":"This contract serves as a gateway for creating orders and managing settlements.","version":1}}},"contracts/GatewaySettingManager.sol":{"GatewaySettingManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"address","name":"treasuryAddress","type":"address"}],"name":"ProtocolAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"protocolFee","type":"uint64"}],"name":"ProtocolFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"treasuryAddress","type":"address"}],"name":"SetFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"address","name":"value","type":"address"},{"indexed":false,"internalType":"uint256","name":"status","type":"uint256"}],"name":"SettingManagerBool","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"value","type":"address"},{"internalType":"uint256","name":"status","type":"uint256"}],"name":"settingManagerBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"updateProtocolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_protocolFeePercent","type":"uint64"}],"name":"updateProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"settingManagerBool(bytes32,address,uint256)":{"details":"Sets the boolean value for a specific setting.","params":{"status":"The boolean value to be set. Requirements: - The value must not be a zero address.","value":"The address or value associated with the setting.","what":"The setting to be updated."}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"updateProtocolAddress(bytes32,address)":{"details":"Updates a protocol address.","params":{"value":"The new address to be set. Requirements: - The value must not be a zero address.","what":"The address type to be updated (treasury or aggregator)."}},"updateProtocolFee(uint64)":{"details":"Updates the protocol fee percentage.","params":{"_protocolFeePercent":"The new protocol fee percentage to be set."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610edf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d9578063cd992400146100f7578063e30c397814610113578063f2fde38b1461013157610088565b806340ebc6771461008d57806347094e2e146100a9578063715018a6146100c557806379ba5097146100cf575b600080fd5b6100a760048036038101906100a291906109bd565b61014d565b005b6100c360048036038101906100be9190610a3d565b610415565b005b6100cd610480565b005b6100d7610494565b005b6100e1610521565b6040516100ee9190610a79565b60405180910390f35b610111600480360381019061010c9190610aca565b61054b565b005b61011b6106d0565b6040516101289190610a79565b60405180910390f35b61014b60048036038101906101469190610b1d565b6106fa565b005b6101556107a7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610ba7565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102c7578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361027d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027490610c39565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103c5565b7f61676772656761746f720000000000000000000000000000000000000000000083036103c4578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361037e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590610ccb565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610410578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b61041d6107a7565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516104759190610cfa565b60405180910390a150565b6104886107a7565b6104926000610825565b565b600061049e610856565b90508073ffffffffffffffffffffffffffffffffffffffff166104bf6106d0565b73ffffffffffffffffffffffffffffffffffffffff1614610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90610d87565b60405180910390fd5b61051e81610825565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105536107a7565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b990610ba7565b60405180910390fd5b60018114806105d15750600281145b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790610df3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106cb5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106c29190610e22565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107026107a7565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16610762610521565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107af610856565b73ffffffffffffffffffffffffffffffffffffffff166107cd610521565b73ffffffffffffffffffffffffffffffffffffffff1614610823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081a90610e89565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556108538161085e565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61093c81610929565b811461094757600080fd5b50565b60008135905061095981610933565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061098a8261095f565b9050919050565b61099a8161097f565b81146109a557600080fd5b50565b6000813590506109b781610991565b92915050565b600080604083850312156109d4576109d3610924565b5b60006109e28582860161094a565b92505060206109f3858286016109a8565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a1a816109fd565b8114610a2557600080fd5b50565b600081359050610a3781610a11565b92915050565b600060208284031215610a5357610a52610924565b5b6000610a6184828501610a28565b91505092915050565b610a738161097f565b82525050565b6000602082019050610a8e6000830184610a6a565b92915050565b6000819050919050565b610aa781610a94565b8114610ab257600080fd5b50565b600081359050610ac481610a9e565b92915050565b600080600060608486031215610ae357610ae2610924565b5b6000610af18682870161094a565b9350506020610b02868287016109a8565b9250506040610b1386828701610ab5565b9150509250925092565b600060208284031215610b3357610b32610924565b5b6000610b41848285016109a8565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610b91601583610b4a565b9150610b9c82610b5b565b602082019050919050565b60006020820190508181036000830152610bc081610b84565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c23602583610b4a565b9150610c2e82610bc7565b604082019050919050565b60006020820190508181036000830152610c5281610c16565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cb5602783610b4a565b9150610cc082610c59565b604082019050919050565b60006020820190508181036000830152610ce481610ca8565b9050919050565b610cf4816109fd565b82525050565b6000602082019050610d0f6000830184610ceb565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610d71602983610b4a565b9150610d7c82610d15565b604082019050919050565b60006020820190508181036000830152610da081610d64565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610ddd601783610b4a565b9150610de882610da7565b602082019050919050565b60006020820190508181036000830152610e0c81610dd0565b9050919050565b610e1c81610a94565b82525050565b6000602082019050610e376000830184610e13565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610e73602083610b4a565b9150610e7e82610e3d565b602082019050919050565b60006020820190508181036000830152610ea281610e66565b905091905056fea264697066735822122081a5d6584d68533dd564cd3881f4d239736bf0f05a86d786e63e89ce2a2d220664736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEDF DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0xCD992400 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x131 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x40EBC677 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x47094E2E EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x14D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0xA3D JUMP JUMPDEST PUSH2 0x415 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCD PUSH2 0x480 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD7 PUSH2 0x494 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE1 PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEE SWAP2 SWAP1 PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10C SWAP2 SWAP1 PUSH2 0xACA JUMP JUMPDEST PUSH2 0x54B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11B PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x146 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x6FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x155 PUSH2 0x7A7 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB SWAP1 PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x7472656173757279000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x2C7 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x27D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x274 SWAP1 PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x98 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x3C5 JUMP JUMPDEST PUSH32 0x61676772656761746F7200000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x3C4 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x37E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x375 SWAP1 PUSH2 0xCCB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x99 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x410 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xBBC5B96E57CFECB3DBEEADF92E87F15E58E64FCD75CBE256DCC5D9EF2E51E8A4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x41D PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH1 0x98 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x1CE29A697A4765BD17D91DF93BA75B250B629ECF030553FF1F6AB59F15AE6C7B DUP2 PUSH1 0x40 MLOAD PUSH2 0x475 SWAP2 SWAP1 PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x488 PUSH2 0x7A7 JUMP JUMPDEST PUSH2 0x492 PUSH1 0x0 PUSH2 0x825 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49E PUSH2 0x856 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4BF PUSH2 0x6D0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x515 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x50C SWAP1 PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x51E DUP2 PUSH2 0x825 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x553 PUSH2 0x7A7 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B9 SWAP1 PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 EQ DUP1 PUSH2 0x5D1 JUMPI POP PUSH1 0x2 DUP2 EQ JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x607 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x746F6B656E000000000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x6CB JUMPI DUP1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xCFA976492AF7C14A916CC3A239F4C9C75BBD7F5F0E398BEB41D892C7EECCAE4C DUP4 PUSH1 0x40 MLOAD PUSH2 0x6C2 SWAP2 SWAP1 PUSH2 0xE22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x702 PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x762 PUSH2 0x521 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x7AF PUSH2 0x856 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7CD PUSH2 0x521 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x823 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81A SWAP1 PUSH2 0xE89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x853 DUP2 PUSH2 0x85E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x33 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x93C DUP2 PUSH2 0x929 JUMP JUMPDEST DUP2 EQ PUSH2 0x947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x959 DUP2 PUSH2 0x933 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98A DUP3 PUSH2 0x95F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x99A DUP2 PUSH2 0x97F JUMP JUMPDEST DUP2 EQ PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9B7 DUP2 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9D4 JUMPI PUSH2 0x9D3 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9E2 DUP6 DUP3 DUP7 ADD PUSH2 0x94A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x9F3 DUP6 DUP3 DUP7 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1A DUP2 PUSH2 0x9FD JUMP JUMPDEST DUP2 EQ PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA11 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA53 JUMPI PUSH2 0xA52 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA61 DUP5 DUP3 DUP6 ADD PUSH2 0xA28 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA73 DUP2 PUSH2 0x97F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAA7 DUP2 PUSH2 0xA94 JUMP JUMPDEST DUP2 EQ PUSH2 0xAB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAC4 DUP2 PUSH2 0xA9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xAE3 JUMPI PUSH2 0xAE2 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xAF1 DUP7 DUP3 DUP8 ADD PUSH2 0x94A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB02 DUP7 DUP3 DUP8 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB13 DUP7 DUP3 DUP8 ADD PUSH2 0xAB5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB33 JUMPI PUSH2 0xB32 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB41 DUP5 DUP3 DUP6 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A207A65726F20616464726573730000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB91 PUSH1 0x15 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xB9C DUP3 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBC0 DUP2 PUSH2 0xB84 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A207472656173757279206164647265737320616C72656164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7920736574000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC23 PUSH1 0x25 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xC2E DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC52 DUP2 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A2061676772656761746F72206164647265737320616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB5 PUSH1 0x27 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xCC0 DUP3 PUSH2 0xC59 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCE4 DUP2 PUSH2 0xCA8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF4 DUP2 PUSH2 0x9FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCEB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 PUSH1 0x29 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP3 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA0 DUP2 PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A20696E76616C696420737461747573000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDD PUSH1 0x17 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xDE8 DUP3 PUSH2 0xDA7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0C DUP2 PUSH2 0xDD0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1C DUP2 PUSH2 0xA94 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE73 PUSH1 0x20 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xE7E DUP3 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xEA2 DUP2 PUSH2 0xE66 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xA5 0xD6 PC 0x4D PUSH9 0x533DD564CD3881F4D2 CODECOPY PUSH20 0x6BF0F05A86D786E63E89CE2A2D220664736F6C63 NUMBER STOP ADDMOD SLT STOP CALLER ","sourceMap":"276:2570:8:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_176":{"entryPoint":1959,"id":176,"parameterSlots":0,"returnSlots":0},"@_msgSender_894":{"entryPoint":2134,"id":894,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_233":{"entryPoint":2142,"id":233,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_78":{"entryPoint":2085,"id":78,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_100":{"entryPoint":1172,"id":100,"parameterSlots":0,"returnSlots":0},"@owner_162":{"entryPoint":1313,"id":162,"parameterSlots":0,"returnSlots":1},"@pendingOwner_41":{"entryPoint":1744,"id":41,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_190":{"entryPoint":1152,"id":190,"parameterSlots":0,"returnSlots":0},"@settingManagerBool_1664":{"entryPoint":1355,"id":1664,"parameterSlots":3,"returnSlots":0},"@transferOwnership_61":{"entryPoint":1786,"id":61,"parameterSlots":1,"returnSlots":0},"@updateProtocolAddress_1753":{"entryPoint":333,"id":1753,"parameterSlots":2,"returnSlots":0},"@updateProtocolFee_1681":{"entryPoint":1045,"id":1681,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":2378,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2741,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":2600,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":2493,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_addresst_uint256":{"entryPoint":2762,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint64":{"entryPoint":2621,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2666,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack":{"entryPoint":2948,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":3428,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack":{"entryPoint":3536,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3686,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack":{"entryPoint":3094,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack":{"entryPoint":3240,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3603,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":3307,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2681,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2983,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3463,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3571,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3721,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3129,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3618,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":3322,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2890,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2431,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2345,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2399,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2708,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":2557,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2340,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf":{"entryPoint":2907,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":3349,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338":{"entryPoint":3495,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":3645,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead":{"entryPoint":3015,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4":{"entryPoint":3161,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2449,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":2355,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2718,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":2577,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10945:10","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:10","statements":[{"nodeType":"YulAssignment","src":"57:19:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:10","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:10"},"nodeType":"YulFunctionCall","src":"67:9:10"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:10"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:10","type":""}],"src":"7:75:10"},{"body":{"nodeType":"YulBlock","src":"177:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:10"},"nodeType":"YulFunctionCall","src":"187:12:10"},"nodeType":"YulExpressionStatement","src":"187:12:10"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:10"},{"body":{"nodeType":"YulBlock","src":"300:28:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:10"},"nodeType":"YulFunctionCall","src":"310:12:10"},"nodeType":"YulExpressionStatement","src":"310:12:10"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:10"},{"body":{"nodeType":"YulBlock","src":"379:32:10","statements":[{"nodeType":"YulAssignment","src":"389:16:10","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:10"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:10","type":""}],"src":"334:77:10"},{"body":{"nodeType":"YulBlock","src":"460:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:10"},"nodeType":"YulFunctionCall","src":"519:12:10"},"nodeType":"YulExpressionStatement","src":"519:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:10"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"490:17:10"},"nodeType":"YulFunctionCall","src":"490:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:10"},"nodeType":"YulFunctionCall","src":"480:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:10"},"nodeType":"YulFunctionCall","src":"473:43:10"},"nodeType":"YulIf","src":"470:63:10"}]},"name":"validator_revert_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:10","type":""}],"src":"417:122:10"},{"body":{"nodeType":"YulBlock","src":"597:87:10","statements":[{"nodeType":"YulAssignment","src":"607:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"629:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"616:12:10"},"nodeType":"YulFunctionCall","src":"616:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"607:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"672:5:10"}],"functionName":{"name":"validator_revert_t_bytes32","nodeType":"YulIdentifier","src":"645:26:10"},"nodeType":"YulFunctionCall","src":"645:33:10"},"nodeType":"YulExpressionStatement","src":"645:33:10"}]},"name":"abi_decode_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"575:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"583:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"591:5:10","type":""}],"src":"545:139:10"},{"body":{"nodeType":"YulBlock","src":"735:81:10","statements":[{"nodeType":"YulAssignment","src":"745:65:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"760:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"767:42:10","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"756:3:10"},"nodeType":"YulFunctionCall","src":"756:54:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"745:7:10"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"717:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"727:7:10","type":""}],"src":"690:126:10"},{"body":{"nodeType":"YulBlock","src":"867:51:10","statements":[{"nodeType":"YulAssignment","src":"877:35:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"906:5:10"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"888:17:10"},"nodeType":"YulFunctionCall","src":"888:24:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"877:7:10"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"849:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"859:7:10","type":""}],"src":"822:96:10"},{"body":{"nodeType":"YulBlock","src":"967:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"1024:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1036:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1026:6:10"},"nodeType":"YulFunctionCall","src":"1026:12:10"},"nodeType":"YulExpressionStatement","src":"1026:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1015:5:10"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"997:17:10"},"nodeType":"YulFunctionCall","src":"997:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"987:2:10"},"nodeType":"YulFunctionCall","src":"987:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"980:6:10"},"nodeType":"YulFunctionCall","src":"980:43:10"},"nodeType":"YulIf","src":"977:63:10"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"960:5:10","type":""}],"src":"924:122:10"},{"body":{"nodeType":"YulBlock","src":"1104:87:10","statements":[{"nodeType":"YulAssignment","src":"1114:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1136:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1123:12:10"},"nodeType":"YulFunctionCall","src":"1123:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1114:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1179:5:10"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"1152:26:10"},"nodeType":"YulFunctionCall","src":"1152:33:10"},"nodeType":"YulExpressionStatement","src":"1152:33:10"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1082:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"1090:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1098:5:10","type":""}],"src":"1052:139:10"},{"body":{"nodeType":"YulBlock","src":"1280:391:10","statements":[{"body":{"nodeType":"YulBlock","src":"1326:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1328:77:10"},"nodeType":"YulFunctionCall","src":"1328:79:10"},"nodeType":"YulExpressionStatement","src":"1328:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1301:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"1310:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1297:3:10"},"nodeType":"YulFunctionCall","src":"1297:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"1322:2:10","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:10"},"nodeType":"YulFunctionCall","src":"1293:32:10"},"nodeType":"YulIf","src":"1290:119:10"},{"nodeType":"YulBlock","src":"1419:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"1434:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"1448:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1438:6:10","type":""}]},{"nodeType":"YulAssignment","src":"1463:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1498:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"1509:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1494:3:10"},"nodeType":"YulFunctionCall","src":"1494:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1518:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"1473:20:10"},"nodeType":"YulFunctionCall","src":"1473:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1463:6:10"}]}]},{"nodeType":"YulBlock","src":"1546:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"1561:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"1575:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1565:6:10","type":""}]},{"nodeType":"YulAssignment","src":"1591:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1626:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"1637:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1622:3:10"},"nodeType":"YulFunctionCall","src":"1622:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1646:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1601:20:10"},"nodeType":"YulFunctionCall","src":"1601:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1591:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1242:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1253:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1265:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1273:6:10","type":""}],"src":"1197:474:10"},{"body":{"nodeType":"YulBlock","src":"1721:57:10","statements":[{"nodeType":"YulAssignment","src":"1731:41:10","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1746:5:10"},{"kind":"number","nodeType":"YulLiteral","src":"1753:18:10","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1742:3:10"},"nodeType":"YulFunctionCall","src":"1742:30:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1731:7:10"}]}]},"name":"cleanup_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1703:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1713:7:10","type":""}],"src":"1677:101:10"},{"body":{"nodeType":"YulBlock","src":"1826:78:10","statements":[{"body":{"nodeType":"YulBlock","src":"1882:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1891:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1894:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1884:6:10"},"nodeType":"YulFunctionCall","src":"1884:12:10"},"nodeType":"YulExpressionStatement","src":"1884:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1849:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:10"}],"functionName":{"name":"cleanup_t_uint64","nodeType":"YulIdentifier","src":"1856:16:10"},"nodeType":"YulFunctionCall","src":"1856:23:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1846:2:10"},"nodeType":"YulFunctionCall","src":"1846:34:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1839:6:10"},"nodeType":"YulFunctionCall","src":"1839:42:10"},"nodeType":"YulIf","src":"1836:62:10"}]},"name":"validator_revert_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1819:5:10","type":""}],"src":"1784:120:10"},{"body":{"nodeType":"YulBlock","src":"1961:86:10","statements":[{"nodeType":"YulAssignment","src":"1971:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1993:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1980:12:10"},"nodeType":"YulFunctionCall","src":"1980:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1971:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2035:5:10"}],"functionName":{"name":"validator_revert_t_uint64","nodeType":"YulIdentifier","src":"2009:25:10"},"nodeType":"YulFunctionCall","src":"2009:32:10"},"nodeType":"YulExpressionStatement","src":"2009:32:10"}]},"name":"abi_decode_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1939:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"1947:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1955:5:10","type":""}],"src":"1910:137:10"},{"body":{"nodeType":"YulBlock","src":"2118:262:10","statements":[{"body":{"nodeType":"YulBlock","src":"2164:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"2166:77:10"},"nodeType":"YulFunctionCall","src":"2166:79:10"},"nodeType":"YulExpressionStatement","src":"2166:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2139:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"2148:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2135:3:10"},"nodeType":"YulFunctionCall","src":"2135:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"2160:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2131:3:10"},"nodeType":"YulFunctionCall","src":"2131:32:10"},"nodeType":"YulIf","src":"2128:119:10"},{"nodeType":"YulBlock","src":"2257:116:10","statements":[{"nodeType":"YulVariableDeclaration","src":"2272:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"2286:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2276:6:10","type":""}]},{"nodeType":"YulAssignment","src":"2301:62:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2335:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"2346:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:10"},"nodeType":"YulFunctionCall","src":"2331:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2355:7:10"}],"functionName":{"name":"abi_decode_t_uint64","nodeType":"YulIdentifier","src":"2311:19:10"},"nodeType":"YulFunctionCall","src":"2311:52:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2301:6:10"}]}]}]},"name":"abi_decode_tuple_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2088:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2099:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2111:6:10","type":""}],"src":"2053:327:10"},{"body":{"nodeType":"YulBlock","src":"2451:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2468:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2491:5:10"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"2473:17:10"},"nodeType":"YulFunctionCall","src":"2473:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2461:6:10"},"nodeType":"YulFunctionCall","src":"2461:37:10"},"nodeType":"YulExpressionStatement","src":"2461:37:10"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2439:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2446:3:10","type":""}],"src":"2386:118:10"},{"body":{"nodeType":"YulBlock","src":"2608:124:10","statements":[{"nodeType":"YulAssignment","src":"2618:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2630:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"2641:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2626:3:10"},"nodeType":"YulFunctionCall","src":"2626:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2618:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2698:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2711:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"2722:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2707:3:10"},"nodeType":"YulFunctionCall","src":"2707:17:10"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2654:43:10"},"nodeType":"YulFunctionCall","src":"2654:71:10"},"nodeType":"YulExpressionStatement","src":"2654:71:10"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2580:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2592:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2603:4:10","type":""}],"src":"2510:222:10"},{"body":{"nodeType":"YulBlock","src":"2783:32:10","statements":[{"nodeType":"YulAssignment","src":"2793:16:10","value":{"name":"value","nodeType":"YulIdentifier","src":"2804:5:10"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2793:7:10"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2765:5:10","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2775:7:10","type":""}],"src":"2738:77:10"},{"body":{"nodeType":"YulBlock","src":"2864:79:10","statements":[{"body":{"nodeType":"YulBlock","src":"2921:16:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2930:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2933:1:10","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2923:6:10"},"nodeType":"YulFunctionCall","src":"2923:12:10"},"nodeType":"YulExpressionStatement","src":"2923:12:10"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2887:5:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2912:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2894:17:10"},"nodeType":"YulFunctionCall","src":"2894:24:10"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2884:2:10"},"nodeType":"YulFunctionCall","src":"2884:35:10"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2877:6:10"},"nodeType":"YulFunctionCall","src":"2877:43:10"},"nodeType":"YulIf","src":"2874:63:10"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2857:5:10","type":""}],"src":"2821:122:10"},{"body":{"nodeType":"YulBlock","src":"3001:87:10","statements":[{"nodeType":"YulAssignment","src":"3011:29:10","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3033:6:10"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3020:12:10"},"nodeType":"YulFunctionCall","src":"3020:20:10"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3011:5:10"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3076:5:10"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3049:26:10"},"nodeType":"YulFunctionCall","src":"3049:33:10"},"nodeType":"YulExpressionStatement","src":"3049:33:10"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2979:6:10","type":""},{"name":"end","nodeType":"YulTypedName","src":"2987:3:10","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2995:5:10","type":""}],"src":"2949:139:10"},{"body":{"nodeType":"YulBlock","src":"3194:519:10","statements":[{"body":{"nodeType":"YulBlock","src":"3240:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3242:77:10"},"nodeType":"YulFunctionCall","src":"3242:79:10"},"nodeType":"YulExpressionStatement","src":"3242:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3215:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"3224:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3211:3:10"},"nodeType":"YulFunctionCall","src":"3211:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:10","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3207:3:10"},"nodeType":"YulFunctionCall","src":"3207:32:10"},"nodeType":"YulIf","src":"3204:119:10"},{"nodeType":"YulBlock","src":"3333:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3348:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3362:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3352:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3377:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3412:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3423:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3408:3:10"},"nodeType":"YulFunctionCall","src":"3408:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3432:7:10"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"3387:20:10"},"nodeType":"YulFunctionCall","src":"3387:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3377:6:10"}]}]},{"nodeType":"YulBlock","src":"3460:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3475:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3489:2:10","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3479:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3505:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3540:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3551:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3536:3:10"},"nodeType":"YulFunctionCall","src":"3536:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3560:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"3515:20:10"},"nodeType":"YulFunctionCall","src":"3515:53:10"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3505:6:10"}]}]},{"nodeType":"YulBlock","src":"3588:118:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3603:16:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3617:2:10","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3607:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3633:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3668:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"3679:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3664:3:10"},"nodeType":"YulFunctionCall","src":"3664:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3688:7:10"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"3643:20:10"},"nodeType":"YulFunctionCall","src":"3643:53:10"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3633:6:10"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:10","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:10","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:10","type":""}],"src":"3094:619:10"},{"body":{"nodeType":"YulBlock","src":"3785:263:10","statements":[{"body":{"nodeType":"YulBlock","src":"3831:83:10","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3833:77:10"},"nodeType":"YulFunctionCall","src":"3833:79:10"},"nodeType":"YulExpressionStatement","src":"3833:79:10"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3806:7:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"3815:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3802:3:10"},"nodeType":"YulFunctionCall","src":"3802:23:10"},{"kind":"number","nodeType":"YulLiteral","src":"3827:2:10","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3798:3:10"},"nodeType":"YulFunctionCall","src":"3798:32:10"},"nodeType":"YulIf","src":"3795:119:10"},{"nodeType":"YulBlock","src":"3924:117:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3939:15:10","value":{"kind":"number","nodeType":"YulLiteral","src":"3953:1:10","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3943:6:10","type":""}]},{"nodeType":"YulAssignment","src":"3968:63:10","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4003:9:10"},{"name":"offset","nodeType":"YulIdentifier","src":"4014:6:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3999:3:10"},"nodeType":"YulFunctionCall","src":"3999:22:10"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4023:7:10"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"3978:20:10"},"nodeType":"YulFunctionCall","src":"3978:53:10"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3968:6:10"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3755:9:10","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3766:7:10","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3778:6:10","type":""}],"src":"3719:329:10"},{"body":{"nodeType":"YulBlock","src":"4150:73:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4167:3:10"},{"name":"length","nodeType":"YulIdentifier","src":"4172:6:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4160:6:10"},"nodeType":"YulFunctionCall","src":"4160:19:10"},"nodeType":"YulExpressionStatement","src":"4160:19:10"},{"nodeType":"YulAssignment","src":"4188:29:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4207:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"4212:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4203:3:10"},"nodeType":"YulFunctionCall","src":"4203:14:10"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"4188:11:10"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4122:3:10","type":""},{"name":"length","nodeType":"YulTypedName","src":"4127:6:10","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"4138:11:10","type":""}],"src":"4054:169:10"},{"body":{"nodeType":"YulBlock","src":"4335:65:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4357:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"4365:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4353:3:10"},"nodeType":"YulFunctionCall","src":"4353:14:10"},{"hexValue":"476174657761793a207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"4369:23:10","type":"","value":"Gateway: zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4346:6:10"},"nodeType":"YulFunctionCall","src":"4346:47:10"},"nodeType":"YulExpressionStatement","src":"4346:47:10"}]},"name":"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"4327:6:10","type":""}],"src":"4229:171:10"},{"body":{"nodeType":"YulBlock","src":"4552:220:10","statements":[{"nodeType":"YulAssignment","src":"4562:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4628:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"4633:2:10","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"4569:58:10"},"nodeType":"YulFunctionCall","src":"4569:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"4562:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4734:3:10"}],"functionName":{"name":"store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf","nodeType":"YulIdentifier","src":"4645:88:10"},"nodeType":"YulFunctionCall","src":"4645:93:10"},"nodeType":"YulExpressionStatement","src":"4645:93:10"},{"nodeType":"YulAssignment","src":"4747:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4758:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"4763:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4754:3:10"},"nodeType":"YulFunctionCall","src":"4754:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4747:3:10"}]}]},"name":"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4540:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4548:3:10","type":""}],"src":"4406:366:10"},{"body":{"nodeType":"YulBlock","src":"4949:248:10","statements":[{"nodeType":"YulAssignment","src":"4959:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4971:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"4982:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4967:3:10"},"nodeType":"YulFunctionCall","src":"4967:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4959:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5006:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"5017:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5002:3:10"},"nodeType":"YulFunctionCall","src":"5002:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5025:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"5031:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5021:3:10"},"nodeType":"YulFunctionCall","src":"5021:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4995:6:10"},"nodeType":"YulFunctionCall","src":"4995:47:10"},"nodeType":"YulExpressionStatement","src":"4995:47:10"},{"nodeType":"YulAssignment","src":"5051:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5185:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"5059:124:10"},"nodeType":"YulFunctionCall","src":"5059:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5051:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4929:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4944:4:10","type":""}],"src":"4778:419:10"},{"body":{"nodeType":"YulBlock","src":"5309:118:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5331:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"5339:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5327:3:10"},"nodeType":"YulFunctionCall","src":"5327:14:10"},{"hexValue":"476174657761793a207472656173757279206164647265737320616c72656164","kind":"string","nodeType":"YulLiteral","src":"5343:34:10","type":"","value":"Gateway: treasury address alread"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5320:6:10"},"nodeType":"YulFunctionCall","src":"5320:58:10"},"nodeType":"YulExpressionStatement","src":"5320:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5399:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"5407:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5395:3:10"},"nodeType":"YulFunctionCall","src":"5395:15:10"},{"hexValue":"7920736574","kind":"string","nodeType":"YulLiteral","src":"5412:7:10","type":"","value":"y set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5388:6:10"},"nodeType":"YulFunctionCall","src":"5388:32:10"},"nodeType":"YulExpressionStatement","src":"5388:32:10"}]},"name":"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"5301:6:10","type":""}],"src":"5203:224:10"},{"body":{"nodeType":"YulBlock","src":"5579:220:10","statements":[{"nodeType":"YulAssignment","src":"5589:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5655:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5660:2:10","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"5596:58:10"},"nodeType":"YulFunctionCall","src":"5596:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5589:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5761:3:10"}],"functionName":{"name":"store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead","nodeType":"YulIdentifier","src":"5672:88:10"},"nodeType":"YulFunctionCall","src":"5672:93:10"},"nodeType":"YulExpressionStatement","src":"5672:93:10"},{"nodeType":"YulAssignment","src":"5774:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5785:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"5790:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5781:3:10"},"nodeType":"YulFunctionCall","src":"5781:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5774:3:10"}]}]},"name":"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5567:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5575:3:10","type":""}],"src":"5433:366:10"},{"body":{"nodeType":"YulBlock","src":"5976:248:10","statements":[{"nodeType":"YulAssignment","src":"5986:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5998:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"6009:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5994:3:10"},"nodeType":"YulFunctionCall","src":"5994:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5986:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6033:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"6044:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6029:3:10"},"nodeType":"YulFunctionCall","src":"6029:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"6052:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"6058:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6048:3:10"},"nodeType":"YulFunctionCall","src":"6048:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6022:6:10"},"nodeType":"YulFunctionCall","src":"6022:47:10"},"nodeType":"YulExpressionStatement","src":"6022:47:10"},{"nodeType":"YulAssignment","src":"6078:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"6212:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"6086:124:10"},"nodeType":"YulFunctionCall","src":"6086:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6078:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5956:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5971:4:10","type":""}],"src":"5805:419:10"},{"body":{"nodeType":"YulBlock","src":"6336:120:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6358:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"6366:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6354:3:10"},"nodeType":"YulFunctionCall","src":"6354:14:10"},{"hexValue":"476174657761793a2061676772656761746f72206164647265737320616c7265","kind":"string","nodeType":"YulLiteral","src":"6370:34:10","type":"","value":"Gateway: aggregator address alre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6347:6:10"},"nodeType":"YulFunctionCall","src":"6347:58:10"},"nodeType":"YulExpressionStatement","src":"6347:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6426:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"6434:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6422:3:10"},"nodeType":"YulFunctionCall","src":"6422:15:10"},{"hexValue":"61647920736574","kind":"string","nodeType":"YulLiteral","src":"6439:9:10","type":"","value":"ady set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6415:6:10"},"nodeType":"YulFunctionCall","src":"6415:34:10"},"nodeType":"YulExpressionStatement","src":"6415:34:10"}]},"name":"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"6328:6:10","type":""}],"src":"6230:226:10"},{"body":{"nodeType":"YulBlock","src":"6608:220:10","statements":[{"nodeType":"YulAssignment","src":"6618:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6684:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6689:2:10","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"6625:58:10"},"nodeType":"YulFunctionCall","src":"6625:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6618:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6790:3:10"}],"functionName":{"name":"store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4","nodeType":"YulIdentifier","src":"6701:88:10"},"nodeType":"YulFunctionCall","src":"6701:93:10"},"nodeType":"YulExpressionStatement","src":"6701:93:10"},{"nodeType":"YulAssignment","src":"6803:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6814:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"6819:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:10"},"nodeType":"YulFunctionCall","src":"6810:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6803:3:10"}]}]},"name":"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6596:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6604:3:10","type":""}],"src":"6462:366:10"},{"body":{"nodeType":"YulBlock","src":"7005:248:10","statements":[{"nodeType":"YulAssignment","src":"7015:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7027:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7038:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7023:3:10"},"nodeType":"YulFunctionCall","src":"7023:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7015:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7062:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7073:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7058:3:10"},"nodeType":"YulFunctionCall","src":"7058:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7081:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"7087:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7077:3:10"},"nodeType":"YulFunctionCall","src":"7077:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7051:6:10"},"nodeType":"YulFunctionCall","src":"7051:47:10"},"nodeType":"YulExpressionStatement","src":"7051:47:10"},{"nodeType":"YulAssignment","src":"7107:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7241:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7115:124:10"},"nodeType":"YulFunctionCall","src":"7115:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7107:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6985:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7000:4:10","type":""}],"src":"6834:419:10"},{"body":{"nodeType":"YulBlock","src":"7322:52:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7339:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7361:5:10"}],"functionName":{"name":"cleanup_t_uint64","nodeType":"YulIdentifier","src":"7344:16:10"},"nodeType":"YulFunctionCall","src":"7344:23:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7332:6:10"},"nodeType":"YulFunctionCall","src":"7332:36:10"},"nodeType":"YulExpressionStatement","src":"7332:36:10"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7310:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7317:3:10","type":""}],"src":"7259:115:10"},{"body":{"nodeType":"YulBlock","src":"7476:122:10","statements":[{"nodeType":"YulAssignment","src":"7486:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7498:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7509:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7494:3:10"},"nodeType":"YulFunctionCall","src":"7494:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7486:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7564:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7577:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"7588:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7573:3:10"},"nodeType":"YulFunctionCall","src":"7573:17:10"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nodeType":"YulIdentifier","src":"7522:41:10"},"nodeType":"YulFunctionCall","src":"7522:69:10"},"nodeType":"YulExpressionStatement","src":"7522:69:10"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7448:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7460:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7471:4:10","type":""}],"src":"7380:218:10"},{"body":{"nodeType":"YulBlock","src":"7710:122:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7732:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"7740:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7728:3:10"},"nodeType":"YulFunctionCall","src":"7728:14:10"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nodeType":"YulLiteral","src":"7744:34:10","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7721:6:10"},"nodeType":"YulFunctionCall","src":"7721:58:10"},"nodeType":"YulExpressionStatement","src":"7721:58:10"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7800:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"7808:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7796:3:10"},"nodeType":"YulFunctionCall","src":"7796:15:10"},{"hexValue":"6e6577206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7813:11:10","type":"","value":"new owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7789:6:10"},"nodeType":"YulFunctionCall","src":"7789:36:10"},"nodeType":"YulExpressionStatement","src":"7789:36:10"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"7702:6:10","type":""}],"src":"7604:228:10"},{"body":{"nodeType":"YulBlock","src":"7984:220:10","statements":[{"nodeType":"YulAssignment","src":"7994:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8060:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"8065:2:10","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8001:58:10"},"nodeType":"YulFunctionCall","src":"8001:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7994:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8166:3:10"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulIdentifier","src":"8077:88:10"},"nodeType":"YulFunctionCall","src":"8077:93:10"},"nodeType":"YulExpressionStatement","src":"8077:93:10"},{"nodeType":"YulAssignment","src":"8179:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8190:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"8195:2:10","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8186:3:10"},"nodeType":"YulFunctionCall","src":"8186:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8179:3:10"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7972:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7980:3:10","type":""}],"src":"7838:366:10"},{"body":{"nodeType":"YulBlock","src":"8381:248:10","statements":[{"nodeType":"YulAssignment","src":"8391:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8403:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"8414:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8399:3:10"},"nodeType":"YulFunctionCall","src":"8399:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8391:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8438:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"8449:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8434:3:10"},"nodeType":"YulFunctionCall","src":"8434:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8457:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"8463:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8453:3:10"},"nodeType":"YulFunctionCall","src":"8453:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8427:6:10"},"nodeType":"YulFunctionCall","src":"8427:47:10"},"nodeType":"YulExpressionStatement","src":"8427:47:10"},{"nodeType":"YulAssignment","src":"8483:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8617:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8491:124:10"},"nodeType":"YulFunctionCall","src":"8491:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8483:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8361:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8376:4:10","type":""}],"src":"8210:419:10"},{"body":{"nodeType":"YulBlock","src":"8741:67:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"8763:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"8771:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8759:3:10"},"nodeType":"YulFunctionCall","src":"8759:14:10"},{"hexValue":"476174657761793a20696e76616c696420737461747573","kind":"string","nodeType":"YulLiteral","src":"8775:25:10","type":"","value":"Gateway: invalid status"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8752:6:10"},"nodeType":"YulFunctionCall","src":"8752:49:10"},"nodeType":"YulExpressionStatement","src":"8752:49:10"}]},"name":"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"8733:6:10","type":""}],"src":"8635:173:10"},{"body":{"nodeType":"YulBlock","src":"8960:220:10","statements":[{"nodeType":"YulAssignment","src":"8970:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9036:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"9041:2:10","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8977:58:10"},"nodeType":"YulFunctionCall","src":"8977:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8970:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9142:3:10"}],"functionName":{"name":"store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338","nodeType":"YulIdentifier","src":"9053:88:10"},"nodeType":"YulFunctionCall","src":"9053:93:10"},"nodeType":"YulExpressionStatement","src":"9053:93:10"},{"nodeType":"YulAssignment","src":"9155:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9166:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"9171:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9162:3:10"},"nodeType":"YulFunctionCall","src":"9162:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9155:3:10"}]}]},"name":"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8948:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8956:3:10","type":""}],"src":"8814:366:10"},{"body":{"nodeType":"YulBlock","src":"9357:248:10","statements":[{"nodeType":"YulAssignment","src":"9367:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9379:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"9390:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9375:3:10"},"nodeType":"YulFunctionCall","src":"9375:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9367:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9414:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"9425:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9410:3:10"},"nodeType":"YulFunctionCall","src":"9410:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"9433:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9429:3:10"},"nodeType":"YulFunctionCall","src":"9429:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9403:6:10"},"nodeType":"YulFunctionCall","src":"9403:47:10"},"nodeType":"YulExpressionStatement","src":"9403:47:10"},{"nodeType":"YulAssignment","src":"9459:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"9593:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"9467:124:10"},"nodeType":"YulFunctionCall","src":"9467:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9459:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9337:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9352:4:10","type":""}],"src":"9186:419:10"},{"body":{"nodeType":"YulBlock","src":"9676:53:10","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9693:3:10"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9716:5:10"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"9698:17:10"},"nodeType":"YulFunctionCall","src":"9698:24:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9686:6:10"},"nodeType":"YulFunctionCall","src":"9686:37:10"},"nodeType":"YulExpressionStatement","src":"9686:37:10"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9664:5:10","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9671:3:10","type":""}],"src":"9611:118:10"},{"body":{"nodeType":"YulBlock","src":"9833:124:10","statements":[{"nodeType":"YulAssignment","src":"9843:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9855:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"9866:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9851:3:10"},"nodeType":"YulFunctionCall","src":"9851:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9843:4:10"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9923:6:10"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9936:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"9947:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9932:3:10"},"nodeType":"YulFunctionCall","src":"9932:17:10"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9879:43:10"},"nodeType":"YulFunctionCall","src":"9879:71:10"},"nodeType":"YulExpressionStatement","src":"9879:71:10"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9805:9:10","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9817:6:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9828:4:10","type":""}],"src":"9735:222:10"},{"body":{"nodeType":"YulBlock","src":"10069:76:10","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10091:6:10"},{"kind":"number","nodeType":"YulLiteral","src":"10099:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10087:3:10"},"nodeType":"YulFunctionCall","src":"10087:14:10"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"10103:34:10","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10080:6:10"},"nodeType":"YulFunctionCall","src":"10080:58:10"},"nodeType":"YulExpressionStatement","src":"10080:58:10"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"10061:6:10","type":""}],"src":"9963:182:10"},{"body":{"nodeType":"YulBlock","src":"10297:220:10","statements":[{"nodeType":"YulAssignment","src":"10307:74:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10373:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"10378:2:10","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10314:58:10"},"nodeType":"YulFunctionCall","src":"10314:67:10"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10307:3:10"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10479:3:10"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulIdentifier","src":"10390:88:10"},"nodeType":"YulFunctionCall","src":"10390:93:10"},"nodeType":"YulExpressionStatement","src":"10390:93:10"},{"nodeType":"YulAssignment","src":"10492:19:10","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10503:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"10508:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10499:3:10"},"nodeType":"YulFunctionCall","src":"10499:12:10"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10492:3:10"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10285:3:10","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10293:3:10","type":""}],"src":"10151:366:10"},{"body":{"nodeType":"YulBlock","src":"10694:248:10","statements":[{"nodeType":"YulAssignment","src":"10704:26:10","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10716:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10727:2:10","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10712:3:10"},"nodeType":"YulFunctionCall","src":"10712:18:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10704:4:10"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10751:9:10"},{"kind":"number","nodeType":"YulLiteral","src":"10762:1:10","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10747:3:10"},"nodeType":"YulFunctionCall","src":"10747:17:10"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10770:4:10"},{"name":"headStart","nodeType":"YulIdentifier","src":"10776:9:10"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10766:3:10"},"nodeType":"YulFunctionCall","src":"10766:20:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10740:6:10"},"nodeType":"YulFunctionCall","src":"10740:47:10"},"nodeType":"YulExpressionStatement","src":"10740:47:10"},{"nodeType":"YulAssignment","src":"10796:139:10","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10930:4:10"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10804:124:10"},"nodeType":"YulFunctionCall","src":"10804:131:10"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10796:4:10"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10674:9:10","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10689:4:10","type":""}],"src":"10523:419:10"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: zero address\")\n\n }\n\n function abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1ed1b610c65ae67667a8e3cd9480c209600a6bf02b22b4af311243c2e6c74caf_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: treasury address alread\")\n\n mstore(add(memPtr, 32), \"y set\")\n\n }\n\n function abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b6e1af8cead2910a847eecbe92be55c8397880e12250986fbcac76421d557ead_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: aggregator address alre\")\n\n mstore(add(memPtr, 32), \"ady set\")\n\n }\n\n function abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_df54c347a849fd7dd0b01f92bc3efd917cd7e26dbe67aebf880d956b8dc0bca4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n mstore(add(memPtr, 32), \"new owner\")\n\n }\n\n function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338(memPtr) {\n\n mstore(add(memPtr, 0), \"Gateway: invalid status\")\n\n }\n\n function abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8363ef1a03c6ce5789016e221f816fab24945c59c2f0126d3b368bfc57b03338_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":10,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d9578063cd992400146100f7578063e30c397814610113578063f2fde38b1461013157610088565b806340ebc6771461008d57806347094e2e146100a9578063715018a6146100c557806379ba5097146100cf575b600080fd5b6100a760048036038101906100a291906109bd565b61014d565b005b6100c360048036038101906100be9190610a3d565b610415565b005b6100cd610480565b005b6100d7610494565b005b6100e1610521565b6040516100ee9190610a79565b60405180910390f35b610111600480360381019061010c9190610aca565b61054b565b005b61011b6106d0565b6040516101289190610a79565b60405180910390f35b61014b60048036038101906101469190610b1d565b6106fa565b005b6101556107a7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610ba7565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102c7578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361027d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027490610c39565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103c5565b7f61676772656761746f720000000000000000000000000000000000000000000083036103c4578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361037e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037590610ccb565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610410578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b61041d6107a7565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516104759190610cfa565b60405180910390a150565b6104886107a7565b6104926000610825565b565b600061049e610856565b90508073ffffffffffffffffffffffffffffffffffffffff166104bf6106d0565b73ffffffffffffffffffffffffffffffffffffffff1614610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90610d87565b60405180910390fd5b61051e81610825565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105536107a7565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b990610ba7565b60405180910390fd5b60018114806105d15750600281145b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790610df3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106cb5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106c29190610e22565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107026107a7565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16610762610521565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107af610856565b73ffffffffffffffffffffffffffffffffffffffff166107cd610521565b73ffffffffffffffffffffffffffffffffffffffff1614610823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081a90610e89565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556108538161085e565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61093c81610929565b811461094757600080fd5b50565b60008135905061095981610933565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061098a8261095f565b9050919050565b61099a8161097f565b81146109a557600080fd5b50565b6000813590506109b781610991565b92915050565b600080604083850312156109d4576109d3610924565b5b60006109e28582860161094a565b92505060206109f3858286016109a8565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a1a816109fd565b8114610a2557600080fd5b50565b600081359050610a3781610a11565b92915050565b600060208284031215610a5357610a52610924565b5b6000610a6184828501610a28565b91505092915050565b610a738161097f565b82525050565b6000602082019050610a8e6000830184610a6a565b92915050565b6000819050919050565b610aa781610a94565b8114610ab257600080fd5b50565b600081359050610ac481610a9e565b92915050565b600080600060608486031215610ae357610ae2610924565b5b6000610af18682870161094a565b9350506020610b02868287016109a8565b9250506040610b1386828701610ab5565b9150509250925092565b600060208284031215610b3357610b32610924565b5b6000610b41848285016109a8565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610b91601583610b4a565b9150610b9c82610b5b565b602082019050919050565b60006020820190508181036000830152610bc081610b84565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c23602583610b4a565b9150610c2e82610bc7565b604082019050919050565b60006020820190508181036000830152610c5281610c16565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cb5602783610b4a565b9150610cc082610c59565b604082019050919050565b60006020820190508181036000830152610ce481610ca8565b9050919050565b610cf4816109fd565b82525050565b6000602082019050610d0f6000830184610ceb565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610d71602983610b4a565b9150610d7c82610d15565b604082019050919050565b60006020820190508181036000830152610da081610d64565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610ddd601783610b4a565b9150610de882610da7565b602082019050919050565b60006020820190508181036000830152610e0c81610dd0565b9050919050565b610e1c81610a94565b82525050565b6000602082019050610e376000830184610e13565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610e73602083610b4a565b9150610e7e82610e3d565b602082019050919050565b60006020820190508181036000830152610ea281610e66565b905091905056fea264697066735822122081a5d6584d68533dd564cd3881f4d239736bf0f05a86d786e63e89ce2a2d220664736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0xCD992400 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x131 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x40EBC677 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x47094E2E EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x14D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0xA3D JUMP JUMPDEST PUSH2 0x415 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCD PUSH2 0x480 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD7 PUSH2 0x494 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE1 PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEE SWAP2 SWAP1 PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10C SWAP2 SWAP1 PUSH2 0xACA JUMP JUMPDEST PUSH2 0x54B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11B PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x146 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x6FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x155 PUSH2 0x7A7 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB SWAP1 PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x7472656173757279000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x2C7 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x98 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x27D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x274 SWAP1 PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x98 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x3C5 JUMP JUMPDEST PUSH32 0x61676772656761746F7200000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x3C4 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x99 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x37E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x375 SWAP1 PUSH2 0xCCB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x99 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x410 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xBBC5B96E57CFECB3DBEEADF92E87F15E58E64FCD75CBE256DCC5D9EF2E51E8A4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x41D PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH1 0x98 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x1CE29A697A4765BD17D91DF93BA75B250B629ECF030553FF1F6AB59F15AE6C7B DUP2 PUSH1 0x40 MLOAD PUSH2 0x475 SWAP2 SWAP1 PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x488 PUSH2 0x7A7 JUMP JUMPDEST PUSH2 0x492 PUSH1 0x0 PUSH2 0x825 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49E PUSH2 0x856 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4BF PUSH2 0x6D0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x515 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x50C SWAP1 PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x51E DUP2 PUSH2 0x825 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x553 PUSH2 0x7A7 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B9 SWAP1 PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 EQ DUP1 PUSH2 0x5D1 JUMPI POP PUSH1 0x2 DUP2 EQ JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x607 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x746F6B656E000000000000000000000000000000000000000000000000000000 DUP4 SUB PUSH2 0x6CB JUMPI DUP1 PUSH1 0x9A PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xCFA976492AF7C14A916CC3A239F4C9C75BBD7F5F0E398BEB41D892C7EECCAE4C DUP4 PUSH1 0x40 MLOAD PUSH2 0x6C2 SWAP2 SWAP1 PUSH2 0xE22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x702 PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x762 PUSH2 0x521 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x7AF PUSH2 0x856 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7CD PUSH2 0x521 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x823 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81A SWAP1 PUSH2 0xE89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x853 DUP2 PUSH2 0x85E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x33 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x93C DUP2 PUSH2 0x929 JUMP JUMPDEST DUP2 EQ PUSH2 0x947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x959 DUP2 PUSH2 0x933 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98A DUP3 PUSH2 0x95F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x99A DUP2 PUSH2 0x97F JUMP JUMPDEST DUP2 EQ PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9B7 DUP2 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9D4 JUMPI PUSH2 0x9D3 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9E2 DUP6 DUP3 DUP7 ADD PUSH2 0x94A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x9F3 DUP6 DUP3 DUP7 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1A DUP2 PUSH2 0x9FD JUMP JUMPDEST DUP2 EQ PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA11 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA53 JUMPI PUSH2 0xA52 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA61 DUP5 DUP3 DUP6 ADD PUSH2 0xA28 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA73 DUP2 PUSH2 0x97F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAA7 DUP2 PUSH2 0xA94 JUMP JUMPDEST DUP2 EQ PUSH2 0xAB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAC4 DUP2 PUSH2 0xA9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xAE3 JUMPI PUSH2 0xAE2 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xAF1 DUP7 DUP3 DUP8 ADD PUSH2 0x94A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB02 DUP7 DUP3 DUP8 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB13 DUP7 DUP3 DUP8 ADD PUSH2 0xAB5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB33 JUMPI PUSH2 0xB32 PUSH2 0x924 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB41 DUP5 DUP3 DUP6 ADD PUSH2 0x9A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x476174657761793A207A65726F20616464726573730000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB91 PUSH1 0x15 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xB9C DUP3 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBC0 DUP2 PUSH2 0xB84 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A207472656173757279206164647265737320616C72656164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7920736574000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC23 PUSH1 0x25 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xC2E DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC52 DUP2 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A2061676772656761746F72206164647265737320616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB5 PUSH1 0x27 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xCC0 DUP3 PUSH2 0xC59 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCE4 DUP2 PUSH2 0xCA8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF4 DUP2 PUSH2 0x9FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCEB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 PUSH1 0x29 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP3 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDA0 DUP2 PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x476174657761793A20696E76616C696420737461747573000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDD PUSH1 0x17 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xDE8 DUP3 PUSH2 0xDA7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0C DUP2 PUSH2 0xDD0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1C DUP2 PUSH2 0xA94 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE73 PUSH1 0x20 DUP4 PUSH2 0xB4A JUMP JUMPDEST SWAP2 POP PUSH2 0xE7E DUP3 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xEA2 DUP2 PUSH2 0xE66 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xA5 0xD6 PC 0x4D PUSH9 0x533DD564CD3881F4D2 CODECOPY PUSH20 0x6BF0F05A86D786E63E89CE2A2D220664736F6C63 NUMBER STOP ADDMOD SLT STOP CALLER ","sourceMap":"276:2570:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:101:1;;;:::i;:::-;;2031:212:0;;;:::i;:::-;;1462:85:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1426:335:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:551:8;1355:13:1;:11;:13::i;:::-;2401:1:8::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:1;:11;:13::i;:::-;1993:19:8::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;2085:101:1:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:0:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1462:85:1:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;1426:335:8:-;1355:13:1;:11;:13::i;:::-;1547:1:8::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:0:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;1436:178::-;1355:13:1;:11;:13::i;:::-;1541:8:0::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:1:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;1798:153:0:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:5:-;939:7;965:10;958:17;;886:96;:::o;2687:187:1:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;88:117:10:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:101::-;1713:7;1753:18;1746:5;1742:30;1731:41;;1677:101;;;:::o;1784:120::-;1856:23;1873:5;1856:23;:::i;:::-;1849:5;1846:34;1836:62;;1894:1;1891;1884:12;1836:62;1784:120;:::o;1910:137::-;1955:5;1993:6;1980:20;1971:29;;2009:32;2035:5;2009:32;:::i;:::-;1910:137;;;;:::o;2053:327::-;2111:6;2160:2;2148:9;2139:7;2135:23;2131:32;2128:119;;;2166:79;;:::i;:::-;2128:119;2286:1;2311:52;2355:7;2346:6;2335:9;2331:22;2311:52;:::i;:::-;2301:62;;2257:116;2053:327;;;;:::o;2386:118::-;2473:24;2491:5;2473:24;:::i;:::-;2468:3;2461:37;2386:118;;:::o;2510:222::-;2603:4;2641:2;2630:9;2626:18;2618:26;;2654:71;2722:1;2711:9;2707:17;2698:6;2654:71;:::i;:::-;2510:222;;;;:::o;2738:77::-;2775:7;2804:5;2793:16;;2738:77;;;:::o;2821:122::-;2894:24;2912:5;2894:24;:::i;:::-;2887:5;2884:35;2874:63;;2933:1;2930;2923:12;2874:63;2821:122;:::o;2949:139::-;2995:5;3033:6;3020:20;3011:29;;3049:33;3076:5;3049:33;:::i;:::-;2949:139;;;;:::o;3094:619::-;3171:6;3179;3187;3236:2;3224:9;3215:7;3211:23;3207:32;3204:119;;;3242:79;;:::i;:::-;3204:119;3362:1;3387:53;3432:7;3423:6;3412:9;3408:22;3387:53;:::i;:::-;3377:63;;3333:117;3489:2;3515:53;3560:7;3551:6;3540:9;3536:22;3515:53;:::i;:::-;3505:63;;3460:118;3617:2;3643:53;3688:7;3679:6;3668:9;3664:22;3643:53;:::i;:::-;3633:63;;3588:118;3094:619;;;;;:::o;3719:329::-;3778:6;3827:2;3815:9;3806:7;3802:23;3798:32;3795:119;;;3833:79;;:::i;:::-;3795:119;3953:1;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3924:117;3719:329;;;;:::o;4054:169::-;4138:11;4172:6;4167:3;4160:19;4212:4;4207:3;4203:14;4188:29;;4054:169;;;;:::o;4229:171::-;4369:23;4365:1;4357:6;4353:14;4346:47;4229:171;:::o;4406:366::-;4548:3;4569:67;4633:2;4628:3;4569:67;:::i;:::-;4562:74;;4645:93;4734:3;4645:93;:::i;:::-;4763:2;4758:3;4754:12;4747:19;;4406:366;;;:::o;4778:419::-;4944:4;4982:2;4971:9;4967:18;4959:26;;5031:9;5025:4;5021:20;5017:1;5006:9;5002:17;4995:47;5059:131;5185:4;5059:131;:::i;:::-;5051:139;;4778:419;;;:::o;5203:224::-;5343:34;5339:1;5331:6;5327:14;5320:58;5412:7;5407:2;5399:6;5395:15;5388:32;5203:224;:::o;5433:366::-;5575:3;5596:67;5660:2;5655:3;5596:67;:::i;:::-;5589:74;;5672:93;5761:3;5672:93;:::i;:::-;5790:2;5785:3;5781:12;5774:19;;5433:366;;;:::o;5805:419::-;5971:4;6009:2;5998:9;5994:18;5986:26;;6058:9;6052:4;6048:20;6044:1;6033:9;6029:17;6022:47;6086:131;6212:4;6086:131;:::i;:::-;6078:139;;5805:419;;;:::o;6230:226::-;6370:34;6366:1;6358:6;6354:14;6347:58;6439:9;6434:2;6426:6;6422:15;6415:34;6230:226;:::o;6462:366::-;6604:3;6625:67;6689:2;6684:3;6625:67;:::i;:::-;6618:74;;6701:93;6790:3;6701:93;:::i;:::-;6819:2;6814:3;6810:12;6803:19;;6462:366;;;:::o;6834:419::-;7000:4;7038:2;7027:9;7023:18;7015:26;;7087:9;7081:4;7077:20;7073:1;7062:9;7058:17;7051:47;7115:131;7241:4;7115:131;:::i;:::-;7107:139;;6834:419;;;:::o;7259:115::-;7344:23;7361:5;7344:23;:::i;:::-;7339:3;7332:36;7259:115;;:::o;7380:218::-;7471:4;7509:2;7498:9;7494:18;7486:26;;7522:69;7588:1;7577:9;7573:17;7564:6;7522:69;:::i;:::-;7380:218;;;;:::o;7604:228::-;7744:34;7740:1;7732:6;7728:14;7721:58;7813:11;7808:2;7800:6;7796:15;7789:36;7604:228;:::o;7838:366::-;7980:3;8001:67;8065:2;8060:3;8001:67;:::i;:::-;7994:74;;8077:93;8166:3;8077:93;:::i;:::-;8195:2;8190:3;8186:12;8179:19;;7838:366;;;:::o;8210:419::-;8376:4;8414:2;8403:9;8399:18;8391:26;;8463:9;8457:4;8453:20;8449:1;8438:9;8434:17;8427:47;8491:131;8617:4;8491:131;:::i;:::-;8483:139;;8210:419;;;:::o;8635:173::-;8775:25;8771:1;8763:6;8759:14;8752:49;8635:173;:::o;8814:366::-;8956:3;8977:67;9041:2;9036:3;8977:67;:::i;:::-;8970:74;;9053:93;9142:3;9053:93;:::i;:::-;9171:2;9166:3;9162:12;9155:19;;8814:366;;;:::o;9186:419::-;9352:4;9390:2;9379:9;9375:18;9367:26;;9439:9;9433:4;9429:20;9425:1;9414:9;9410:17;9403:47;9467:131;9593:4;9467:131;:::i;:::-;9459:139;;9186:419;;;:::o;9611:118::-;9698:24;9716:5;9698:24;:::i;:::-;9693:3;9686:37;9611:118;;:::o;9735:222::-;9828:4;9866:2;9855:9;9851:18;9843:26;;9879:71;9947:1;9936:9;9932:17;9923:6;9879:71;:::i;:::-;9735:222;;;;:::o;9963:182::-;10103:34;10099:1;10091:6;10087:14;10080:58;9963:182;:::o;10151:366::-;10293:3;10314:67;10378:2;10373:3;10314:67;:::i;:::-;10307:74;;10390:93;10479:3;10390:93;:::i;:::-;10508:2;10503:3;10499:12;10492:19;;10151:366;;;:::o;10523:419::-;10689:4;10727:2;10716:9;10712:18;10704:26;;10776:9;10770:4;10766:20;10762:1;10751:9;10747:17;10740:47;10804:131;10930:4;10804:131;:::i;:::-;10796:139;;10523:419;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"761400","executionCost":"792","totalCost":"762192"},"external":{"acceptOwnership()":"54725","owner()":"2522","pendingOwner()":"2566","renounceOwnership()":"54714","settingManagerBool(bytes32,address,uint256)":"infinite","transferOwnership(address)":"infinite","updateProtocolAddress(bytes32,address)":"31072","updateProtocolFee(uint64)":"infinite"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","settingManagerBool(bytes32,address,uint256)":"cd992400","transferOwnership(address)":"f2fde38b","updateProtocolAddress(bytes32,address)":"40ebc677","updateProtocolFee(uint64)":"47094e2e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"name\":\"ProtocolAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"}],\"name\":\"ProtocolFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"name\":\"SetFeeRecipient\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"SettingManagerBool\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"settingManagerBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"what\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"updateProtocolAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_protocolFeePercent\",\"type\":\"uint64\"}],\"name\":\"updateProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"settingManagerBool(bytes32,address,uint256)\":{\"details\":\"Sets the boolean value for a specific setting.\",\"params\":{\"status\":\"The boolean value to be set. Requirements: - The value must not be a zero address.\",\"value\":\"The address or value associated with the setting.\",\"what\":\"The setting to be updated.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"updateProtocolAddress(bytes32,address)\":{\"details\":\"Updates a protocol address.\",\"params\":{\"value\":\"The new address to be set. Requirements: - The value must not be a zero address.\",\"what\":\"The address type to be updated (treasury or aggregator).\"}},\"updateProtocolFee(uint64)\":{\"details\":\"Updates the protocol fee percentage.\",\"params\":{\"_protocolFeePercent\":\"The new protocol fee percentage to be set.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/GatewaySettingManager.sol\":\"GatewaySettingManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n address private _pendingOwner;\\n\\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n function __Ownable2Step_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable2Step_init_unchained() internal onlyInitializing {\\n }\\n /**\\n * @dev Returns the address of the pending owner.\\n */\\n function pendingOwner() public view virtual returns (address) {\\n return _pendingOwner;\\n }\\n\\n /**\\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual override onlyOwner {\\n _pendingOwner = newOwner;\\n emit OwnershipTransferStarted(owner(), newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual override {\\n delete _pendingOwner;\\n super._transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev The new owner accepts the ownership transfer.\\n */\\n function acceptOwnership() public virtual {\\n address sender = _msgSender();\\n require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n _transferOwnership(sender);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n function __Ownable_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable_init_unchained() internal onlyInitializing {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n function __Context_init() internal onlyInitializing {\\n }\\n\\n function __Context_init_unchained() internal onlyInitializing {\\n }\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"contracts/GatewaySettingManager.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\n\\n/**\\n * @title GatewaySettingManager\\n * @dev This contract manages the settings and configurations for the Gateway protocol.\\n */\\npragma solidity ^0.8.18;\\n\\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\\n\\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\\n\\tuint256 internal MAX_BPS;\\n\\tuint64 internal protocolFeePercent;\\n\\taddress internal treasuryAddress;\\n\\taddress internal _aggregatorAddress;\\n\\tmapping(address => uint256) internal _isTokenSupported;\\n\\n\\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\\n\\tuint256[50] private __gap;\\n\\n\\n\\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\\n\\tevent ProtocolFeeUpdated(uint64 protocolFee);\\n\\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\\n\\tevent SetFeeRecipient(address indexed treasuryAddress);\\n\\n\\t/* ##################################################################\\n OWNER FUNCTIONS\\n ################################################################## */\\n\\n\\t/**\\n\\t * @dev Sets the boolean value for a specific setting.\\n\\t * @param what The setting to be updated.\\n\\t * @param value The address or value associated with the setting.\\n\\t * @param status The boolean value to be set.\\n\\t * Requirements:\\n\\t * - The value must not be a zero address.\\n\\t */\\n\\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\\n\\t\\trequire(value != address(0), 'Gateway: zero address');\\n\\t\\trequire(status == 1 || status == 2, 'Gateway: invalid status');\\n\\t\\tif (what == 'token') {\\n\\t\\t\\t_isTokenSupported[value] = status;\\n\\t\\t\\temit SettingManagerBool(what, value, status);\\n\\t\\t}\\n\\t}\\n\\n\\t/**\\n\\t * @dev Updates the protocol fee percentage.\\n\\t * @param _protocolFeePercent The new protocol fee percentage to be set.\\n\\t */\\n\\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\\n\\t\\tprotocolFeePercent = _protocolFeePercent;\\n\\t\\temit ProtocolFeeUpdated(_protocolFeePercent);\\n\\t}\\n\\n\\t/**\\n\\t * @dev Updates a protocol address.\\n\\t * @param what The address type to be updated (treasury or aggregator).\\n\\t * @param value The new address to be set.\\n\\t * Requirements:\\n\\t * - The value must not be a zero address.\\n\\t */\\n\\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\\n\\t\\trequire(value != address(0), 'Gateway: zero address');\\n\\t\\tbool updated;\\n\\t\\tif (what == 'treasury') {\\n\\t\\t\\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\\n\\t\\t\\ttreasuryAddress = value;\\n\\t\\t\\tupdated = true;\\n\\t\\t} else if (what == 'aggregator') {\\n\\t\\t\\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\\n\\t\\t\\t_aggregatorAddress = value;\\n\\t\\t\\tupdated = true;\\n\\t\\t}\\n\\t\\tif (updated) {\\n\\t\\t\\temit ProtocolAddressUpdated(what, value);\\n\\t\\t}\\n\\t}\\n}\\n\",\"keccak256\":\"0xa6bc7df8377942cbbcd340f9fddad581486e8842ab71e5109b4d71ea1e148059\",\"license\":\"UNLICENSED\"}},\"version\":1}","storageLayout":{"storage":[{"astId":246,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":249,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":916,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":118,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":238,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":11,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":105,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1577,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"MAX_BPS","offset":0,"slot":"151","type":"t_uint256"},{"astId":1579,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"protocolFeePercent","offset":0,"slot":"152","type":"t_uint64"},{"astId":1581,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"treasuryAddress","offset":8,"slot":"152","type":"t_address"},{"astId":1583,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_aggregatorAddress","offset":0,"slot":"153","type":"t_address"},{"astId":1587,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"_isTokenSupported","offset":0,"slot":"154","type":"t_mapping(t_address,t_uint256)"},{"astId":1591,"contract":"contracts/GatewaySettingManager.sol:GatewaySettingManager","label":"__gap","offset":0,"slot":"155","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IGateway.sol":{"IGateway":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolFee","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"string","name":"messageHash","type":"string"}],"name":"OrderCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"orderId","type":"bytes32"}],"name":"OrderRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"splitOrderId","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"liquidityProvider","type":"address"},{"indexed":false,"internalType":"uint96","name":"settlePercent","type":"uint96"}],"name":"OrderSettled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SenderFeeTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint96","name":"_rate","type":"uint96"},{"internalType":"address","name":"_senderFeeRecipient","type":"address"},{"internalType":"uint256","name":"_senderFee","type":"uint256"},{"internalType":"address","name":"_refundAddress","type":"address"},{"internalType":"string","name":"messageHash","type":"string"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeeDetails","outputs":[{"internalType":"uint64","name":"protocolReward","type":"uint64"},{"internalType":"uint256","name":"max_bps","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"}],"name":"getOrderInfo","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"senderFeeRecipient","type":"address"},{"internalType":"uint256","name":"senderFee","type":"uint256"},{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"bool","name":"isFulfilled","type":"bool"},{"internalType":"bool","name":"isRefunded","type":"bool"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint96","name":"currentBPS","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IGateway.Order","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"}],"name":"refund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_splitOrderId","type":"bytes32"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_liquidityProvider","type":"address"},{"internalType":"uint64","name":"_settlePercent","type":"uint64"}],"name":"settle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"OrderCreated(address,address,uint256,uint256,bytes32,uint256,string)":{"details":"Emitted when a deposit is made.","params":{"amount":"The amount of the deposit.","messageHash":"The hash of the message.","orderId":"The ID of the order.","rate":"The rate at which the deposit is made.","sender":"The address of the sender.","token":"The address of the deposited token."}},"OrderRefunded(uint256,bytes32)":{"details":"Emitted when an aggregator refunds a transaction.","params":{"fee":"The fee deducted from the refund amount.","orderId":"The ID of the order."}},"OrderSettled(bytes32,bytes32,address,uint96)":{"details":"Emitted when an aggregator settles a transaction.","params":{"liquidityProvider":"The address of the liquidity provider.","orderId":"The ID of the order.","settlePercent":"The percentage at which the transaction is settled.","splitOrderId":"The ID of the split order."}},"SenderFeeTransferred(address,uint256)":{"details":"Emitted when the sender's fee is transferred.","params":{"amount":"The amount of the fee transferred.","sender":"The address of the sender."}}},"kind":"dev","methods":{"createOrder(address,uint256,uint96,address,uint256,address,string)":{"details":"Requirements: - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call. - `_token` must be an acceptable token. See {isTokenSupported}. - `amount` must be greater than minimum. - `_refundAddress` refund address must not be zero address.","params":{"_amount":"The amount in the decimal of `_token` to be locked.","_rate":"The rate at which the sender intends to sell `_amount` of `_token`.","_refundAddress":"The address that will receive `_amount` in `_token` when there is a need to refund.","_senderFee":"The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.","_senderFeeRecipient":"The address that will receive `_senderFee` in `_token`.","_token":"The address of the token.","messageHash":"The hash of the message."},"returns":{"_orderId":"The ID of the order."}},"getFeeDetails()":{"returns":{"max_bps":"The maximum basis points.","protocolReward":"The protocol reward amount."}},"getOrderInfo(bytes32)":{"params":{"_orderId":"The ID of the order."},"returns":{"_0":"Order The order details."}},"isTokenSupported(address)":{"params":{"_token":"The address of the token to check."},"returns":{"_0":"bool the token is supported."}},"refund(uint256,bytes32)":{"details":"Requirements: - Only aggregators can call this function.","params":{"_fee":"The amount to be deducted from the amount to be refunded.","_orderId":"The ID of the transaction."},"returns":{"_0":"bool the refund is successful."}},"settle(bytes32,bytes32,address,uint64)":{"params":{"_liquidityProvider":"The address of the liquidity provider.","_orderId":"The ID of the transaction.","_settlePercent":"The rate at which the transaction is settled.","_splitOrderId":"The ID of the split order."},"returns":{"_0":"bool the settlement is successful."}}},"title":"IGateway","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"createOrder(address,uint256,uint96,address,uint256,address,string)":"809804f7","getFeeDetails()":"b810c636","getOrderInfo(bytes32)":"768c6ec0","isTokenSupported(address)":"75151b63","refund(uint256,bytes32)":"71eedb88","settle(bytes32,bytes32,address,uint64)":"f22ee704"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"messageHash\",\"type\":\"string\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"OrderRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"splitOrderId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"liquidityProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"settlePercent\",\"type\":\"uint96\"}],\"name\":\"OrderSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SenderFeeTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"_rate\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"_senderFeeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_senderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"messageHash\",\"type\":\"string\"}],\"name\":\"createOrder\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDetails\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"protocolReward\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"max_bps\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"}],\"name\":\"getOrderInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"senderFeeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"senderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isFulfilled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRefunded\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"currentBPS\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IGateway.Order\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_splitOrderId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_orderId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_liquidityProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_settlePercent\",\"type\":\"uint64\"}],\"name\":\"settle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OrderCreated(address,address,uint256,uint256,bytes32,uint256,string)\":{\"details\":\"Emitted when a deposit is made.\",\"params\":{\"amount\":\"The amount of the deposit.\",\"messageHash\":\"The hash of the message.\",\"orderId\":\"The ID of the order.\",\"rate\":\"The rate at which the deposit is made.\",\"sender\":\"The address of the sender.\",\"token\":\"The address of the deposited token.\"}},\"OrderRefunded(uint256,bytes32)\":{\"details\":\"Emitted when an aggregator refunds a transaction.\",\"params\":{\"fee\":\"The fee deducted from the refund amount.\",\"orderId\":\"The ID of the order.\"}},\"OrderSettled(bytes32,bytes32,address,uint96)\":{\"details\":\"Emitted when an aggregator settles a transaction.\",\"params\":{\"liquidityProvider\":\"The address of the liquidity provider.\",\"orderId\":\"The ID of the order.\",\"settlePercent\":\"The percentage at which the transaction is settled.\",\"splitOrderId\":\"The ID of the split order.\"}},\"SenderFeeTransferred(address,uint256)\":{\"details\":\"Emitted when the sender's fee is transferred.\",\"params\":{\"amount\":\"The amount of the fee transferred.\",\"sender\":\"The address of the sender.\"}}},\"kind\":\"dev\",\"methods\":{\"createOrder(address,uint256,uint96,address,uint256,address,string)\":{\"details\":\"Requirements: - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call. - `_token` must be an acceptable token. See {isTokenSupported}. - `amount` must be greater than minimum. - `_refundAddress` refund address must not be zero address.\",\"params\":{\"_amount\":\"The amount in the decimal of `_token` to be locked.\",\"_rate\":\"The rate at which the sender intends to sell `_amount` of `_token`.\",\"_refundAddress\":\"The address that will receive `_amount` in `_token` when there is a need to refund.\",\"_senderFee\":\"The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\",\"_senderFeeRecipient\":\"The address that will receive `_senderFee` in `_token`.\",\"_token\":\"The address of the token.\",\"messageHash\":\"The hash of the message.\"},\"returns\":{\"_orderId\":\"The ID of the order.\"}},\"getFeeDetails()\":{\"returns\":{\"max_bps\":\"The maximum basis points.\",\"protocolReward\":\"The protocol reward amount.\"}},\"getOrderInfo(bytes32)\":{\"params\":{\"_orderId\":\"The ID of the order.\"},\"returns\":{\"_0\":\"Order The order details.\"}},\"isTokenSupported(address)\":{\"params\":{\"_token\":\"The address of the token to check.\"},\"returns\":{\"_0\":\"bool the token is supported.\"}},\"refund(uint256,bytes32)\":{\"details\":\"Requirements: - Only aggregators can call this function.\",\"params\":{\"_fee\":\"The amount to be deducted from the amount to be refunded.\",\"_orderId\":\"The ID of the transaction.\"},\"returns\":{\"_0\":\"bool the refund is successful.\"}},\"settle(bytes32,bytes32,address,uint64)\":{\"params\":{\"_liquidityProvider\":\"The address of the liquidity provider.\",\"_orderId\":\"The ID of the transaction.\",\"_settlePercent\":\"The rate at which the transaction is settled.\",\"_splitOrderId\":\"The ID of the split order.\"},\"returns\":{\"_0\":\"bool the settlement is successful.\"}}},\"title\":\"IGateway\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createOrder(address,uint256,uint96,address,uint256,address,string)\":{\"notice\":\"Locks the sender's amount of token into Gateway.\"},\"getFeeDetails()\":{\"notice\":\"Gets the fee details of Gateway.\"},\"getOrderInfo(bytes32)\":{\"notice\":\"Gets the details of an order.\"},\"isTokenSupported(address)\":{\"notice\":\"Checks if a token is supported by Gateway.\"},\"refund(uint256,bytes32)\":{\"notice\":\"Refunds to the specified refundable address.\"},\"settle(bytes32,bytes32,address,uint64)\":{\"notice\":\"Settles a transaction and distributes rewards accordingly.\"}},\"notice\":\"Interface for the Gateway contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"contracts/interfaces/IGateway.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.18;\\n\\nimport {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';\\n\\n/**\\n * @title IGateway\\n * @notice Interface for the Gateway contract.\\n */\\ninterface IGateway {\\n\\t/* ##################################################################\\n EVENTS\\n ################################################################## */\\n\\t/**\\n\\t * @dev Emitted when a deposit is made.\\n\\t * @param sender The address of the sender.\\n\\t * @param token The address of the deposited token.\\n\\t * @param amount The amount of the deposit.\\n\\t * @param orderId The ID of the order.\\n\\t * @param rate The rate at which the deposit is made.\\n\\t * @param messageHash The hash of the message.\\n\\t */\\n\\tevent OrderCreated(\\n\\t\\taddress indexed sender,\\n\\t\\taddress indexed token,\\n\\t\\tuint256 indexed amount,\\n\\t\\tuint256 protocolFee,\\n\\t\\tbytes32 orderId,\\n\\t\\tuint256 rate,\\n\\t\\tstring messageHash\\n\\t);\\n\\n\\t/**\\n\\t * @dev Emitted when an aggregator settles a transaction.\\n\\t * @param splitOrderId The ID of the split order.\\n\\t * @param orderId The ID of the order.\\n\\t * @param liquidityProvider The address of the liquidity provider.\\n\\t * @param settlePercent The percentage at which the transaction is settled.\\n\\t */\\n\\tevent OrderSettled(\\n\\t\\tbytes32 splitOrderId,\\n\\t\\tbytes32 indexed orderId,\\n\\t\\taddress indexed liquidityProvider,\\n\\t\\tuint96 settlePercent\\n\\t);\\n\\n\\t/**\\n\\t * @dev Emitted when an aggregator refunds a transaction.\\n\\t * @param fee The fee deducted from the refund amount.\\n\\t * @param orderId The ID of the order.\\n\\t */\\n\\tevent OrderRefunded(uint256 fee, bytes32 indexed orderId);\\n\\n\\t/**\\n\\t * @dev Emitted when the sender's fee is transferred.\\n\\t * @param sender The address of the sender.\\n\\t * @param amount The amount of the fee transferred.\\n\\t */\\n\\tevent SenderFeeTransferred(address indexed sender, uint256 indexed amount);\\n\\n\\t/* ##################################################################\\n STRUCTS\\n ################################################################## */\\n\\t/**\\n\\t * @dev Struct representing an order.\\n\\t * @param sender The address of the sender.\\n\\t * @param token The address of the token.\\n\\t * @param senderFeeRecipient The address of the sender fee recipient.\\n\\t * @param senderFee The fee to be paid to the sender fee recipient.\\n\\t * @param protocolFee The protocol fee to be paid.\\n\\t * @param isFulfilled Whether the order is fulfilled.\\n\\t * @param isRefunded Whether the order is refunded.\\n\\t * @param refundAddress The address to which the refund is made.\\n\\t * @param currentBPS The current basis points.\\n\\t * @param amount The amount of the order.\\n\\t */\\n\\tstruct Order {\\n\\t\\taddress sender;\\n\\t\\taddress token;\\n\\t\\taddress senderFeeRecipient;\\n\\t\\tuint256 senderFee;\\n\\t\\tuint256 protocolFee;\\n\\t\\tbool isFulfilled;\\n\\t\\tbool isRefunded;\\n\\t\\taddress refundAddress;\\n\\t\\tuint96 currentBPS;\\n\\t\\tuint256 amount;\\n\\t}\\n\\n\\t/* ##################################################################\\n EXTERNAL CALLS\\n ################################################################## */\\n\\t/**\\n\\t * @notice Locks the sender's amount of token into Gateway.\\n\\t * @dev Requirements:\\n\\t * - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\\n\\t * - `_token` must be an acceptable token. See {isTokenSupported}.\\n\\t * - `amount` must be greater than minimum.\\n\\t * - `_refundAddress` refund address must not be zero address.\\n\\t * @param _token The address of the token.\\n\\t * @param _amount The amount in the decimal of `_token` to be locked.\\n\\t * @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\\n\\t * @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\\n\\t * @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\\n\\t * @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\\n\\t * @param messageHash The hash of the message.\\n\\t * @return _orderId The ID of the order.\\n\\t */\\n\\tfunction createOrder(\\n\\t\\taddress _token,\\n\\t\\tuint256 _amount,\\n\\t\\tuint96 _rate,\\n\\t\\taddress _senderFeeRecipient,\\n\\t\\tuint256 _senderFee,\\n\\t\\taddress _refundAddress,\\n\\t\\tstring calldata messageHash\\n\\t) external returns (bytes32 _orderId);\\n\\n\\t/**\\n\\t * @notice Settles a transaction and distributes rewards accordingly.\\n\\t * @param _splitOrderId The ID of the split order.\\n\\t * @param _orderId The ID of the transaction.\\n\\t * @param _liquidityProvider The address of the liquidity provider.\\n\\t * @param _settlePercent The rate at which the transaction is settled.\\n\\t * @return bool the settlement is successful.\\n\\t */\\n\\tfunction settle(\\n\\t\\tbytes32 _splitOrderId,\\n\\t\\tbytes32 _orderId,\\n\\t\\taddress _liquidityProvider,\\n\\t\\tuint64 _settlePercent\\n\\t) external returns (bool);\\n\\n\\t/**\\n\\t * @notice Refunds to the specified refundable address.\\n\\t * @dev Requirements:\\n\\t * - Only aggregators can call this function.\\n\\t * @param _fee The amount to be deducted from the amount to be refunded.\\n\\t * @param _orderId The ID of the transaction.\\n\\t * @return bool the refund is successful.\\n\\t */\\n\\tfunction refund(uint256 _fee, bytes32 _orderId) external returns (bool);\\n\\n\\t/**\\n\\t * @notice Checks if a token is supported by Gateway.\\n\\t * @param _token The address of the token to check.\\n\\t * @return bool the token is supported.\\n\\t */\\n\\tfunction isTokenSupported(address _token) external view returns (bool);\\n\\n\\t/**\\n\\t * @notice Gets the details of an order.\\n\\t * @param _orderId The ID of the order.\\n\\t * @return Order The order details.\\n\\t */\\n\\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory);\\n\\n\\t/**\\n\\t * @notice Gets the fee details of Gateway.\\n\\t * @return protocolReward The protocol reward amount.\\n\\t * @return max_bps The maximum basis points.\\n\\t */\\n\\tfunction getFeeDetails() external view returns (uint64 protocolReward, uint256 max_bps);\\n}\\n\",\"keccak256\":\"0x356dde777ccf9a99b942382774515f4a18978e782d35cd02019a6a48c0dd53e9\",\"license\":\"UNLICENSED\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"createOrder(address,uint256,uint96,address,uint256,address,string)":{"notice":"Locks the sender's amount of token into Gateway."},"getFeeDetails()":{"notice":"Gets the fee details of Gateway."},"getOrderInfo(bytes32)":{"notice":"Gets the details of an order."},"isTokenSupported(address)":{"notice":"Checks if a token is supported by Gateway."},"refund(uint256,bytes32)":{"notice":"Refunds to the specified refundable address."},"settle(bytes32,bytes32,address,uint64)":{"notice":"Settles a transaction and distributes rewards accordingly."}},"notice":"Interface for the Gateway contract.","version":1}}}}}} \ No newline at end of file diff --git a/artifacts/contracts/Gateway.sol/Gateway.dbg.json b/artifacts/contracts/Gateway.sol/Gateway.dbg.json index 37ab592..b22184b 100644 --- a/artifacts/contracts/Gateway.sol/Gateway.dbg.json +++ b/artifacts/contracts/Gateway.sol/Gateway.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/fa700a78f436b6502082c7497f88c048.json" + "buildInfo": "../../build-info/f2f315820550fce3188425b80157c6c8.json" } diff --git a/artifacts/contracts/Gateway.sol/Gateway.json b/artifacts/contracts/Gateway.sol/Gateway.json index 98cd8e1..f07558c 100644 --- a/artifacts/contracts/Gateway.sol/Gateway.json +++ b/artifacts/contracts/Gateway.sol/Gateway.json @@ -630,8 +630,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d2565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000175565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620000ec5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e39190620001b5565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015d602783620000ee565b91506200016a82620000ff565b604082019050919050565b6000602082019050818103600083015262000190816200014e565b9050919050565b600060ff82169050919050565b620001af8162000197565b82525050565b6000602082019050620001cc6000830184620001a4565b92915050565b61383a80620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612557565b610338565b005b61015b600480360381019061015691906125d7565b610600565b005b61016561066b565b604051610172919061261f565b60405180910390f35b610183610682565b005b61019f600480360381019061019a9190612670565b610696565b6040516101ac919061261f565b60405180910390f35b6101cf60048036038101906101ca91906126b0565b610b2b565b6040516101dc919061261f565b60405180910390f35b6101ff60048036038101906101fa91906126dd565b610b87565b60405161020c919061282a565b60405180910390f35b61021d610d9f565b005b610239600480360381019061023491906128d7565b610e2c565b60405161024691906129a8565b60405180910390f35b610257611361565b005b6102616114b1565b005b61026b6114c3565b60405161027891906129d2565b60405180910390f35b6102896114ed565b604051610297929190612a0b565b60405180910390f35b6102ba60048036038101906102b59190612a34565b611512565b005b6102c4611697565b6040516102d191906129d2565b60405180910390f35b6102f460048036038101906102ef9190612a87565b6116c1565b604051610301919061261f565b60405180910390f35b610324600480360381019061031f91906126b0565b611d24565b005b61032e611dd1565b610336611e4f565b565b610340611dd1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b4b565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bdd565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c6f565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611dd1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c8f565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611dd1565b6106946000611eb2565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cf6565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d62565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dce565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e3a565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e5a565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612eaf565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109d09190612f0b565b6109da9190612f3f565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a879190612f0b565b6040518363ffffffff1660e01b8152600401610aa4929190612e5a565b6020604051808303816000875af1158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190612eaf565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b189190612f73565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b7d5760019050610b82565b600090505b919050565b610b8f6123fc565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610da9611ee3565b90508073ffffffffffffffffffffffffffffffffffffffff16610dca611697565b73ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613000565b60405180910390fd5b610e2981611eb2565b50565b6000610e36611eeb565b610e438989868989611f35565b60008383905003610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e809061306c565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610eb39190612f0b565b6040518463ffffffff1660e01b8152600401610ed19392919061308c565b6020604051808303816000875af1158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f149190612eaf565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f66906130c3565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fbe929190612e5a565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a611007919061310b565b611011919061317c565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161134c959493929190613235565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113925750600160008054906101000a900460ff1660ff16105b806113bf57506113a1306120e8565b1580156113be5750600160008054906101000a900460ff1660ff16145b5b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f5906132f5565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561143b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061144d61210b565b611455612164565b80156114ae5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114a5919061335d565b60405180910390a15b50565b6114b9611dd1565b6114c16121bd565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61151a611dd1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612b4b565b60405180910390fd5b60018114806115985750600281145b6115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce906133c4565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116925780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116899190612f73565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612cf6565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612d62565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181290612dce565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661189d91906133e4565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611aef57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611aee5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a19929190612e5a565b6020604051808303816000875af1158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190612eaf565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b20919061310b565b611b2a919061317c565b90508060ff60008881526020019081526020016000206007016000828254611b529190612f3f565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b8a919061310b565b611b94919061317c565b90508082611ba29190612f3f565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c01929190612e5a565b6020604051808303816000875af1158015611c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c449190612eaf565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c80929190612e5a565b6020604051808303816000875af1158015611c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc39190612eaf565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d0d929190613455565b60405180910390a360019350505050949350505050565b611d2c611dd1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d8c6114c3565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611dd9611ee3565b73ffffffffffffffffffffffffffffffffffffffff16611df76114c3565b73ffffffffffffffffffffffffffffffffffffffff1614611e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e44906134ca565b60405180910390fd5b565b611e57612220565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e9b611ee3565b604051611ea891906129d2565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ee081612269565b50565b600033905090565b611ef361066b565b15611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613536565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae906135a2565b60405180910390fd5b60008403611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff19061360e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612069576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120609061367a565b60405180910390fd5b600081146120e157600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906136e6565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff1661215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190613778565b60405180910390fd5b61216261232f565b565b600060019054906101000a900460ff166121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613778565b60405180910390fd5b6121bb612390565b565b6121c5611eeb565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612209611ee3565b60405161221691906129d2565b60405180910390a1565b61222861066b565b612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e906137e4565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237590613778565b60405180910390fd5b61238e612389611ee3565b611eb2565b565b600060019054906101000a900460ff166123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613778565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124d6816124c3565b81146124e157600080fd5b50565b6000813590506124f3816124cd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612524826124f9565b9050919050565b61253481612519565b811461253f57600080fd5b50565b6000813590506125518161252b565b92915050565b6000806040838503121561256e5761256d6124b9565b5b600061257c858286016124e4565b925050602061258d85828601612542565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125b481612597565b81146125bf57600080fd5b50565b6000813590506125d1816125ab565b92915050565b6000602082840312156125ed576125ec6124b9565b5b60006125fb848285016125c2565b91505092915050565b60008115159050919050565b61261981612604565b82525050565b60006020820190506126346000830184612610565b92915050565b6000819050919050565b61264d8161263a565b811461265857600080fd5b50565b60008135905061266a81612644565b92915050565b60008060408385031215612687576126866124b9565b5b60006126958582860161265b565b92505060206126a6858286016124e4565b9150509250929050565b6000602082840312156126c6576126c56124b9565b5b60006126d484828501612542565b91505092915050565b6000602082840312156126f3576126f26124b9565b5b6000612701848285016124e4565b91505092915050565b61271381612519565b82525050565b6127228161263a565b82525050565b61273181612604565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61275881612737565b82525050565b61014082016000820151612775600085018261270a565b506020820151612788602085018261270a565b50604082015161279b604085018261270a565b5060608201516127ae6060850182612719565b5060808201516127c16080850182612719565b5060a08201516127d460a0850182612728565b5060c08201516127e760c0850182612728565b5060e08201516127fa60e085018261270a565b5061010082015161280f61010085018261274f565b50610120820151612824610120850182612719565b50505050565b600061014082019050612840600083018461275e565b92915050565b61284f81612737565b811461285a57600080fd5b50565b60008135905061286c81612846565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261289757612896612872565b5b8235905067ffffffffffffffff8111156128b4576128b3612877565b5b6020830191508360018202830111156128d0576128cf61287c565b5b9250929050565b60008060008060008060008060e0898b0312156128f7576128f66124b9565b5b60006129058b828c01612542565b98505060206129168b828c0161265b565b97505060406129278b828c0161285d565b96505060606129388b828c01612542565b95505060806129498b828c0161265b565b94505060a061295a8b828c01612542565b93505060c089013567ffffffffffffffff81111561297b5761297a6124be565b5b6129878b828c01612881565b92509250509295985092959890939650565b6129a2816124c3565b82525050565b60006020820190506129bd6000830184612999565b92915050565b6129cc81612519565b82525050565b60006020820190506129e760008301846129c3565b92915050565b6129f681612597565b82525050565b612a058161263a565b82525050565b6000604082019050612a2060008301856129ed565b612a2d60208301846129fc565b9392505050565b600080600060608486031215612a4d57612a4c6124b9565b5b6000612a5b868287016124e4565b9350506020612a6c86828701612542565b9250506040612a7d8682870161265b565b9150509250925092565b60008060008060808587031215612aa157612aa06124b9565b5b6000612aaf878288016124e4565b9450506020612ac0878288016124e4565b9350506040612ad187828801612542565b9250506060612ae2878288016125c2565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b35601583612aee565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612bc7602583612aee565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c59602783612aee565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b6000602082019050612ca460008301846129ed565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612ce0600e83612aee565b9150612ceb82612caa565b602082019050919050565b60006020820190508181036000830152612d0f81612cd3565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d4c600e83612aee565b9150612d5782612d16565b602082019050919050565b60006020820190508181036000830152612d7b81612d3f565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612db8600d83612aee565b9150612dc382612d82565b602082019050919050565b60006020820190508181036000830152612de781612dab565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e24601583612aee565b9150612e2f82612dee565b602082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b6000604082019050612e6f60008301856129c3565b612e7c60208301846129fc565b9392505050565b612e8c81612604565b8114612e9757600080fd5b50565b600081519050612ea981612e83565b92915050565b600060208284031215612ec557612ec46124b9565b5b6000612ed384828501612e9a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f168261263a565b9150612f218361263a565b9250828201905080821115612f3957612f38612edc565b5b92915050565b6000612f4a8261263a565b9150612f558361263a565b9250828203905081811115612f6d57612f6c612edc565b5b92915050565b6000602082019050612f8860008301846129fc565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fea602983612aee565b9150612ff582612f8e565b604082019050919050565b6000602082019050818103600083015261301981612fdd565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613056601283612aee565b915061306182613020565b602082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b60006060820190506130a160008301866129c3565b6130ae60208301856129c3565b6130bb60408301846129fc565b949350505050565b60006130ce8261263a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613100576130ff612edc565b5b600182019050919050565b60006131168261263a565b91506131218361263a565b925082820261312f8161263a565b9150828204841483151761314657613145612edc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131878261263a565b91506131928361263a565b9250826131a2576131a161314d565b5b828204905092915050565b6000819050919050565b60006131d26131cd6131c884612737565b6131ad565b61263a565b9050919050565b6131e2816131b7565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132148385612aee565b93506132218385846131e8565b61322a836131f7565b840190509392505050565b600060808201905061324a60008301886129fc565b6132576020830187612999565b61326460408301866131d9565b8181036060830152613277818486613208565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132df602e83612aee565b91506132ea82613283565b604082019050919050565b6000602082019050818103600083015261330e816132d2565b9050919050565b6000819050919050565b600060ff82169050919050565b600061334761334261333d84613315565b6131ad565b61331f565b9050919050565b6133578161332c565b82525050565b6000602082019050613372600083018461334e565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133ae601783612aee565b91506133b982613378565b602082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b60006133ef82612737565b91506133fa83612737565b925082820390506bffffffffffffffffffffffff81111561341e5761341d612edc565b5b92915050565b600061343f61343a61343584612597565b6131ad565b612737565b9050919050565b61344f81613424565b82525050565b600060408201905061346a6000830185612999565b6134776020830184613446565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134b4602083612aee565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613520601083612aee565b915061352b826134ea565b602082019050919050565b6000602082019050818103600083015261354f81613513565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061358c601183612aee565b915061359782613556565b602082019050919050565b600060208201905081810360008301526135bb8161357f565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135f8600c83612aee565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613664601083612aee565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136d0601983612aee565b91506136db8261369a565b602082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613762602b83612aee565b915061376d82613706565b604082019050919050565b6000602082019050818103600083015261379181613755565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ce601483612aee565b91506137d982613798565b602082019050919050565b600060208201905081810360008301526137fd816137c1565b905091905056fea26469706673582212200707fb304e8ea6f8b3604939869880c9d68cbd3b76f6e1bdc707337494c6f40b64736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612557565b610338565b005b61015b600480360381019061015691906125d7565b610600565b005b61016561066b565b604051610172919061261f565b60405180910390f35b610183610682565b005b61019f600480360381019061019a9190612670565b610696565b6040516101ac919061261f565b60405180910390f35b6101cf60048036038101906101ca91906126b0565b610b2b565b6040516101dc919061261f565b60405180910390f35b6101ff60048036038101906101fa91906126dd565b610b87565b60405161020c919061282a565b60405180910390f35b61021d610d9f565b005b610239600480360381019061023491906128d7565b610e2c565b60405161024691906129a8565b60405180910390f35b610257611361565b005b6102616114b1565b005b61026b6114c3565b60405161027891906129d2565b60405180910390f35b6102896114ed565b604051610297929190612a0b565b60405180910390f35b6102ba60048036038101906102b59190612a34565b611512565b005b6102c4611697565b6040516102d191906129d2565b60405180910390f35b6102f460048036038101906102ef9190612a87565b6116c1565b604051610301919061261f565b60405180910390f35b610324600480360381019061031f91906126b0565b611d24565b005b61032e611dd1565b610336611e4f565b565b610340611dd1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b4b565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bdd565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c6f565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611dd1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c8f565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611dd1565b6106946000611eb2565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cf6565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d62565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dce565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e3a565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e5a565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612eaf565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109d09190612f0b565b6109da9190612f3f565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a879190612f0b565b6040518363ffffffff1660e01b8152600401610aa4929190612e5a565b6020604051808303816000875af1158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190612eaf565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b189190612f73565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b7d5760019050610b82565b600090505b919050565b610b8f6123fc565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610da9611ee3565b90508073ffffffffffffffffffffffffffffffffffffffff16610dca611697565b73ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613000565b60405180910390fd5b610e2981611eb2565b50565b6000610e36611eeb565b610e438989868989611f35565b60008383905003610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e809061306c565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610eb39190612f0b565b6040518463ffffffff1660e01b8152600401610ed19392919061308c565b6020604051808303816000875af1158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f149190612eaf565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f66906130c3565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fbe929190612e5a565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a611007919061310b565b611011919061317c565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161134c959493929190613235565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113925750600160008054906101000a900460ff1660ff16105b806113bf57506113a1306120e8565b1580156113be5750600160008054906101000a900460ff1660ff16145b5b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f5906132f5565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561143b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061144d61210b565b611455612164565b80156114ae5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114a5919061335d565b60405180910390a15b50565b6114b9611dd1565b6114c16121bd565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61151a611dd1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612b4b565b60405180910390fd5b60018114806115985750600281145b6115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce906133c4565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116925780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116899190612f73565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612cf6565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612d62565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181290612dce565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661189d91906133e4565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611aef57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611aee5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a19929190612e5a565b6020604051808303816000875af1158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190612eaf565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b20919061310b565b611b2a919061317c565b90508060ff60008881526020019081526020016000206007016000828254611b529190612f3f565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b8a919061310b565b611b94919061317c565b90508082611ba29190612f3f565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c01929190612e5a565b6020604051808303816000875af1158015611c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c449190612eaf565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c80929190612e5a565b6020604051808303816000875af1158015611c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc39190612eaf565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d0d929190613455565b60405180910390a360019350505050949350505050565b611d2c611dd1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d8c6114c3565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611dd9611ee3565b73ffffffffffffffffffffffffffffffffffffffff16611df76114c3565b73ffffffffffffffffffffffffffffffffffffffff1614611e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e44906134ca565b60405180910390fd5b565b611e57612220565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e9b611ee3565b604051611ea891906129d2565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ee081612269565b50565b600033905090565b611ef361066b565b15611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613536565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae906135a2565b60405180910390fd5b60008403611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff19061360e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612069576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120609061367a565b60405180910390fd5b600081146120e157600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906136e6565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff1661215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190613778565b60405180910390fd5b61216261232f565b565b600060019054906101000a900460ff166121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613778565b60405180910390fd5b6121bb612390565b565b6121c5611eeb565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612209611ee3565b60405161221691906129d2565b60405180910390a1565b61222861066b565b612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e906137e4565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237590613778565b60405180910390fd5b61238e612389611ee3565b611eb2565b565b600060019054906101000a900460ff166123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613778565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124d6816124c3565b81146124e157600080fd5b50565b6000813590506124f3816124cd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612524826124f9565b9050919050565b61253481612519565b811461253f57600080fd5b50565b6000813590506125518161252b565b92915050565b6000806040838503121561256e5761256d6124b9565b5b600061257c858286016124e4565b925050602061258d85828601612542565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125b481612597565b81146125bf57600080fd5b50565b6000813590506125d1816125ab565b92915050565b6000602082840312156125ed576125ec6124b9565b5b60006125fb848285016125c2565b91505092915050565b60008115159050919050565b61261981612604565b82525050565b60006020820190506126346000830184612610565b92915050565b6000819050919050565b61264d8161263a565b811461265857600080fd5b50565b60008135905061266a81612644565b92915050565b60008060408385031215612687576126866124b9565b5b60006126958582860161265b565b92505060206126a6858286016124e4565b9150509250929050565b6000602082840312156126c6576126c56124b9565b5b60006126d484828501612542565b91505092915050565b6000602082840312156126f3576126f26124b9565b5b6000612701848285016124e4565b91505092915050565b61271381612519565b82525050565b6127228161263a565b82525050565b61273181612604565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61275881612737565b82525050565b61014082016000820151612775600085018261270a565b506020820151612788602085018261270a565b50604082015161279b604085018261270a565b5060608201516127ae6060850182612719565b5060808201516127c16080850182612719565b5060a08201516127d460a0850182612728565b5060c08201516127e760c0850182612728565b5060e08201516127fa60e085018261270a565b5061010082015161280f61010085018261274f565b50610120820151612824610120850182612719565b50505050565b600061014082019050612840600083018461275e565b92915050565b61284f81612737565b811461285a57600080fd5b50565b60008135905061286c81612846565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261289757612896612872565b5b8235905067ffffffffffffffff8111156128b4576128b3612877565b5b6020830191508360018202830111156128d0576128cf61287c565b5b9250929050565b60008060008060008060008060e0898b0312156128f7576128f66124b9565b5b60006129058b828c01612542565b98505060206129168b828c0161265b565b97505060406129278b828c0161285d565b96505060606129388b828c01612542565b95505060806129498b828c0161265b565b94505060a061295a8b828c01612542565b93505060c089013567ffffffffffffffff81111561297b5761297a6124be565b5b6129878b828c01612881565b92509250509295985092959890939650565b6129a2816124c3565b82525050565b60006020820190506129bd6000830184612999565b92915050565b6129cc81612519565b82525050565b60006020820190506129e760008301846129c3565b92915050565b6129f681612597565b82525050565b612a058161263a565b82525050565b6000604082019050612a2060008301856129ed565b612a2d60208301846129fc565b9392505050565b600080600060608486031215612a4d57612a4c6124b9565b5b6000612a5b868287016124e4565b9350506020612a6c86828701612542565b9250506040612a7d8682870161265b565b9150509250925092565b60008060008060808587031215612aa157612aa06124b9565b5b6000612aaf878288016124e4565b9450506020612ac0878288016124e4565b9350506040612ad187828801612542565b9250506060612ae2878288016125c2565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b35601583612aee565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612bc7602583612aee565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c59602783612aee565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b6000602082019050612ca460008301846129ed565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612ce0600e83612aee565b9150612ceb82612caa565b602082019050919050565b60006020820190508181036000830152612d0f81612cd3565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d4c600e83612aee565b9150612d5782612d16565b602082019050919050565b60006020820190508181036000830152612d7b81612d3f565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612db8600d83612aee565b9150612dc382612d82565b602082019050919050565b60006020820190508181036000830152612de781612dab565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e24601583612aee565b9150612e2f82612dee565b602082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b6000604082019050612e6f60008301856129c3565b612e7c60208301846129fc565b9392505050565b612e8c81612604565b8114612e9757600080fd5b50565b600081519050612ea981612e83565b92915050565b600060208284031215612ec557612ec46124b9565b5b6000612ed384828501612e9a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f168261263a565b9150612f218361263a565b9250828201905080821115612f3957612f38612edc565b5b92915050565b6000612f4a8261263a565b9150612f558361263a565b9250828203905081811115612f6d57612f6c612edc565b5b92915050565b6000602082019050612f8860008301846129fc565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fea602983612aee565b9150612ff582612f8e565b604082019050919050565b6000602082019050818103600083015261301981612fdd565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613056601283612aee565b915061306182613020565b602082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b60006060820190506130a160008301866129c3565b6130ae60208301856129c3565b6130bb60408301846129fc565b949350505050565b60006130ce8261263a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613100576130ff612edc565b5b600182019050919050565b60006131168261263a565b91506131218361263a565b925082820261312f8161263a565b9150828204841483151761314657613145612edc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131878261263a565b91506131928361263a565b9250826131a2576131a161314d565b5b828204905092915050565b6000819050919050565b60006131d26131cd6131c884612737565b6131ad565b61263a565b9050919050565b6131e2816131b7565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132148385612aee565b93506132218385846131e8565b61322a836131f7565b840190509392505050565b600060808201905061324a60008301886129fc565b6132576020830187612999565b61326460408301866131d9565b8181036060830152613277818486613208565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132df602e83612aee565b91506132ea82613283565b604082019050919050565b6000602082019050818103600083015261330e816132d2565b9050919050565b6000819050919050565b600060ff82169050919050565b600061334761334261333d84613315565b6131ad565b61331f565b9050919050565b6133578161332c565b82525050565b6000602082019050613372600083018461334e565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133ae601783612aee565b91506133b982613378565b602082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b60006133ef82612737565b91506133fa83612737565b925082820390506bffffffffffffffffffffffff81111561341e5761341d612edc565b5b92915050565b600061343f61343a61343584612597565b6131ad565b612737565b9050919050565b61344f81613424565b82525050565b600060408201905061346a6000830185612999565b6134776020830184613446565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134b4602083612aee565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613520601083612aee565b915061352b826134ea565b602082019050919050565b6000602082019050818103600083015261354f81613513565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061358c601183612aee565b915061359782613556565b602082019050919050565b600060208201905081810360008301526135bb8161357f565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135f8600c83612aee565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613664601083612aee565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136d0601983612aee565b91506136db8261369a565b602082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613762602b83612aee565b915061376d82613706565b604082019050919050565b6000602082019050818103600083015261379181613755565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ce601483612aee565b91506137d982613798565b602082019050919050565b600060208201905081810360008301526137fd816137c1565b905091905056fea26469706673582212200707fb304e8ea6f8b3604939869880c9d68cbd3b76f6e1bdc707337494c6f40b64736f6c63430008120033", + "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d2565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000175565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620000ec5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e39190620001b5565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015d602783620000ee565b91506200016a82620000ff565b604082019050919050565b6000602082019050818103600083015262000190816200014e565b9050919050565b600060ff82169050919050565b620001af8162000197565b82525050565b6000602082019050620001cc6000830184620001a4565b92915050565b61381980620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612536565b610338565b005b61015b600480360381019061015691906125b6565b610600565b005b61016561066b565b60405161017291906125fe565b60405180910390f35b610183610682565b005b61019f600480360381019061019a919061264f565b610696565b6040516101ac91906125fe565b60405180910390f35b6101cf60048036038101906101ca919061268f565b610b0a565b6040516101dc91906125fe565b60405180910390f35b6101ff60048036038101906101fa91906126bc565b610b66565b60405161020c9190612809565b60405180910390f35b61021d610d7e565b005b610239600480360381019061023491906128b6565b610e0b565b6040516102469190612987565b60405180910390f35b610257611340565b005b610261611490565b005b61026b6114a2565b60405161027891906129b1565b60405180910390f35b6102896114cc565b6040516102979291906129ea565b60405180910390f35b6102ba60048036038101906102b59190612a13565b6114f1565b005b6102c4611676565b6040516102d191906129b1565b60405180910390f35b6102f460048036038101906102ef9190612a66565b6116a0565b60405161030191906125fe565b60405180910390f35b610324600480360381019061031f919061268f565b611d03565b005b61032e611db0565b610336611e2e565b565b610340611db0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b2a565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bbc565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c4e565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611db0565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c6e565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611db0565b6106946000611e91565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cd5565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d41565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dad565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e19565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e39565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612e8e565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109b99190612eea565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a669190612f1e565b6040518363ffffffff1660e01b8152600401610a83929190612e39565b6020604051808303816000875af1158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190612e8e565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610af79190612f52565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b5c5760019050610b61565b600090505b919050565b610b6e6123db565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610d88611ec2565b90508073ffffffffffffffffffffffffffffffffffffffff16610da9611676565b73ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612fdf565b60405180910390fd5b610e0881611e91565b50565b6000610e15611eca565b610e228989868989611f14565b60008383905003610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061304b565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610e929190612f1e565b6040518463ffffffff1660e01b8152600401610eb09392919061306b565b6020604051808303816000875af1158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190612e8e565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f45906130a2565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610f9d929190612e39565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a610fe691906130ea565b610ff0919061315b565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161132b959493929190613214565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113715750600160008054906101000a900460ff1660ff16105b8061139e5750611380306120c7565b15801561139d5750600160008054906101000a900460ff1660ff16145b5b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906132d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561141a576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061142c6120ea565b611434612143565b801561148d5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051611484919061333c565b60405180910390a15b50565b611498611db0565b6114a061219c565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b6114f9611db0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b2a565b60405180910390fd5b60018114806115775750600281145b6115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906133a3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116715780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116689190612f52565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612cd5565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612d41565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff16156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612dad565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661187c91906133c3565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ace57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611acd5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b81526004016119f8929190612e39565b6020604051808303816000875af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190612e8e565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611aff91906130ea565b611b09919061315b565b90508060ff60008881526020019081526020016000206007016000828254611b319190612eea565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b6991906130ea565b611b73919061315b565b90508082611b819190612eea565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611be0929190612e39565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190612e8e565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c5f929190612e39565b6020604051808303816000875af1158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190612e8e565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611cec929190613434565b60405180910390a360019350505050949350505050565b611d0b611db0565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d6b6114a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611db8611ec2565b73ffffffffffffffffffffffffffffffffffffffff16611dd66114a2565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906134a9565b60405180910390fd5b565b611e366121ff565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e7a611ec2565b604051611e8791906129b1565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ebf81612248565b50565b600033905090565b611ed261066b565b15611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990613515565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613581565b60405180910390fd5b60008403611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd0906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613659565b60405180910390fd5b600081146120c057600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6906136c5565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613757565b60405180910390fd5b61214161230e565b565b600060019054906101000a900460ff16612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613757565b60405180910390fd5b61219a61236f565b565b6121a4611eca565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121e8611ec2565b6040516121f591906129b1565b60405180910390a1565b61220761066b565b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906137c3565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235490613757565b60405180910390fd5b61236d612368611ec2565b611e91565b565b600060019054906101000a900460ff166123be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b590613757565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124b5816124a2565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000806040838503121561254d5761254c612498565b5b600061255b858286016124c3565b925050602061256c85828601612521565b9150509250929050565b600067ffffffffffffffff82169050919050565b61259381612576565b811461259e57600080fd5b50565b6000813590506125b08161258a565b92915050565b6000602082840312156125cc576125cb612498565b5b60006125da848285016125a1565b91505092915050565b60008115159050919050565b6125f8816125e3565b82525050565b600060208201905061261360008301846125ef565b92915050565b6000819050919050565b61262c81612619565b811461263757600080fd5b50565b60008135905061264981612623565b92915050565b6000806040838503121561266657612665612498565b5b60006126748582860161263a565b9250506020612685858286016124c3565b9150509250929050565b6000602082840312156126a5576126a4612498565b5b60006126b384828501612521565b91505092915050565b6000602082840312156126d2576126d1612498565b5b60006126e0848285016124c3565b91505092915050565b6126f2816124f8565b82525050565b61270181612619565b82525050565b612710816125e3565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61273781612716565b82525050565b6101408201600082015161275460008501826126e9565b50602082015161276760208501826126e9565b50604082015161277a60408501826126e9565b50606082015161278d60608501826126f8565b5060808201516127a060808501826126f8565b5060a08201516127b360a0850182612707565b5060c08201516127c660c0850182612707565b5060e08201516127d960e08501826126e9565b506101008201516127ee61010085018261272e565b506101208201516128036101208501826126f8565b50505050565b60006101408201905061281f600083018461273d565b92915050565b61282e81612716565b811461283957600080fd5b50565b60008135905061284b81612825565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261287657612875612851565b5b8235905067ffffffffffffffff81111561289357612892612856565b5b6020830191508360018202830111156128af576128ae61285b565b5b9250929050565b60008060008060008060008060e0898b0312156128d6576128d5612498565b5b60006128e48b828c01612521565b98505060206128f58b828c0161263a565b97505060406129068b828c0161283c565b96505060606129178b828c01612521565b95505060806129288b828c0161263a565b94505060a06129398b828c01612521565b93505060c089013567ffffffffffffffff81111561295a5761295961249d565b5b6129668b828c01612860565b92509250509295985092959890939650565b612981816124a2565b82525050565b600060208201905061299c6000830184612978565b92915050565b6129ab816124f8565b82525050565b60006020820190506129c660008301846129a2565b92915050565b6129d581612576565b82525050565b6129e481612619565b82525050565b60006040820190506129ff60008301856129cc565b612a0c60208301846129db565b9392505050565b600080600060608486031215612a2c57612a2b612498565b5b6000612a3a868287016124c3565b9350506020612a4b86828701612521565b9250506040612a5c8682870161263a565b9150509250925092565b60008060008060808587031215612a8057612a7f612498565b5b6000612a8e878288016124c3565b9450506020612a9f878288016124c3565b9350506040612ab087828801612521565b9250506060612ac1878288016125a1565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b14601583612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612ba6602583612acd565b9150612bb182612b4a565b604082019050919050565b60006020820190508181036000830152612bd581612b99565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c38602783612acd565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000602082019050612c8360008301846129cc565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612cbf600e83612acd565b9150612cca82612c89565b602082019050919050565b60006020820190508181036000830152612cee81612cb2565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d2b600e83612acd565b9150612d3682612cf5565b602082019050919050565b60006020820190508181036000830152612d5a81612d1e565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612d97600d83612acd565b9150612da282612d61565b602082019050919050565b60006020820190508181036000830152612dc681612d8a565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e03601583612acd565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b6000604082019050612e4e60008301856129a2565b612e5b60208301846129db565b9392505050565b612e6b816125e3565b8114612e7657600080fd5b50565b600081519050612e8881612e62565b92915050565b600060208284031215612ea457612ea3612498565b5b6000612eb284828501612e79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef582612619565b9150612f0083612619565b9250828203905081811115612f1857612f17612ebb565b5b92915050565b6000612f2982612619565b9150612f3483612619565b9250828201905080821115612f4c57612f4b612ebb565b5b92915050565b6000602082019050612f6760008301846129db565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fc9602983612acd565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613035601283612acd565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b600060608201905061308060008301866129a2565b61308d60208301856129a2565b61309a60408301846129db565b949350505050565b60006130ad82612619565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130df576130de612ebb565b5b600182019050919050565b60006130f582612619565b915061310083612619565b925082820261310e81612619565b9150828204841483151761312557613124612ebb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612619565b915061317183612619565b9250826131815761318061312c565b5b828204905092915050565b6000819050919050565b60006131b16131ac6131a784612716565b61318c565b612619565b9050919050565b6131c181613196565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006131f38385612acd565b93506132008385846131c7565b613209836131d6565b840190509392505050565b600060808201905061322960008301886129db565b6132366020830187612978565b61324360408301866131b8565b81810360608301526132568184866131e7565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132be602e83612acd565b91506132c982613262565b604082019050919050565b600060208201905081810360008301526132ed816132b1565b9050919050565b6000819050919050565b600060ff82169050919050565b600061332661332161331c846132f4565b61318c565b6132fe565b9050919050565b6133368161330b565b82525050565b6000602082019050613351600083018461332d565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b600061338d601783612acd565b915061339882613357565b602082019050919050565b600060208201905081810360008301526133bc81613380565b9050919050565b60006133ce82612716565b91506133d983612716565b925082820390506bffffffffffffffffffffffff8111156133fd576133fc612ebb565b5b92915050565b600061341e61341961341484612576565b61318c565b612716565b9050919050565b61342e81613403565b82525050565b60006040820190506134496000830185612978565b6134566020830184613425565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613493602083612acd565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134ff601083612acd565b915061350a826134c9565b602082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061356b601183612acd565b915061357682613535565b602082019050919050565b6000602082019050818103600083015261359a8161355e565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135d7600c83612acd565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613643601083612acd565b915061364e8261360d565b602082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136af601983612acd565b91506136ba82613679565b602082019050919050565b600060208201905081810360008301526136de816136a2565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613741602b83612acd565b915061374c826136e5565b604082019050919050565b6000602082019050818103600083015261377081613734565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ad601483612acd565b91506137b882613777565b602082019050919050565b600060208201905081810360008301526137dc816137a0565b905091905056fea26469706673582212207cd069c89fca81913b7fadc08d0724a8e7733532ed2dde3ec1ba0961a69ea46164736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063809804f7116100a2578063b810c63611610071578063b810c63614610281578063cd992400146102a0578063e30c3978146102bc578063f22ee704146102da578063f2fde38b1461030a57610116565b8063809804f71461021f5780638129fc1c1461024f5780638456cb59146102595780638da5cb5b1461026357610116565b8063715018a6116100e9578063715018a61461017b57806371eedb881461018557806375151b63146101b5578063768c6ec0146101e557806379ba50971461021557610116565b80633f4ba83a1461011b57806340ebc6771461012557806347094e2e146101415780635c975abb1461015d575b600080fd5b610123610326565b005b61013f600480360381019061013a9190612536565b610338565b005b61015b600480360381019061015691906125b6565b610600565b005b61016561066b565b60405161017291906125fe565b60405180910390f35b610183610682565b005b61019f600480360381019061019a919061264f565b610696565b6040516101ac91906125fe565b60405180910390f35b6101cf60048036038101906101ca919061268f565b610b0a565b6040516101dc91906125fe565b60405180910390f35b6101ff60048036038101906101fa91906126bc565b610b66565b60405161020c9190612809565b60405180910390f35b61021d610d7e565b005b610239600480360381019061023491906128b6565b610e0b565b6040516102469190612987565b60405180910390f35b610257611340565b005b610261611490565b005b61026b6114a2565b60405161027891906129b1565b60405180910390f35b6102896114cc565b6040516102979291906129ea565b60405180910390f35b6102ba60048036038101906102b59190612a13565b6114f1565b005b6102c4611676565b6040516102d191906129b1565b60405180910390f35b6102f460048036038101906102ef9190612a66565b6116a0565b60405161030191906125fe565b60405180910390f35b610324600480360381019061031f919061268f565b611d03565b005b61032e611db0565b610336611e2e565b565b610340611db0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a690612b2a565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104b2578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f90612bbc565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105b0565b7f61676772656761746f720000000000000000000000000000000000000000000083036105af578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090612c4e565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b80156105fb578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610608611db0565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b816040516106609190612c6e565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b61068a611db0565b6106946000611e91565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612cd5565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff161561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d41565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff16156107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790612dad565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612e19565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108dc929190612e39565b6020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190612e8e565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109b99190612eea565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a669190612f1e565b6040518363ffffffff1660e01b8152600401610a83929190612e39565b6020604051808303816000875af1158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190612e8e565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610af79190612f52565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b5c5760019050610b61565b600090505b919050565b610b6e6123db565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610d88611ec2565b90508073ffffffffffffffffffffffffffffffffffffffff16610da9611676565b73ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612fdf565b60405180910390fd5b610e0881611e91565b50565b6000610e15611eca565b610e228989868989611f14565b60008383905003610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061304b565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610e929190612f1e565b6040518463ffffffff1660e01b8152600401610eb09392919061306b565b6020604051808303816000875af1158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190612e8e565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f45906130a2565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610f9d929190612e39565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a610fe691906130ea565b610ff0919061315b565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161132b959493929190613214565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113715750600160008054906101000a900460ff1660ff16105b8061139e5750611380306120c7565b15801561139d5750600160008054906101000a900460ff1660ff16145b5b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906132d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561141a576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061142c6120ea565b611434612143565b801561148d5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051611484919061333c565b60405180910390a15b50565b611498611db0565b6114a061219c565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b6114f9611db0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b2a565b60405180910390fd5b60018114806115775750600281145b6115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad906133a3565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116715780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116689190612f52565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612cd5565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90612d41565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff16156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612dad565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff1661187c91906133c3565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ace57600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611acd5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b81526004016119f8929190612e39565b6020604051808303816000875af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190612e8e565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611aff91906130ea565b611b09919061315b565b90508060ff60008881526020019081526020016000206007016000828254611b319190612eea565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b6991906130ea565b611b73919061315b565b90508082611b819190612eea565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611be0929190612e39565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190612e8e565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c5f929190612e39565b6020604051808303816000875af1158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190612e8e565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611cec929190613434565b60405180910390a360019350505050949350505050565b611d0b611db0565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d6b6114a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611db8611ec2565b73ffffffffffffffffffffffffffffffffffffffff16611dd66114a2565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906134a9565b60405180910390fd5b565b611e366121ff565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e7a611ec2565b604051611e8791906129b1565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ebf81612248565b50565b600033905090565b611ed261066b565b15611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990613515565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613581565b60405180910390fd5b60008403611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd0906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613659565b60405180910390fd5b600081146120c057600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6906136c5565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613757565b60405180910390fd5b61214161230e565b565b600060019054906101000a900460ff16612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613757565b60405180910390fd5b61219a61236f565b565b6121a4611eca565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121e8611ec2565b6040516121f591906129b1565b60405180910390a1565b61220761066b565b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906137c3565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1661235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235490613757565b60405180910390fd5b61236d612368611ec2565b611e91565b565b600060019054906101000a900460ff166123be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b590613757565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124b5816124a2565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000806040838503121561254d5761254c612498565b5b600061255b858286016124c3565b925050602061256c85828601612521565b9150509250929050565b600067ffffffffffffffff82169050919050565b61259381612576565b811461259e57600080fd5b50565b6000813590506125b08161258a565b92915050565b6000602082840312156125cc576125cb612498565b5b60006125da848285016125a1565b91505092915050565b60008115159050919050565b6125f8816125e3565b82525050565b600060208201905061261360008301846125ef565b92915050565b6000819050919050565b61262c81612619565b811461263757600080fd5b50565b60008135905061264981612623565b92915050565b6000806040838503121561266657612665612498565b5b60006126748582860161263a565b9250506020612685858286016124c3565b9150509250929050565b6000602082840312156126a5576126a4612498565b5b60006126b384828501612521565b91505092915050565b6000602082840312156126d2576126d1612498565b5b60006126e0848285016124c3565b91505092915050565b6126f2816124f8565b82525050565b61270181612619565b82525050565b612710816125e3565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61273781612716565b82525050565b6101408201600082015161275460008501826126e9565b50602082015161276760208501826126e9565b50604082015161277a60408501826126e9565b50606082015161278d60608501826126f8565b5060808201516127a060808501826126f8565b5060a08201516127b360a0850182612707565b5060c08201516127c660c0850182612707565b5060e08201516127d960e08501826126e9565b506101008201516127ee61010085018261272e565b506101208201516128036101208501826126f8565b50505050565b60006101408201905061281f600083018461273d565b92915050565b61282e81612716565b811461283957600080fd5b50565b60008135905061284b81612825565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261287657612875612851565b5b8235905067ffffffffffffffff81111561289357612892612856565b5b6020830191508360018202830111156128af576128ae61285b565b5b9250929050565b60008060008060008060008060e0898b0312156128d6576128d5612498565b5b60006128e48b828c01612521565b98505060206128f58b828c0161263a565b97505060406129068b828c0161283c565b96505060606129178b828c01612521565b95505060806129288b828c0161263a565b94505060a06129398b828c01612521565b93505060c089013567ffffffffffffffff81111561295a5761295961249d565b5b6129668b828c01612860565b92509250509295985092959890939650565b612981816124a2565b82525050565b600060208201905061299c6000830184612978565b92915050565b6129ab816124f8565b82525050565b60006020820190506129c660008301846129a2565b92915050565b6129d581612576565b82525050565b6129e481612619565b82525050565b60006040820190506129ff60008301856129cc565b612a0c60208301846129db565b9392505050565b600080600060608486031215612a2c57612a2b612498565b5b6000612a3a868287016124c3565b9350506020612a4b86828701612521565b9250506040612a5c8682870161263a565b9150509250925092565b60008060008060808587031215612a8057612a7f612498565b5b6000612a8e878288016124c3565b9450506020612a9f878288016124c3565b9350506040612ab087828801612521565b9250506060612ac1878288016125a1565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b14601583612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612ba6602583612acd565b9150612bb182612b4a565b604082019050919050565b60006020820190508181036000830152612bd581612b99565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c38602783612acd565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000602082019050612c8360008301846129cc565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612cbf600e83612acd565b9150612cca82612c89565b602082019050919050565b60006020820190508181036000830152612cee81612cb2565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d2b600e83612acd565b9150612d3682612cf5565b602082019050919050565b60006020820190508181036000830152612d5a81612d1e565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612d97600d83612acd565b9150612da282612d61565b602082019050919050565b60006020820190508181036000830152612dc681612d8a565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e03601583612acd565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b6000604082019050612e4e60008301856129a2565b612e5b60208301846129db565b9392505050565b612e6b816125e3565b8114612e7657600080fd5b50565b600081519050612e8881612e62565b92915050565b600060208284031215612ea457612ea3612498565b5b6000612eb284828501612e79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef582612619565b9150612f0083612619565b9250828203905081811115612f1857612f17612ebb565b5b92915050565b6000612f2982612619565b9150612f3483612619565b9250828201905080821115612f4c57612f4b612ebb565b5b92915050565b6000602082019050612f6760008301846129db565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612fc9602983612acd565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b6000613035601283612acd565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b600060608201905061308060008301866129a2565b61308d60208301856129a2565b61309a60408301846129db565b949350505050565b60006130ad82612619565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130df576130de612ebb565b5b600182019050919050565b60006130f582612619565b915061310083612619565b925082820261310e81612619565b9150828204841483151761312557613124612ebb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612619565b915061317183612619565b9250826131815761318061312c565b5b828204905092915050565b6000819050919050565b60006131b16131ac6131a784612716565b61318c565b612619565b9050919050565b6131c181613196565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006131f38385612acd565b93506132008385846131c7565b613209836131d6565b840190509392505050565b600060808201905061322960008301886129db565b6132366020830187612978565b61324360408301866131b8565b81810360608301526132568184866131e7565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006132be602e83612acd565b91506132c982613262565b604082019050919050565b600060208201905081810360008301526132ed816132b1565b9050919050565b6000819050919050565b600060ff82169050919050565b600061332661332161331c846132f4565b61318c565b6132fe565b9050919050565b6133368161330b565b82525050565b6000602082019050613351600083018461332d565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b600061338d601783612acd565b915061339882613357565b602082019050919050565b600060208201905081810360008301526133bc81613380565b9050919050565b60006133ce82612716565b91506133d983612716565b925082820390506bffffffffffffffffffffffff8111156133fd576133fc612ebb565b5b92915050565b600061341e61341961341484612576565b61318c565b612716565b9050919050565b61342e81613403565b82525050565b60006040820190506134496000830185612978565b6134566020830184613425565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613493602083612acd565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134ff601083612acd565b915061350a826134c9565b602082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b600061356b601183612acd565b915061357682613535565b602082019050919050565b6000602082019050818103600083015261359a8161355e565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b60006135d7600c83612acd565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613643601083612acd565b915061364e8261360d565b602082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136af601983612acd565b91506136ba82613679565b602082019050919050565b600060208201905081810360008301526136de816136a2565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613741602b83612acd565b915061374c826136e5565b604082019050919050565b6000602082019050818103600083015261377081613734565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137ad601483612acd565b91506137b882613777565b602082019050919050565b600060208201905081810360008301526137dc816137a0565b905091905056fea26469706673582212207cd069c89fca81913b7fadc08d0724a8e7733532ed2dde3ec1ba0961a69ea46164736f6c63430008120033", "linkReferences": {}, "deployedLinkReferences": {} } From fa6aa1c0288f8555b3b65cfba2bfd75cd251b322 Mon Sep 17 00:00:00 2001 From: Chibuotu Amadi Date: Thu, 4 Jul 2024 16:05:58 +0100 Subject: [PATCH 10/25] chore: adjust readme contract tables --- README.md | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3940916..4524ad2 100644 --- a/README.md +++ b/README.md @@ -98,16 +98,18 @@ npx hardhat run scripts/tron/updateProtocolFee.ts - Tron Shasta + Tron Shasta Gateway Proxy TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ - Gateway Admin - TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR Gateway Implementation TSGr6Ri7NZ7FxN1gCiWkn8cPA2qtF6ctdF + + Gateway Admin + TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR + @@ -180,38 +182,53 @@ npx hardhat run scripts/tron/updateProtocolFee.ts 0x47afB97999801FD98CBD16Bb94F6efD2C779d242 - Optimism Ethereum + + + + Optimism Ethereum Gateway Proxy 0xD293fCd3dBc025603911853d893A4724CF9f70a0 - Gateway Admin - 0xb9B5280AB99E48a9662D4740B1e1398abdf87b6D Gateway Implementation 0xB04c9622a583DEbe5fef8f5E594582490604D45c - Scroll + Gateway Admin + 0xb9B5280AB99E48a9662D4740B1e1398abdf87b6D + + + + + + Scroll Gateway Proxy 0x663C5BfE7d44bA946C2dd4b2D1Cf9580319F9338 - Gateway Admin - 0x16c9C78Dbb224889E3e2ADef991C8c4438ea797B Gateway Implementation 0x5E7eC39915F6CD48829d06648F6682765846602a - Tron + Gateway Admin + 0x16c9C78Dbb224889E3e2ADef991C8c4438ea797B + + + + + + Tron Gateway Proxy THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU - Gateway Admin - TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ Gateway Implementation TDhBvHbnF8nN7YctokpdZAVPcmBx2Jrn2d + + Gateway Admin + TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ + From 282d55c931b8c6e27dbc67f81ab9b4a59c2b7d6e Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 16:08:31 +0100 Subject: [PATCH 11/25] chore: fix statement in upgrade and reame --- README.md | 2 +- scripts/upgrade.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f5a8c78..bb35fde 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ tronbox migrate -f 1 --to 1 --network ```bash npx hardhat run scripts/upgrade.ts --network -# upgrade accorss all EVM chains +# upgrade across all EVM chains npx hardhat run scripts/upgrade.ts --network arbitrumOne && npx hardhat run scripts/upgrade.ts --network base && npx hardhat run scripts/upgrade.ts --network diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index 8ae6b3d..2022dbd 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -8,9 +8,8 @@ async function main() { const [signer] = await ethers.getSigners(); // Get the signer (the account performing the upgrade) const balance = await signer.getBalance(); // Get the balance of the signer's address - // Check if the balance is exactly 1 ETH if (balance.eq(0)) { - throw new Error("Balance is exactly 1 ETH. Upgrade aborted."); + throw new Error(`"Can't upgrade ${network.config.chainId} with 0 balance`); } const proxyContractAddress = networkConfig.GATEWAY_CONTRACT; From 08bb55c6b27558c65d67fbb9279041bc456505c7 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:38:38 +0100 Subject: [PATCH 12/25] chore: upgrades Gateway.sol accross all chains --- migrations/2_upgrade.js | 3 ++- scripts/upgrade.ts | 5 +++++ tronbox.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/migrations/2_upgrade.js b/migrations/2_upgrade.js index 9842d82..6b7b3e2 100644 --- a/migrations/2_upgrade.js +++ b/migrations/2_upgrade.js @@ -4,7 +4,8 @@ const ProxyAdmin = artifacts.require( ); const Gateway = artifacts.require("Gateway"); -const proxyContractAddress = "TAmw9Yq6axjkQV6vTH21qXJVEGwUnvVL6L" +const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; +// Shasta: "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; module.exports = async function (deployer) { try { diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index 0e1af66..6f5c4b8 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -1,5 +1,6 @@ import { ethers, upgrades, network } from "hardhat"; import { NETWORKS } from "./config"; +import hre from "hardhat"; const networkConfig = NETWORKS[network.config.chainId as keyof typeof NETWORKS]; @@ -12,6 +13,10 @@ async function main() { ); console.log("✅ Upgraded Gateway: ", contract.address); + + await hre.run("verify:verify", { + address: contract.address, + }); } main().catch((error) => { diff --git a/tronbox.js b/tronbox.js index 4e9affe..2d72ea3 100644 --- a/tronbox.js +++ b/tronbox.js @@ -13,7 +13,7 @@ module.exports = { shasta: { privateKey: process.env.DEPLOYER_PRIVATE_KEY_TRON, userFeePercentage: 100, - feeLimit: 1e9, + feeLimit: 2e9, fullHost: "https://api.shasta.trongrid.io", network_id: "2", }, From f733a7bba69e10fde5fe3fb3413bd1d510d26b79 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:38:54 +0100 Subject: [PATCH 13/25] chore: update readme for new upgrades --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e7e37b3..3940916 100644 --- a/README.md +++ b/README.md @@ -101,10 +101,12 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Tron Shasta Gateway Proxy TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ + Gateway Admin + TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR Gateway Implementation - TPddrcko4ceBWZpr7zPnbPbSnkLAMjBCCm + TSGr6Ri7NZ7FxN1gCiWkn8cPA2qtF6ctdF @@ -139,7 +141,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xafbf71A72d30f81eb66baaF904ea537fD35dd106 + 0x904aDFcf6Fd29F556aA12a64B2072bA4C426A928 @@ -151,7 +153,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x847dfdAa218F9137229CF8424378871A1DA8f625 + 0xfB411Cc6385Af50A562aFCb441864E9d541CDA67 @@ -163,7 +165,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x30F6A8457F8E42371E204a9c103f2Bd42341dD0F + 0x0a7aA9F8eab1665DD905288669447b66082E4B17 @@ -175,7 +177,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x87B321fc77A0fDD0ca1fEe7Ab791131157B9841A + 0x47afB97999801FD98CBD16Bb94F6efD2C779d242 Optimism Ethereum @@ -186,7 +188,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x7bA90e38327A4B82D8BF6B481C1b2Ed14228E91A + 0xB04c9622a583DEbe5fef8f5E594582490604D45c Scroll @@ -197,7 +199,18 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xD293fCd3dBc025603911853d893A4724CF9f70a0 + 0x5E7eC39915F6CD48829d06648F6682765846602a + + + Tron + Gateway Proxy + THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU + Gateway Admin + TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ + + + Gateway Implementation + TDhBvHbnF8nN7YctokpdZAVPcmBx2Jrn2d From 7a54a54fbf7aefbf8259fde80311b7bf74ce3f41 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Mon, 1 Jul 2024 07:39:06 +0100 Subject: [PATCH 14/25] chore: builds to new upgrade --- .openzeppelin/arbitrum-one.json | 267 + .openzeppelin/base.json | 267 + .openzeppelin/bsc.json | 267 + .openzeppelin/optimism.json | 267 + .openzeppelin/polygon.json | 267 + .openzeppelin/unknown-534352.json | 267 + build/contracts/AddressUpgradeable.json | 1970 +++--- build/contracts/Context.json | 170 +- build/contracts/ContextUpgradeable.json | 298 +- build/contracts/ERC20.json | 3378 +++++----- build/contracts/Gateway.json | 5876 +++++++++--------- build/contracts/GatewaySettingManager.json | 1040 ++-- build/contracts/IERC20.json | 438 +- build/contracts/IERC20Metadata.json | 158 +- build/contracts/IGateway.json | 820 +-- build/contracts/Initializable.json | 878 +-- build/contracts/MockUSDT.json | 412 +- build/contracts/Ownable2StepUpgradeable.json | 642 +- build/contracts/OwnableUpgradeable.json | 742 +-- build/contracts/PausableUpgradeable.json | 690 +- 20 files changed, 10310 insertions(+), 8804 deletions(-) diff --git a/.openzeppelin/arbitrum-one.json b/.openzeppelin/arbitrum-one.json index cedf342..172941c 100644 --- a/.openzeppelin/arbitrum-one.json +++ b/.openzeppelin/arbitrum-one.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x47afB97999801FD98CBD16Bb94F6efD2C779d242", + "txHash": "0x2e971ec283fcd60632fe7546eb18603b3c7363d7ce7d840cc680431587587b45", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/base.json b/.openzeppelin/base.json index e681e5e..62c76e5 100644 --- a/.openzeppelin/base.json +++ b/.openzeppelin/base.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xfB411Cc6385Af50A562aFCb441864E9d541CDA67", + "txHash": "0x222270dcead9d39eb3d6e601ca7f8da38c4c8a600e0ad889b55efda9127bc8bd", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/bsc.json b/.openzeppelin/bsc.json index 2bf97fa..fdc1cde 100644 --- a/.openzeppelin/bsc.json +++ b/.openzeppelin/bsc.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x0a7aA9F8eab1665DD905288669447b66082E4B17", + "txHash": "0xc4f6f00c66f8f2bcad5debd01bdfd36d2ffbd2e1fd56f138f741b40ab5e2b7dc", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/optimism.json b/.openzeppelin/optimism.json index 2ced5d3..094b921 100644 --- a/.openzeppelin/optimism.json +++ b/.openzeppelin/optimism.json @@ -283,6 +283,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0xB04c9622a583DEbe5fef8f5E594582490604D45c", + "txHash": "0xd1b54aebec1586998b0f52544ee427db67af4689e12b6be2e5bbc67aff24eeeb", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/polygon.json b/.openzeppelin/polygon.json index 56ef412..eee52b4 100644 --- a/.openzeppelin/polygon.json +++ b/.openzeppelin/polygon.json @@ -613,6 +613,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x904aDFcf6Fd29F556aA12a64B2072bA4C426A928", + "txHash": "0xadff852f21de38b1463a77f04b8feca338b55426867ae5472d7b93d35885bd05", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/unknown-534352.json b/.openzeppelin/unknown-534352.json index 10f3f83..40d9c9e 100644 --- a/.openzeppelin/unknown-534352.json +++ b/.openzeppelin/unknown-534352.json @@ -278,6 +278,273 @@ }, "namespaces": {} } + }, + "0f100866e1d2f49be7a59745c8f958cdaad8acdf57c5197a7fef1472f55f7a43": { + "address": "0x5E7eC39915F6CD48829d06648F6682765846602a", + "txHash": "0xea72a16c09d4a63ec6e6812e17b85b1233f312519e6089db858c5088f2e28144", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/build/contracts/AddressUpgradeable.json b/build/contracts/AddressUpgradeable.json index 00af7aa..112b1e0 100644 --- a/build/contracts/AddressUpgradeable.json +++ b/build/contracts/AddressUpgradeable.json @@ -11,15 +11,15 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ] }, - "id": 1842, + "id": 1839, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1513, + "id": 1510, "literals": [ "solidity", "^", @@ -36,15 +36,15 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1514, + "id": 1511, "nodeType": "StructuredDocumentation", "src": "126:67:8", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1841, + "id": 1838, "linearizedBaseContracts": [ - 1841 + 1838 ], "name": "AddressUpgradeable", "nameLocation": "202:18:8", @@ -52,7 +52,7 @@ "nodes": [ { "body": { - "id": 1528, + "id": 1525, "nodeType": "Block", "src": "1489:254:8", "statements": [ @@ -62,7 +62,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1526, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": false, @@ -70,18 +70,18 @@ "leftExpression": { "expression": { "expression": { - "id": 1522, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1514, "src": "1713:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1523, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -95,7 +95,7 @@ "typeString": "bytes memory" } }, - "id": 1524, + "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, @@ -113,7 +113,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1525, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": true, @@ -133,20 +133,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1521, - "id": 1527, + "functionReturnParameters": 1518, + "id": 1524, "nodeType": "Return", "src": "1706:30:8" } ] }, "documentation": { - "id": 1515, + "id": 1512, "nodeType": "StructuredDocumentation", "src": "227:1191:8", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1529, + "id": 1526, "implemented": true, "kind": "function", "modifiers": [], @@ -154,17 +154,17 @@ "nameLocation": "1432:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1518, + "id": 1515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1514, "mutability": "mutable", "name": "account", "nameLocation": "1451:7:8", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1443:15:8", "stateVariable": false, "storageLocation": "default", @@ -173,7 +173,7 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1443:7:8", @@ -189,17 +189,17 @@ "src": "1442:17:8" }, "returnParameters": { - "id": 1521, + "id": 1518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1520, + "id": 1517, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1483:4:8", "stateVariable": false, "storageLocation": "default", @@ -208,7 +208,7 @@ "typeString": "bool" }, "typeName": { - "id": 1519, + "id": 1516, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1483:4:8", @@ -222,7 +222,7 @@ ], "src": "1482:6:8" }, - "scope": 1841, + "scope": 1838, "src": "1423:320:8", "stateMutability": "view", "virtual": false, @@ -230,7 +230,7 @@ }, { "body": { - "id": 1562, + "id": 1559, "nodeType": "Block", "src": "2729:241:8", "statements": [ @@ -242,7 +242,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1544, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -251,14 +251,14 @@ "expression": { "arguments": [ { - "id": 1540, + "id": 1537, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "2755:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -266,11 +266,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1539, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, @@ -282,14 +282,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1538, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", "src": "2747:7:8", "typeDescriptions": {} } }, - "id": 1541, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, @@ -305,7 +305,7 @@ "typeString": "address" } }, - "id": 1542, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -322,11 +322,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1543, + "id": 1540, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2772:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -341,7 +341,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1545, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -367,7 +367,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1537, + "id": 1534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -381,7 +381,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1546, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, @@ -397,24 +397,24 @@ "typeString": "tuple()" } }, - "id": 1547, + "id": 1544, "nodeType": "ExpressionStatement", "src": "2739:73:8" }, { "assignments": [ - 1549, + 1546, null ], "declarations": [ { "constant": false, - "id": 1549, + "id": 1546, "mutability": "mutable", "name": "success", "nameLocation": "2829:7:8", "nodeType": "VariableDeclaration", - "scope": 1562, + "scope": 1559, "src": "2824:12:8", "stateVariable": false, "storageLocation": "default", @@ -423,7 +423,7 @@ "typeString": "bool" }, "typeName": { - "id": 1548, + "id": 1545, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2824:4:8", @@ -436,12 +436,12 @@ }, null ], - "id": 1556, + "id": 1553, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1554, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, @@ -471,18 +471,18 @@ } ], "expression": { - "id": 1550, + "id": 1547, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1532, + "referencedDeclaration": 1529, "src": "2842:9:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1551, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": false, @@ -496,7 +496,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1553, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -507,11 +507,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1552, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2864:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -525,7 +525,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1555, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -548,11 +548,11 @@ "expression": { "arguments": [ { - "id": 1558, + "id": 1555, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1549, + "referencedDeclaration": 1546, "src": "2893:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -561,7 +561,7 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1559, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -587,7 +587,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1557, + "id": 1554, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -601,7 +601,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1560, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,19 +617,19 @@ "typeString": "tuple()" } }, - "id": 1561, + "id": 1558, "nodeType": "ExpressionStatement", "src": "2885:78:8" } ] }, "documentation": { - "id": 1530, + "id": 1527, "nodeType": "StructuredDocumentation", "src": "1749:904:8", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1563, + "id": 1560, "implemented": true, "kind": "function", "modifiers": [], @@ -637,17 +637,17 @@ "nameLocation": "2667:9:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1535, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1532, + "id": 1529, "mutability": "mutable", "name": "recipient", "nameLocation": "2693:9:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2677:25:8", "stateVariable": false, "storageLocation": "default", @@ -656,7 +656,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1531, + "id": 1528, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:15:8", @@ -670,12 +670,12 @@ }, { "constant": false, - "id": 1534, + "id": 1531, "mutability": "mutable", "name": "amount", "nameLocation": "2712:6:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2704:14:8", "stateVariable": false, "storageLocation": "default", @@ -684,7 +684,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1533, + "id": 1530, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2704:7:8", @@ -699,12 +699,12 @@ "src": "2676:43:8" }, "returnParameters": { - "id": 1536, + "id": 1533, "nodeType": "ParameterList", "parameters": [], "src": "2729:0:8" }, - "scope": 1841, + "scope": 1838, "src": "2658:312:8", "stateMutability": "nonpayable", "virtual": false, @@ -712,7 +712,7 @@ }, { "body": { - "id": 1580, + "id": 1577, "nodeType": "Block", "src": "3801:96:8", "statements": [ @@ -720,11 +720,11 @@ "expression": { "arguments": [ { - "id": 1574, + "id": 1571, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1566, + "referencedDeclaration": 1563, "src": "3840:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -732,11 +732,11 @@ } }, { - "id": 1575, + "id": 1572, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1568, + "referencedDeclaration": 1565, "src": "3848:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -745,7 +745,7 @@ }, { "hexValue": "30", - "id": 1576, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": true, @@ -761,7 +761,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1577, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": true, @@ -795,21 +795,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1573, + "id": 1570, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "3818:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1578, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -825,20 +825,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1572, - "id": 1579, + "functionReturnParameters": 1569, + "id": 1576, "nodeType": "Return", "src": "3811:79:8" } ] }, "documentation": { - "id": 1564, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "2976:731:8", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1581, + "id": 1578, "implemented": true, "kind": "function", "modifiers": [], @@ -846,17 +846,17 @@ "nameLocation": "3721:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1569, + "id": 1566, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1566, + "id": 1563, "mutability": "mutable", "name": "target", "nameLocation": "3742:6:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3734:14:8", "stateVariable": false, "storageLocation": "default", @@ -865,7 +865,7 @@ "typeString": "address" }, "typeName": { - "id": 1565, + "id": 1562, "name": "address", "nodeType": "ElementaryTypeName", "src": "3734:7:8", @@ -879,12 +879,12 @@ }, { "constant": false, - "id": 1568, + "id": 1565, "mutability": "mutable", "name": "data", "nameLocation": "3763:4:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3750:17:8", "stateVariable": false, "storageLocation": "memory", @@ -893,7 +893,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1564, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3750:5:8", @@ -908,17 +908,17 @@ "src": "3733:35:8" }, "returnParameters": { - "id": 1572, + "id": 1569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1571, + "id": 1568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3787:12:8", "stateVariable": false, "storageLocation": "memory", @@ -927,7 +927,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1570, + "id": 1567, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3787:5:8", @@ -941,7 +941,7 @@ ], "src": "3786:14:8" }, - "scope": 1841, + "scope": 1838, "src": "3712:185:8", "stateMutability": "nonpayable", "virtual": false, @@ -949,7 +949,7 @@ }, { "body": { - "id": 1600, + "id": 1597, "nodeType": "Block", "src": "4266:76:8", "statements": [ @@ -957,11 +957,11 @@ "expression": { "arguments": [ { - "id": 1594, + "id": 1591, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1584, + "referencedDeclaration": 1581, "src": "4305:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -969,11 +969,11 @@ } }, { - "id": 1595, + "id": 1592, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1586, + "referencedDeclaration": 1583, "src": "4313:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -982,7 +982,7 @@ }, { "hexValue": "30", - "id": 1596, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, @@ -997,11 +997,11 @@ "value": "0" }, { - "id": 1597, + "id": 1594, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, + "referencedDeclaration": 1585, "src": "4322:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1028,21 +1028,21 @@ "typeString": "string memory" } ], - "id": 1593, + "id": 1590, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4283:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1598, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, @@ -1058,20 +1058,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1592, - "id": 1599, + "functionReturnParameters": 1589, + "id": 1596, "nodeType": "Return", "src": "4276:59:8" } ] }, "documentation": { - "id": 1582, + "id": 1579, "nodeType": "StructuredDocumentation", "src": "3903:211:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1601, + "id": 1598, "implemented": true, "kind": "function", "modifiers": [], @@ -1079,17 +1079,17 @@ "nameLocation": "4128:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1589, + "id": 1586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1584, + "id": 1581, "mutability": "mutable", "name": "target", "nameLocation": "4158:6:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4150:14:8", "stateVariable": false, "storageLocation": "default", @@ -1098,7 +1098,7 @@ "typeString": "address" }, "typeName": { - "id": 1583, + "id": 1580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4150:7:8", @@ -1112,12 +1112,12 @@ }, { "constant": false, - "id": 1586, + "id": 1583, "mutability": "mutable", "name": "data", "nameLocation": "4187:4:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4174:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1126,7 +1126,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1585, + "id": 1582, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4174:5:8", @@ -1139,12 +1139,12 @@ }, { "constant": false, - "id": 1588, + "id": 1585, "mutability": "mutable", "name": "errorMessage", "nameLocation": "4215:12:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4201:26:8", "stateVariable": false, "storageLocation": "memory", @@ -1153,7 +1153,7 @@ "typeString": "string" }, "typeName": { - "id": 1587, + "id": 1584, "name": "string", "nodeType": "ElementaryTypeName", "src": "4201:6:8", @@ -1168,17 +1168,17 @@ "src": "4140:93:8" }, "returnParameters": { - "id": 1592, + "id": 1589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1591, + "id": 1588, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4252:12:8", "stateVariable": false, "storageLocation": "memory", @@ -1187,7 +1187,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1590, + "id": 1587, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4252:5:8", @@ -1201,7 +1201,7 @@ ], "src": "4251:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4119:223:8", "stateMutability": "nonpayable", "virtual": false, @@ -1209,7 +1209,7 @@ }, { "body": { - "id": 1620, + "id": 1617, "nodeType": "Block", "src": "4817:111:8", "statements": [ @@ -1217,11 +1217,11 @@ "expression": { "arguments": [ { - "id": 1614, + "id": 1611, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, + "referencedDeclaration": 1601, "src": "4856:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1229,11 +1229,11 @@ } }, { - "id": 1615, + "id": 1612, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, + "referencedDeclaration": 1603, "src": "4864:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1241,11 +1241,11 @@ } }, { - "id": 1616, + "id": 1613, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1608, + "referencedDeclaration": 1605, "src": "4870:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1254,7 +1254,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1617, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -1288,21 +1288,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1613, + "id": 1610, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4834:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1618, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -1318,20 +1318,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1612, - "id": 1619, + "functionReturnParameters": 1609, + "id": 1616, "nodeType": "Return", "src": "4827:94:8" } ] }, "documentation": { - "id": 1602, + "id": 1599, "nodeType": "StructuredDocumentation", "src": "4348:351:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1621, + "id": 1618, "implemented": true, "kind": "function", "modifiers": [], @@ -1339,17 +1339,17 @@ "nameLocation": "4713:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1604, + "id": 1601, "mutability": "mutable", "name": "target", "nameLocation": "4743:6:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4735:14:8", "stateVariable": false, "storageLocation": "default", @@ -1358,7 +1358,7 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 1600, "name": "address", "nodeType": "ElementaryTypeName", "src": "4735:7:8", @@ -1372,12 +1372,12 @@ }, { "constant": false, - "id": 1606, + "id": 1603, "mutability": "mutable", "name": "data", "nameLocation": "4764:4:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4751:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1386,7 +1386,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1605, + "id": 1602, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4751:5:8", @@ -1399,12 +1399,12 @@ }, { "constant": false, - "id": 1608, + "id": 1605, "mutability": "mutable", "name": "value", "nameLocation": "4778:5:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4770:13:8", "stateVariable": false, "storageLocation": "default", @@ -1413,7 +1413,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1607, + "id": 1604, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4770:7:8", @@ -1428,17 +1428,17 @@ "src": "4734:50:8" }, "returnParameters": { - "id": 1612, + "id": 1609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1611, + "id": 1608, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4803:12:8", "stateVariable": false, "storageLocation": "memory", @@ -1447,7 +1447,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1610, + "id": 1607, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4803:5:8", @@ -1461,7 +1461,7 @@ ], "src": "4802:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4704:224:8", "stateMutability": "nonpayable", "virtual": false, @@ -1469,7 +1469,7 @@ }, { "body": { - "id": 1664, + "id": 1661, "nodeType": "Block", "src": "5355:267:8", "statements": [ @@ -1481,7 +1481,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1642, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -1490,14 +1490,14 @@ "expression": { "arguments": [ { - "id": 1638, + "id": 1635, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "5381:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -1505,11 +1505,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1637, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": true, @@ -1521,14 +1521,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1636, + "id": 1633, "name": "address", "nodeType": "ElementaryTypeName", "src": "5373:7:8", "typeDescriptions": {} } }, - "id": 1639, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,7 +1544,7 @@ "typeString": "address" } }, - "id": 1640, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -1561,11 +1561,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1641, + "id": 1638, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5398:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1580,7 +1580,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1643, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": true, @@ -1606,7 +1606,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1635, + "id": 1632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1620,7 +1620,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1644, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, @@ -1636,24 +1636,24 @@ "typeString": "tuple()" } }, - "id": 1645, + "id": 1642, "nodeType": "ExpressionStatement", "src": "5365:81:8" }, { "assignments": [ - 1647, - 1649 + 1644, + 1646 ], "declarations": [ { "constant": false, - "id": 1647, + "id": 1644, "mutability": "mutable", "name": "success", "nameLocation": "5462:7:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5457:12:8", "stateVariable": false, "storageLocation": "default", @@ -1662,7 +1662,7 @@ "typeString": "bool" }, "typeName": { - "id": 1646, + "id": 1643, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5457:4:8", @@ -1675,12 +1675,12 @@ }, { "constant": false, - "id": 1649, + "id": 1646, "mutability": "mutable", "name": "returndata", "nameLocation": "5484:10:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5471:23:8", "stateVariable": false, "storageLocation": "memory", @@ -1689,7 +1689,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1648, + "id": 1645, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5471:5:8", @@ -1701,15 +1701,15 @@ "visibility": "internal" } ], - "id": 1656, + "id": 1653, "initialValue": { "arguments": [ { - "id": 1654, + "id": 1651, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, + "referencedDeclaration": 1623, "src": "5524:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1732,18 +1732,18 @@ } ], "expression": { - "id": 1650, + "id": 1647, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5498:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1651, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1757,7 +1757,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1653, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, @@ -1768,11 +1768,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1652, + "id": 1649, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5517:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1786,7 +1786,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1655, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, @@ -1809,11 +1809,11 @@ "expression": { "arguments": [ { - "id": 1658, + "id": 1655, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5573:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1821,11 +1821,11 @@ } }, { - "id": 1659, + "id": 1656, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1647, + "referencedDeclaration": 1644, "src": "5581:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1833,11 +1833,11 @@ } }, { - "id": 1660, + "id": 1657, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, + "referencedDeclaration": 1646, "src": "5590:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1845,11 +1845,11 @@ } }, { - "id": 1661, + "id": 1658, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, + "referencedDeclaration": 1627, "src": "5602:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1876,18 +1876,18 @@ "typeString": "string memory" } ], - "id": 1657, + "id": 1654, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "5546:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1662, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -1903,20 +1903,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1634, - "id": 1663, + "functionReturnParameters": 1631, + "id": 1660, "nodeType": "Return", "src": "5539:76:8" } ] }, "documentation": { - "id": 1622, + "id": 1619, "nodeType": "StructuredDocumentation", "src": "4934:237:8", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1665, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [], @@ -1924,17 +1924,17 @@ "nameLocation": "5185:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1631, + "id": 1628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1624, + "id": 1621, "mutability": "mutable", "name": "target", "nameLocation": "5224:6:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5216:14:8", "stateVariable": false, "storageLocation": "default", @@ -1943,7 +1943,7 @@ "typeString": "address" }, "typeName": { - "id": 1623, + "id": 1620, "name": "address", "nodeType": "ElementaryTypeName", "src": "5216:7:8", @@ -1957,12 +1957,12 @@ }, { "constant": false, - "id": 1626, + "id": 1623, "mutability": "mutable", "name": "data", "nameLocation": "5253:4:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5240:17:8", "stateVariable": false, "storageLocation": "memory", @@ -1971,7 +1971,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1625, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5240:5:8", @@ -1984,12 +1984,12 @@ }, { "constant": false, - "id": 1628, + "id": 1625, "mutability": "mutable", "name": "value", "nameLocation": "5275:5:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5267:13:8", "stateVariable": false, "storageLocation": "default", @@ -1998,7 +1998,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5267:7:8", @@ -2011,12 +2011,12 @@ }, { "constant": false, - "id": 1630, + "id": 1627, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5304:12:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5290:26:8", "stateVariable": false, "storageLocation": "memory", @@ -2025,7 +2025,7 @@ "typeString": "string" }, "typeName": { - "id": 1629, + "id": 1626, "name": "string", "nodeType": "ElementaryTypeName", "src": "5290:6:8", @@ -2040,17 +2040,17 @@ "src": "5206:116:8" }, "returnParameters": { - "id": 1634, + "id": 1631, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1633, + "id": 1630, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5341:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2059,7 +2059,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1632, + "id": 1629, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5341:5:8", @@ -2073,7 +2073,7 @@ ], "src": "5340:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5176:446:8", "stateMutability": "nonpayable", "virtual": false, @@ -2081,7 +2081,7 @@ }, { "body": { - "id": 1681, + "id": 1678, "nodeType": "Block", "src": "5899:97:8", "statements": [ @@ -2089,11 +2089,11 @@ "expression": { "arguments": [ { - "id": 1676, + "id": 1673, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, + "referencedDeclaration": 1665, "src": "5935:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2101,11 +2101,11 @@ } }, { - "id": 1677, + "id": 1674, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1670, + "referencedDeclaration": 1667, "src": "5943:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2114,7 +2114,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1678, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -2144,21 +2144,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1675, + "id": 1672, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1682, - 1711 + 1679, + 1708 ], - "referencedDeclaration": 1711, + "referencedDeclaration": 1708, "src": "5916:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1679, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -2174,20 +2174,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1674, - "id": 1680, + "functionReturnParameters": 1671, + "id": 1677, "nodeType": "Return", "src": "5909:80:8" } ] }, "documentation": { - "id": 1666, + "id": 1663, "nodeType": "StructuredDocumentation", "src": "5628:166:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1682, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], @@ -2195,17 +2195,17 @@ "nameLocation": "5808:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1671, + "id": 1668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1668, + "id": 1665, "mutability": "mutable", "name": "target", "nameLocation": "5835:6:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5827:14:8", "stateVariable": false, "storageLocation": "default", @@ -2214,7 +2214,7 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 1664, "name": "address", "nodeType": "ElementaryTypeName", "src": "5827:7:8", @@ -2228,12 +2228,12 @@ }, { "constant": false, - "id": 1670, + "id": 1667, "mutability": "mutable", "name": "data", "nameLocation": "5856:4:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5843:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2242,7 +2242,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1666, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5843:5:8", @@ -2257,17 +2257,17 @@ "src": "5826:35:8" }, "returnParameters": { - "id": 1674, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1670, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5885:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2276,7 +2276,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1672, + "id": 1669, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5885:5:8", @@ -2290,7 +2290,7 @@ ], "src": "5884:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5799:197:8", "stateMutability": "view", "virtual": false, @@ -2298,24 +2298,24 @@ }, { "body": { - "id": 1710, + "id": 1707, "nodeType": "Block", "src": "6338:168:8", "statements": [ { "assignments": [ - 1695, - 1697 + 1692, + 1694 ], "declarations": [ { "constant": false, - "id": 1695, + "id": 1692, "mutability": "mutable", "name": "success", "nameLocation": "6354:7:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6349:12:8", "stateVariable": false, "storageLocation": "default", @@ -2324,7 +2324,7 @@ "typeString": "bool" }, "typeName": { - "id": 1694, + "id": 1691, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6349:4:8", @@ -2337,12 +2337,12 @@ }, { "constant": false, - "id": 1697, + "id": 1694, "mutability": "mutable", "name": "returndata", "nameLocation": "6376:10:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6363:23:8", "stateVariable": false, "storageLocation": "memory", @@ -2351,7 +2351,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1696, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6363:5:8", @@ -2363,15 +2363,15 @@ "visibility": "internal" } ], - "id": 1702, + "id": 1699, "initialValue": { "arguments": [ { - "id": 1700, + "id": 1697, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, + "referencedDeclaration": 1684, "src": "6408:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2387,18 +2387,18 @@ } ], "expression": { - "id": 1698, + "id": 1695, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6390:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1699, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -2412,7 +2412,7 @@ "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1701, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, @@ -2435,11 +2435,11 @@ "expression": { "arguments": [ { - "id": 1704, + "id": 1701, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6457:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2447,11 +2447,11 @@ } }, { - "id": 1705, + "id": 1702, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, + "referencedDeclaration": 1692, "src": "6465:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2459,11 +2459,11 @@ } }, { - "id": 1706, + "id": 1703, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, + "referencedDeclaration": 1694, "src": "6474:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2471,11 +2471,11 @@ } }, { - "id": 1707, + "id": 1704, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1689, + "referencedDeclaration": 1686, "src": "6486:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2502,18 +2502,18 @@ "typeString": "string memory" } ], - "id": 1703, + "id": 1700, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "6430:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1708, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, @@ -2529,20 +2529,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1693, - "id": 1709, + "functionReturnParameters": 1690, + "id": 1706, "nodeType": "Return", "src": "6423:76:8" } ] }, "documentation": { - "id": 1683, + "id": 1680, "nodeType": "StructuredDocumentation", "src": "6002:173:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1711, + "id": 1708, "implemented": true, "kind": "function", "modifiers": [], @@ -2550,17 +2550,17 @@ "nameLocation": "6189:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1690, + "id": 1687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1685, + "id": 1682, "mutability": "mutable", "name": "target", "nameLocation": "6225:6:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6217:14:8", "stateVariable": false, "storageLocation": "default", @@ -2569,7 +2569,7 @@ "typeString": "address" }, "typeName": { - "id": 1684, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", "src": "6217:7:8", @@ -2583,12 +2583,12 @@ }, { "constant": false, - "id": 1687, + "id": 1684, "mutability": "mutable", "name": "data", "nameLocation": "6254:4:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6241:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2597,7 +2597,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1686, + "id": 1683, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6241:5:8", @@ -2610,12 +2610,12 @@ }, { "constant": false, - "id": 1689, + "id": 1686, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6282:12:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6268:26:8", "stateVariable": false, "storageLocation": "memory", @@ -2624,7 +2624,7 @@ "typeString": "string" }, "typeName": { - "id": 1688, + "id": 1685, "name": "string", "nodeType": "ElementaryTypeName", "src": "6268:6:8", @@ -2639,17 +2639,17 @@ "src": "6207:93:8" }, "returnParameters": { - "id": 1693, + "id": 1690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1692, + "id": 1689, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6324:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2658,7 +2658,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1691, + "id": 1688, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6324:5:8", @@ -2672,7 +2672,7 @@ ], "src": "6323:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6180:326:8", "stateMutability": "view", "virtual": false, @@ -2680,7 +2680,7 @@ }, { "body": { - "id": 1727, + "id": 1724, "nodeType": "Block", "src": "6782:101:8", "statements": [ @@ -2688,11 +2688,11 @@ "expression": { "arguments": [ { - "id": 1722, + "id": 1719, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1714, + "referencedDeclaration": 1711, "src": "6820:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2700,11 +2700,11 @@ } }, { - "id": 1723, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1713, "src": "6828:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2713,7 +2713,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1724, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -2743,21 +2743,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1721, + "id": 1718, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1728, - 1757 + 1725, + 1754 ], - "referencedDeclaration": 1757, + "referencedDeclaration": 1754, "src": "6799:20:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1725, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -2773,20 +2773,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1720, - "id": 1726, + "functionReturnParameters": 1717, + "id": 1723, "nodeType": "Return", "src": "6792:84:8" } ] }, "documentation": { - "id": 1712, + "id": 1709, "nodeType": "StructuredDocumentation", "src": "6512:168:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1728, + "id": 1725, "implemented": true, "kind": "function", "modifiers": [], @@ -2794,17 +2794,17 @@ "nameLocation": "6694:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1717, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1714, + "id": 1711, "mutability": "mutable", "name": "target", "nameLocation": "6723:6:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6715:14:8", "stateVariable": false, "storageLocation": "default", @@ -2813,7 +2813,7 @@ "typeString": "address" }, "typeName": { - "id": 1713, + "id": 1710, "name": "address", "nodeType": "ElementaryTypeName", "src": "6715:7:8", @@ -2827,12 +2827,12 @@ }, { "constant": false, - "id": 1716, + "id": 1713, "mutability": "mutable", "name": "data", "nameLocation": "6744:4:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6731:17:8", "stateVariable": false, "storageLocation": "memory", @@ -2841,7 +2841,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1712, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6731:5:8", @@ -2856,17 +2856,17 @@ "src": "6714:35:8" }, "returnParameters": { - "id": 1720, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1719, + "id": 1716, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6768:12:8", "stateVariable": false, "storageLocation": "memory", @@ -2875,7 +2875,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1718, + "id": 1715, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6768:5:8", @@ -2889,7 +2889,7 @@ ], "src": "6767:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6685:198:8", "stateMutability": "nonpayable", "virtual": false, @@ -2897,24 +2897,24 @@ }, { "body": { - "id": 1756, + "id": 1753, "nodeType": "Block", "src": "7224:170:8", "statements": [ { "assignments": [ - 1741, - 1743 + 1738, + 1740 ], "declarations": [ { "constant": false, - "id": 1741, + "id": 1738, "mutability": "mutable", "name": "success", "nameLocation": "7240:7:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7235:12:8", "stateVariable": false, "storageLocation": "default", @@ -2923,7 +2923,7 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 1737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7235:4:8", @@ -2936,12 +2936,12 @@ }, { "constant": false, - "id": 1743, + "id": 1740, "mutability": "mutable", "name": "returndata", "nameLocation": "7262:10:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7249:23:8", "stateVariable": false, "storageLocation": "memory", @@ -2950,7 +2950,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1742, + "id": 1739, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7249:5:8", @@ -2962,15 +2962,15 @@ "visibility": "internal" } ], - "id": 1748, + "id": 1745, "initialValue": { "arguments": [ { - "id": 1746, + "id": 1743, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1730, "src": "7296:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2986,18 +2986,18 @@ } ], "expression": { - "id": 1744, + "id": 1741, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7276:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1745, + "id": 1742, "isConstant": false, "isLValue": false, "isPure": false, @@ -3011,7 +3011,7 @@ "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1747, + "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, @@ -3034,11 +3034,11 @@ "expression": { "arguments": [ { - "id": 1750, + "id": 1747, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7345:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3046,11 +3046,11 @@ } }, { - "id": 1751, + "id": 1748, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, + "referencedDeclaration": 1738, "src": "7353:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3058,11 +3058,11 @@ } }, { - "id": 1752, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, + "referencedDeclaration": 1740, "src": "7362:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3070,11 +3070,11 @@ } }, { - "id": 1753, + "id": 1750, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, + "referencedDeclaration": 1732, "src": "7374:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3101,18 +3101,18 @@ "typeString": "string memory" } ], - "id": 1749, + "id": 1746, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "7318:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1754, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -3128,20 +3128,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1739, - "id": 1755, + "functionReturnParameters": 1736, + "id": 1752, "nodeType": "Return", "src": "7311:76:8" } ] }, "documentation": { - "id": 1729, + "id": 1726, "nodeType": "StructuredDocumentation", "src": "6889:175:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1757, + "id": 1754, "implemented": true, "kind": "function", "modifiers": [], @@ -3149,17 +3149,17 @@ "nameLocation": "7078:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1728, "mutability": "mutable", "name": "target", "nameLocation": "7116:6:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7108:14:8", "stateVariable": false, "storageLocation": "default", @@ -3168,7 +3168,7 @@ "typeString": "address" }, "typeName": { - "id": 1730, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", "src": "7108:7:8", @@ -3182,12 +3182,12 @@ }, { "constant": false, - "id": 1733, + "id": 1730, "mutability": "mutable", "name": "data", "nameLocation": "7145:4:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7132:17:8", "stateVariable": false, "storageLocation": "memory", @@ -3196,7 +3196,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1732, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7132:5:8", @@ -3209,12 +3209,12 @@ }, { "constant": false, - "id": 1735, + "id": 1732, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7173:12:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7159:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3223,7 +3223,7 @@ "typeString": "string" }, "typeName": { - "id": 1734, + "id": 1731, "name": "string", "nodeType": "ElementaryTypeName", "src": "7159:6:8", @@ -3238,17 +3238,17 @@ "src": "7098:93:8" }, "returnParameters": { - "id": 1739, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1738, + "id": 1735, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7210:12:8", "stateVariable": false, "storageLocation": "memory", @@ -3257,7 +3257,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1737, + "id": 1734, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7210:5:8", @@ -3271,7 +3271,7 @@ ], "src": "7209:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7069:325:8", "stateMutability": "nonpayable", "virtual": false, @@ -3279,17 +3279,17 @@ }, { "body": { - "id": 1795, + "id": 1792, "nodeType": "Block", "src": "7876:434:8", "statements": [ { "condition": { - "id": 1771, + "id": 1768, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1762, + "referencedDeclaration": 1759, "src": "7890:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3297,7 +3297,7 @@ } }, "falseBody": { - "id": 1793, + "id": 1790, "nodeType": "Block", "src": "8246:58:8", "statements": [ @@ -3305,11 +3305,11 @@ "expression": { "arguments": [ { - "id": 1789, + "id": 1786, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8268:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3317,11 +3317,11 @@ } }, { - "id": 1790, + "id": 1787, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, + "referencedDeclaration": 1763, "src": "8280:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3340,18 +3340,18 @@ "typeString": "string memory" } ], - "id": 1788, + "id": 1785, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8260:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1791, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -3367,17 +3367,17 @@ "typeString": "tuple()" } }, - "id": 1792, + "id": 1789, "nodeType": "ExpressionStatement", "src": "8260:33:8" } ] }, - "id": 1794, + "id": 1791, "nodeType": "IfStatement", "src": "7886:418:8", "trueBody": { - "id": 1787, + "id": 1784, "nodeType": "Block", "src": "7899:341:8", "statements": [ @@ -3387,25 +3387,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1775, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1772, + "id": 1769, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "7917:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1773, + "id": 1770, "isConstant": false, "isLValue": false, "isPure": false, @@ -3423,7 +3423,7 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1774, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, @@ -3443,11 +3443,11 @@ "typeString": "bool" } }, - "id": 1784, + "id": 1781, "nodeType": "IfStatement", "src": "7913:286:8", "trueBody": { - "id": 1783, + "id": 1780, "nodeType": "Block", "src": "7941:258:8", "statements": [ @@ -3457,11 +3457,11 @@ { "arguments": [ { - "id": 1778, + "id": 1775, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, + "referencedDeclaration": 1757, "src": "8143:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3476,18 +3476,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1774, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "8132:10:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": false, @@ -3505,7 +3505,7 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1780, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -3531,7 +3531,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1776, + "id": 1773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3545,7 +3545,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,7 +3561,7 @@ "typeString": "tuple()" } }, - "id": 1782, + "id": 1779, "nodeType": "ExpressionStatement", "src": "8124:60:8" } @@ -3570,19 +3570,19 @@ }, { "expression": { - "id": 1785, + "id": 1782, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8219:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1770, - "id": 1786, + "functionReturnParameters": 1767, + "id": 1783, "nodeType": "Return", "src": "8212:17:8" } @@ -3592,12 +3592,12 @@ ] }, "documentation": { - "id": 1758, + "id": 1755, "nodeType": "StructuredDocumentation", "src": "7400:277:8", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1796, + "id": 1793, "implemented": true, "kind": "function", "modifiers": [], @@ -3605,17 +3605,17 @@ "nameLocation": "7691:26:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1767, + "id": 1764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1760, + "id": 1757, "mutability": "mutable", "name": "target", "nameLocation": "7735:6:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7727:14:8", "stateVariable": false, "storageLocation": "default", @@ -3624,7 +3624,7 @@ "typeString": "address" }, "typeName": { - "id": 1759, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", "src": "7727:7:8", @@ -3638,12 +3638,12 @@ }, { "constant": false, - "id": 1762, + "id": 1759, "mutability": "mutable", "name": "success", "nameLocation": "7756:7:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7751:12:8", "stateVariable": false, "storageLocation": "default", @@ -3652,7 +3652,7 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 1758, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7751:4:8", @@ -3665,12 +3665,12 @@ }, { "constant": false, - "id": 1764, + "id": 1761, "mutability": "mutable", "name": "returndata", "nameLocation": "7786:10:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7773:23:8", "stateVariable": false, "storageLocation": "memory", @@ -3679,7 +3679,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1763, + "id": 1760, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7773:5:8", @@ -3692,12 +3692,12 @@ }, { "constant": false, - "id": 1766, + "id": 1763, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7820:12:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7806:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3706,7 +3706,7 @@ "typeString": "string" }, "typeName": { - "id": 1765, + "id": 1762, "name": "string", "nodeType": "ElementaryTypeName", "src": "7806:6:8", @@ -3721,17 +3721,17 @@ "src": "7717:121:8" }, "returnParameters": { - "id": 1770, + "id": 1767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, + "id": 1766, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7862:12:8", "stateVariable": false, "storageLocation": "memory", @@ -3740,7 +3740,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1768, + "id": 1765, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7862:5:8", @@ -3754,7 +3754,7 @@ ], "src": "7861:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7682:628:8", "stateMutability": "view", "virtual": false, @@ -3762,17 +3762,17 @@ }, { "body": { - "id": 1819, + "id": 1816, "nodeType": "Block", "src": "8691:135:8", "statements": [ { "condition": { - "id": 1808, + "id": 1805, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, + "referencedDeclaration": 1796, "src": "8705:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3780,7 +3780,7 @@ } }, "falseBody": { - "id": 1817, + "id": 1814, "nodeType": "Block", "src": "8762:58:8", "statements": [ @@ -3788,11 +3788,11 @@ "expression": { "arguments": [ { - "id": 1813, + "id": 1810, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8784:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3800,11 +3800,11 @@ } }, { - "id": 1814, + "id": 1811, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, + "referencedDeclaration": 1800, "src": "8796:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3823,18 +3823,18 @@ "typeString": "string memory" } ], - "id": 1812, + "id": 1809, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8776:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1815, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -3850,35 +3850,35 @@ "typeString": "tuple()" } }, - "id": 1816, + "id": 1813, "nodeType": "ExpressionStatement", "src": "8776:33:8" } ] }, - "id": 1818, + "id": 1815, "nodeType": "IfStatement", "src": "8701:119:8", "trueBody": { - "id": 1811, + "id": 1808, "nodeType": "Block", "src": "8714:42:8", "statements": [ { "expression": { - "id": 1809, + "id": 1806, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8735:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1807, - "id": 1810, + "functionReturnParameters": 1804, + "id": 1807, "nodeType": "Return", "src": "8728:17:8" } @@ -3888,12 +3888,12 @@ ] }, "documentation": { - "id": 1797, + "id": 1794, "nodeType": "StructuredDocumentation", "src": "8316:210:8", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1820, + "id": 1817, "implemented": true, "kind": "function", "modifiers": [], @@ -3901,17 +3901,17 @@ "nameLocation": "8540:16:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1804, + "id": 1801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1796, "mutability": "mutable", "name": "success", "nameLocation": "8571:7:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8566:12:8", "stateVariable": false, "storageLocation": "default", @@ -3920,7 +3920,7 @@ "typeString": "bool" }, "typeName": { - "id": 1798, + "id": 1795, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8566:4:8", @@ -3933,12 +3933,12 @@ }, { "constant": false, - "id": 1801, + "id": 1798, "mutability": "mutable", "name": "returndata", "nameLocation": "8601:10:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8588:23:8", "stateVariable": false, "storageLocation": "memory", @@ -3947,7 +3947,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1797, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8588:5:8", @@ -3960,12 +3960,12 @@ }, { "constant": false, - "id": 1803, + "id": 1800, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8635:12:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8621:26:8", "stateVariable": false, "storageLocation": "memory", @@ -3974,7 +3974,7 @@ "typeString": "string" }, "typeName": { - "id": 1802, + "id": 1799, "name": "string", "nodeType": "ElementaryTypeName", "src": "8621:6:8", @@ -3989,17 +3989,17 @@ "src": "8556:97:8" }, "returnParameters": { - "id": 1807, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1806, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8677:12:8", "stateVariable": false, "storageLocation": "memory", @@ -4008,7 +4008,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1805, + "id": 1802, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8677:5:8", @@ -4022,7 +4022,7 @@ ], "src": "8676:14:8" }, - "scope": 1841, + "scope": 1838, "src": "8531:295:8", "stateMutability": "pure", "virtual": false, @@ -4030,7 +4030,7 @@ }, { "body": { - "id": 1839, + "id": 1836, "nodeType": "Block", "src": "8915:457:8", "statements": [ @@ -4040,25 +4040,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1830, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1827, + "id": 1824, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, + "referencedDeclaration": 1819, "src": "8991:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1828, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -4076,7 +4076,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1829, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -4097,7 +4097,7 @@ } }, "falseBody": { - "id": 1837, + "id": 1834, "nodeType": "Block", "src": "9321:45:8", "statements": [ @@ -4105,11 +4105,11 @@ "expression": { "arguments": [ { - "id": 1834, + "id": 1831, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1821, "src": "9342:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4124,7 +4124,7 @@ "typeString": "string memory" } ], - "id": 1833, + "id": 1830, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4138,7 +4138,7 @@ "typeString": "function (string memory) pure" } }, - "id": 1835, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,17 +4154,17 @@ "typeString": "tuple()" } }, - "id": 1836, + "id": 1833, "nodeType": "ExpressionStatement", "src": "9335:20:8" } ] }, - "id": 1838, + "id": 1835, "nodeType": "IfStatement", "src": "8987:379:8", "trueBody": { - "id": 1832, + "id": 1829, "nodeType": "Block", "src": "9014:301:8", "statements": [ @@ -4250,21 +4250,21 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9219:10:8", "valueSize": 1 }, { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9262:10:8", "valueSize": 1 } ], - "id": 1831, + "id": 1828, "nodeType": "InlineAssembly", "src": "9163:142:8" } @@ -4273,7 +4273,7 @@ } ] }, - "id": 1840, + "id": 1837, "implemented": true, "kind": "function", "modifiers": [], @@ -4281,17 +4281,17 @@ "nameLocation": "8841:7:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1825, + "id": 1822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1822, + "id": 1819, "mutability": "mutable", "name": "returndata", "nameLocation": "8862:10:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8849:23:8", "stateVariable": false, "storageLocation": "memory", @@ -4300,7 +4300,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1821, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8849:5:8", @@ -4313,12 +4313,12 @@ }, { "constant": false, - "id": 1824, + "id": 1821, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8888:12:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8874:26:8", "stateVariable": false, "storageLocation": "memory", @@ -4327,7 +4327,7 @@ "typeString": "string" }, "typeName": { - "id": 1823, + "id": 1820, "name": "string", "nodeType": "ElementaryTypeName", "src": "8874:6:8", @@ -4342,19 +4342,19 @@ "src": "8848:53:8" }, "returnParameters": { - "id": 1826, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "8915:0:8" }, - "scope": 1841, + "scope": 1838, "src": "8832:540:8", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1842, + "scope": 1839, "src": "194:9180:8", "usedErrors": [] } @@ -4365,15 +4365,15 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ] }, - "id": 1842, + "id": 1839, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1513, + "id": 1510, "literals": [ "solidity", "^", @@ -4390,15 +4390,15 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1514, + "id": 1511, "nodeType": "StructuredDocumentation", "src": "126:67:8", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1841, + "id": 1838, "linearizedBaseContracts": [ - 1841 + 1838 ], "name": "AddressUpgradeable", "nameLocation": "202:18:8", @@ -4406,7 +4406,7 @@ "nodes": [ { "body": { - "id": 1528, + "id": 1525, "nodeType": "Block", "src": "1489:254:8", "statements": [ @@ -4416,7 +4416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1526, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": false, @@ -4424,18 +4424,18 @@ "leftExpression": { "expression": { "expression": { - "id": 1522, + "id": 1519, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1514, "src": "1713:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1523, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -4449,7 +4449,7 @@ "typeString": "bytes memory" } }, - "id": 1524, + "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, @@ -4467,7 +4467,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1525, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": true, @@ -4487,20 +4487,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1521, - "id": 1527, + "functionReturnParameters": 1518, + "id": 1524, "nodeType": "Return", "src": "1706:30:8" } ] }, "documentation": { - "id": 1515, + "id": 1512, "nodeType": "StructuredDocumentation", "src": "227:1191:8", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1529, + "id": 1526, "implemented": true, "kind": "function", "modifiers": [], @@ -4508,17 +4508,17 @@ "nameLocation": "1432:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1518, + "id": 1515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1514, "mutability": "mutable", "name": "account", "nameLocation": "1451:7:8", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1443:15:8", "stateVariable": false, "storageLocation": "default", @@ -4527,7 +4527,7 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1443:7:8", @@ -4543,17 +4543,17 @@ "src": "1442:17:8" }, "returnParameters": { - "id": 1521, + "id": 1518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1520, + "id": 1517, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1529, + "scope": 1526, "src": "1483:4:8", "stateVariable": false, "storageLocation": "default", @@ -4562,7 +4562,7 @@ "typeString": "bool" }, "typeName": { - "id": 1519, + "id": 1516, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1483:4:8", @@ -4576,7 +4576,7 @@ ], "src": "1482:6:8" }, - "scope": 1841, + "scope": 1838, "src": "1423:320:8", "stateMutability": "view", "virtual": false, @@ -4584,7 +4584,7 @@ }, { "body": { - "id": 1562, + "id": 1559, "nodeType": "Block", "src": "2729:241:8", "statements": [ @@ -4596,7 +4596,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1544, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -4605,14 +4605,14 @@ "expression": { "arguments": [ { - "id": 1540, + "id": 1537, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "2755:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -4620,11 +4620,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1539, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, @@ -4636,14 +4636,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1538, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", "src": "2747:7:8", "typeDescriptions": {} } }, - "id": 1541, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, @@ -4659,7 +4659,7 @@ "typeString": "address" } }, - "id": 1542, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -4676,11 +4676,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1543, + "id": 1540, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2772:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4695,7 +4695,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1545, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -4721,7 +4721,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1537, + "id": 1534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4735,7 +4735,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1546, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, @@ -4751,24 +4751,24 @@ "typeString": "tuple()" } }, - "id": 1547, + "id": 1544, "nodeType": "ExpressionStatement", "src": "2739:73:8" }, { "assignments": [ - 1549, + 1546, null ], "declarations": [ { "constant": false, - "id": 1549, + "id": 1546, "mutability": "mutable", "name": "success", "nameLocation": "2829:7:8", "nodeType": "VariableDeclaration", - "scope": 1562, + "scope": 1559, "src": "2824:12:8", "stateVariable": false, "storageLocation": "default", @@ -4777,7 +4777,7 @@ "typeString": "bool" }, "typeName": { - "id": 1548, + "id": 1545, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2824:4:8", @@ -4790,12 +4790,12 @@ }, null ], - "id": 1556, + "id": 1553, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1554, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, @@ -4825,18 +4825,18 @@ } ], "expression": { - "id": 1550, + "id": 1547, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1532, + "referencedDeclaration": 1529, "src": "2842:9:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1551, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": false, @@ -4850,7 +4850,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1553, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,11 +4861,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1552, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1531, "src": "2864:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4879,7 +4879,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1555, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -4902,11 +4902,11 @@ "expression": { "arguments": [ { - "id": 1558, + "id": 1555, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1549, + "referencedDeclaration": 1546, "src": "2893:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4915,7 +4915,7 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1559, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -4941,7 +4941,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1557, + "id": 1554, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4955,7 +4955,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1560, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, @@ -4971,19 +4971,19 @@ "typeString": "tuple()" } }, - "id": 1561, + "id": 1558, "nodeType": "ExpressionStatement", "src": "2885:78:8" } ] }, "documentation": { - "id": 1530, + "id": 1527, "nodeType": "StructuredDocumentation", "src": "1749:904:8", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1563, + "id": 1560, "implemented": true, "kind": "function", "modifiers": [], @@ -4991,17 +4991,17 @@ "nameLocation": "2667:9:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1535, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1532, + "id": 1529, "mutability": "mutable", "name": "recipient", "nameLocation": "2693:9:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2677:25:8", "stateVariable": false, "storageLocation": "default", @@ -5010,7 +5010,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1531, + "id": 1528, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:15:8", @@ -5024,12 +5024,12 @@ }, { "constant": false, - "id": 1534, + "id": 1531, "mutability": "mutable", "name": "amount", "nameLocation": "2712:6:8", "nodeType": "VariableDeclaration", - "scope": 1563, + "scope": 1560, "src": "2704:14:8", "stateVariable": false, "storageLocation": "default", @@ -5038,7 +5038,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1533, + "id": 1530, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2704:7:8", @@ -5053,12 +5053,12 @@ "src": "2676:43:8" }, "returnParameters": { - "id": 1536, + "id": 1533, "nodeType": "ParameterList", "parameters": [], "src": "2729:0:8" }, - "scope": 1841, + "scope": 1838, "src": "2658:312:8", "stateMutability": "nonpayable", "virtual": false, @@ -5066,7 +5066,7 @@ }, { "body": { - "id": 1580, + "id": 1577, "nodeType": "Block", "src": "3801:96:8", "statements": [ @@ -5074,11 +5074,11 @@ "expression": { "arguments": [ { - "id": 1574, + "id": 1571, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1566, + "referencedDeclaration": 1563, "src": "3840:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5086,11 +5086,11 @@ } }, { - "id": 1575, + "id": 1572, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1568, + "referencedDeclaration": 1565, "src": "3848:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5099,7 +5099,7 @@ }, { "hexValue": "30", - "id": 1576, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": true, @@ -5115,7 +5115,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1577, + "id": 1574, "isConstant": false, "isLValue": false, "isPure": true, @@ -5149,21 +5149,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1573, + "id": 1570, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "3818:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1578, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -5179,20 +5179,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1572, - "id": 1579, + "functionReturnParameters": 1569, + "id": 1576, "nodeType": "Return", "src": "3811:79:8" } ] }, "documentation": { - "id": 1564, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "2976:731:8", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1581, + "id": 1578, "implemented": true, "kind": "function", "modifiers": [], @@ -5200,17 +5200,17 @@ "nameLocation": "3721:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1569, + "id": 1566, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1566, + "id": 1563, "mutability": "mutable", "name": "target", "nameLocation": "3742:6:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3734:14:8", "stateVariable": false, "storageLocation": "default", @@ -5219,7 +5219,7 @@ "typeString": "address" }, "typeName": { - "id": 1565, + "id": 1562, "name": "address", "nodeType": "ElementaryTypeName", "src": "3734:7:8", @@ -5233,12 +5233,12 @@ }, { "constant": false, - "id": 1568, + "id": 1565, "mutability": "mutable", "name": "data", "nameLocation": "3763:4:8", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3750:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5247,7 +5247,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1564, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3750:5:8", @@ -5262,17 +5262,17 @@ "src": "3733:35:8" }, "returnParameters": { - "id": 1572, + "id": 1569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1571, + "id": 1568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1581, + "scope": 1578, "src": "3787:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5281,7 +5281,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1570, + "id": 1567, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3787:5:8", @@ -5295,7 +5295,7 @@ ], "src": "3786:14:8" }, - "scope": 1841, + "scope": 1838, "src": "3712:185:8", "stateMutability": "nonpayable", "virtual": false, @@ -5303,7 +5303,7 @@ }, { "body": { - "id": 1600, + "id": 1597, "nodeType": "Block", "src": "4266:76:8", "statements": [ @@ -5311,11 +5311,11 @@ "expression": { "arguments": [ { - "id": 1594, + "id": 1591, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1584, + "referencedDeclaration": 1581, "src": "4305:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5323,11 +5323,11 @@ } }, { - "id": 1595, + "id": 1592, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1586, + "referencedDeclaration": 1583, "src": "4313:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5336,7 +5336,7 @@ }, { "hexValue": "30", - "id": 1596, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, @@ -5351,11 +5351,11 @@ "value": "0" }, { - "id": 1597, + "id": 1594, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, + "referencedDeclaration": 1585, "src": "4322:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5382,21 +5382,21 @@ "typeString": "string memory" } ], - "id": 1593, + "id": 1590, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4283:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1598, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, @@ -5412,20 +5412,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1592, - "id": 1599, + "functionReturnParameters": 1589, + "id": 1596, "nodeType": "Return", "src": "4276:59:8" } ] }, "documentation": { - "id": 1582, + "id": 1579, "nodeType": "StructuredDocumentation", "src": "3903:211:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1601, + "id": 1598, "implemented": true, "kind": "function", "modifiers": [], @@ -5433,17 +5433,17 @@ "nameLocation": "4128:12:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1589, + "id": 1586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1584, + "id": 1581, "mutability": "mutable", "name": "target", "nameLocation": "4158:6:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4150:14:8", "stateVariable": false, "storageLocation": "default", @@ -5452,7 +5452,7 @@ "typeString": "address" }, "typeName": { - "id": 1583, + "id": 1580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4150:7:8", @@ -5466,12 +5466,12 @@ }, { "constant": false, - "id": 1586, + "id": 1583, "mutability": "mutable", "name": "data", "nameLocation": "4187:4:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4174:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5480,7 +5480,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1585, + "id": 1582, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4174:5:8", @@ -5493,12 +5493,12 @@ }, { "constant": false, - "id": 1588, + "id": 1585, "mutability": "mutable", "name": "errorMessage", "nameLocation": "4215:12:8", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4201:26:8", "stateVariable": false, "storageLocation": "memory", @@ -5507,7 +5507,7 @@ "typeString": "string" }, "typeName": { - "id": 1587, + "id": 1584, "name": "string", "nodeType": "ElementaryTypeName", "src": "4201:6:8", @@ -5522,17 +5522,17 @@ "src": "4140:93:8" }, "returnParameters": { - "id": 1592, + "id": 1589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1591, + "id": 1588, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1601, + "scope": 1598, "src": "4252:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5541,7 +5541,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1590, + "id": 1587, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4252:5:8", @@ -5555,7 +5555,7 @@ ], "src": "4251:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4119:223:8", "stateMutability": "nonpayable", "virtual": false, @@ -5563,7 +5563,7 @@ }, { "body": { - "id": 1620, + "id": 1617, "nodeType": "Block", "src": "4817:111:8", "statements": [ @@ -5571,11 +5571,11 @@ "expression": { "arguments": [ { - "id": 1614, + "id": 1611, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, + "referencedDeclaration": 1601, "src": "4856:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5583,11 +5583,11 @@ } }, { - "id": 1615, + "id": 1612, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, + "referencedDeclaration": 1603, "src": "4864:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5595,11 +5595,11 @@ } }, { - "id": 1616, + "id": 1613, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1608, + "referencedDeclaration": 1605, "src": "4870:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5608,7 +5608,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1617, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -5642,21 +5642,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1613, + "id": 1610, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1621, - 1665 + 1618, + 1662 ], - "referencedDeclaration": 1665, + "referencedDeclaration": 1662, "src": "4834:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1618, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -5672,20 +5672,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1612, - "id": 1619, + "functionReturnParameters": 1609, + "id": 1616, "nodeType": "Return", "src": "4827:94:8" } ] }, "documentation": { - "id": 1602, + "id": 1599, "nodeType": "StructuredDocumentation", "src": "4348:351:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1621, + "id": 1618, "implemented": true, "kind": "function", "modifiers": [], @@ -5693,17 +5693,17 @@ "nameLocation": "4713:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1604, + "id": 1601, "mutability": "mutable", "name": "target", "nameLocation": "4743:6:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4735:14:8", "stateVariable": false, "storageLocation": "default", @@ -5712,7 +5712,7 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 1600, "name": "address", "nodeType": "ElementaryTypeName", "src": "4735:7:8", @@ -5726,12 +5726,12 @@ }, { "constant": false, - "id": 1606, + "id": 1603, "mutability": "mutable", "name": "data", "nameLocation": "4764:4:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4751:17:8", "stateVariable": false, "storageLocation": "memory", @@ -5740,7 +5740,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1605, + "id": 1602, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4751:5:8", @@ -5753,12 +5753,12 @@ }, { "constant": false, - "id": 1608, + "id": 1605, "mutability": "mutable", "name": "value", "nameLocation": "4778:5:8", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4770:13:8", "stateVariable": false, "storageLocation": "default", @@ -5767,7 +5767,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1607, + "id": 1604, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4770:7:8", @@ -5782,17 +5782,17 @@ "src": "4734:50:8" }, "returnParameters": { - "id": 1612, + "id": 1609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1611, + "id": 1608, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1621, + "scope": 1618, "src": "4803:12:8", "stateVariable": false, "storageLocation": "memory", @@ -5801,7 +5801,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1610, + "id": 1607, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4803:5:8", @@ -5815,7 +5815,7 @@ ], "src": "4802:14:8" }, - "scope": 1841, + "scope": 1838, "src": "4704:224:8", "stateMutability": "nonpayable", "virtual": false, @@ -5823,7 +5823,7 @@ }, { "body": { - "id": 1664, + "id": 1661, "nodeType": "Block", "src": "5355:267:8", "statements": [ @@ -5835,7 +5835,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1642, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -5844,14 +5844,14 @@ "expression": { "arguments": [ { - "id": 1638, + "id": 1635, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "5381:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } } @@ -5859,11 +5859,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1841", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", "typeString": "library AddressUpgradeable" } ], - "id": 1637, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": true, @@ -5875,14 +5875,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1636, + "id": 1633, "name": "address", "nodeType": "ElementaryTypeName", "src": "5373:7:8", "typeDescriptions": {} } }, - "id": 1639, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": false, @@ -5898,7 +5898,7 @@ "typeString": "address" } }, - "id": 1640, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -5915,11 +5915,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1641, + "id": 1638, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5398:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5934,7 +5934,7 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1643, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": true, @@ -5960,7 +5960,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1635, + "id": 1632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5974,7 +5974,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1644, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, @@ -5990,24 +5990,24 @@ "typeString": "tuple()" } }, - "id": 1645, + "id": 1642, "nodeType": "ExpressionStatement", "src": "5365:81:8" }, { "assignments": [ - 1647, - 1649 + 1644, + 1646 ], "declarations": [ { "constant": false, - "id": 1647, + "id": 1644, "mutability": "mutable", "name": "success", "nameLocation": "5462:7:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5457:12:8", "stateVariable": false, "storageLocation": "default", @@ -6016,7 +6016,7 @@ "typeString": "bool" }, "typeName": { - "id": 1646, + "id": 1643, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5457:4:8", @@ -6029,12 +6029,12 @@ }, { "constant": false, - "id": 1649, + "id": 1646, "mutability": "mutable", "name": "returndata", "nameLocation": "5484:10:8", "nodeType": "VariableDeclaration", - "scope": 1664, + "scope": 1661, "src": "5471:23:8", "stateVariable": false, "storageLocation": "memory", @@ -6043,7 +6043,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1648, + "id": 1645, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5471:5:8", @@ -6055,15 +6055,15 @@ "visibility": "internal" } ], - "id": 1656, + "id": 1653, "initialValue": { "arguments": [ { - "id": 1654, + "id": 1651, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, + "referencedDeclaration": 1623, "src": "5524:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6086,18 +6086,18 @@ } ], "expression": { - "id": 1650, + "id": 1647, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5498:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1651, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -6111,7 +6111,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1653, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, @@ -6122,11 +6122,11 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1652, + "id": 1649, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, + "referencedDeclaration": 1625, "src": "5517:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6140,7 +6140,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1655, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, @@ -6163,11 +6163,11 @@ "expression": { "arguments": [ { - "id": 1658, + "id": 1655, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1624, + "referencedDeclaration": 1621, "src": "5573:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6175,11 +6175,11 @@ } }, { - "id": 1659, + "id": 1656, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1647, + "referencedDeclaration": 1644, "src": "5581:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6187,11 +6187,11 @@ } }, { - "id": 1660, + "id": 1657, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, + "referencedDeclaration": 1646, "src": "5590:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6199,11 +6199,11 @@ } }, { - "id": 1661, + "id": 1658, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, + "referencedDeclaration": 1627, "src": "5602:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6230,18 +6230,18 @@ "typeString": "string memory" } ], - "id": 1657, + "id": 1654, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "5546:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1662, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -6257,20 +6257,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1634, - "id": 1663, + "functionReturnParameters": 1631, + "id": 1660, "nodeType": "Return", "src": "5539:76:8" } ] }, "documentation": { - "id": 1622, + "id": 1619, "nodeType": "StructuredDocumentation", "src": "4934:237:8", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1665, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [], @@ -6278,17 +6278,17 @@ "nameLocation": "5185:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1631, + "id": 1628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1624, + "id": 1621, "mutability": "mutable", "name": "target", "nameLocation": "5224:6:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5216:14:8", "stateVariable": false, "storageLocation": "default", @@ -6297,7 +6297,7 @@ "typeString": "address" }, "typeName": { - "id": 1623, + "id": 1620, "name": "address", "nodeType": "ElementaryTypeName", "src": "5216:7:8", @@ -6311,12 +6311,12 @@ }, { "constant": false, - "id": 1626, + "id": 1623, "mutability": "mutable", "name": "data", "nameLocation": "5253:4:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5240:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6325,7 +6325,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1625, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5240:5:8", @@ -6338,12 +6338,12 @@ }, { "constant": false, - "id": 1628, + "id": 1625, "mutability": "mutable", "name": "value", "nameLocation": "5275:5:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5267:13:8", "stateVariable": false, "storageLocation": "default", @@ -6352,7 +6352,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5267:7:8", @@ -6365,12 +6365,12 @@ }, { "constant": false, - "id": 1630, + "id": 1627, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5304:12:8", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5290:26:8", "stateVariable": false, "storageLocation": "memory", @@ -6379,7 +6379,7 @@ "typeString": "string" }, "typeName": { - "id": 1629, + "id": 1626, "name": "string", "nodeType": "ElementaryTypeName", "src": "5290:6:8", @@ -6394,17 +6394,17 @@ "src": "5206:116:8" }, "returnParameters": { - "id": 1634, + "id": 1631, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1633, + "id": 1630, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1665, + "scope": 1662, "src": "5341:12:8", "stateVariable": false, "storageLocation": "memory", @@ -6413,7 +6413,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1632, + "id": 1629, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5341:5:8", @@ -6427,7 +6427,7 @@ ], "src": "5340:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5176:446:8", "stateMutability": "nonpayable", "virtual": false, @@ -6435,7 +6435,7 @@ }, { "body": { - "id": 1681, + "id": 1678, "nodeType": "Block", "src": "5899:97:8", "statements": [ @@ -6443,11 +6443,11 @@ "expression": { "arguments": [ { - "id": 1676, + "id": 1673, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, + "referencedDeclaration": 1665, "src": "5935:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6455,11 +6455,11 @@ } }, { - "id": 1677, + "id": 1674, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1670, + "referencedDeclaration": 1667, "src": "5943:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6468,7 +6468,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1678, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -6498,21 +6498,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1675, + "id": 1672, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1682, - 1711 + 1679, + 1708 ], - "referencedDeclaration": 1711, + "referencedDeclaration": 1708, "src": "5916:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1679, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -6528,20 +6528,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1674, - "id": 1680, + "functionReturnParameters": 1671, + "id": 1677, "nodeType": "Return", "src": "5909:80:8" } ] }, "documentation": { - "id": 1666, + "id": 1663, "nodeType": "StructuredDocumentation", "src": "5628:166:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1682, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], @@ -6549,17 +6549,17 @@ "nameLocation": "5808:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1671, + "id": 1668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1668, + "id": 1665, "mutability": "mutable", "name": "target", "nameLocation": "5835:6:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5827:14:8", "stateVariable": false, "storageLocation": "default", @@ -6568,7 +6568,7 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 1664, "name": "address", "nodeType": "ElementaryTypeName", "src": "5827:7:8", @@ -6582,12 +6582,12 @@ }, { "constant": false, - "id": 1670, + "id": 1667, "mutability": "mutable", "name": "data", "nameLocation": "5856:4:8", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5843:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6596,7 +6596,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1666, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5843:5:8", @@ -6611,17 +6611,17 @@ "src": "5826:35:8" }, "returnParameters": { - "id": 1674, + "id": 1671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1670, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1682, + "scope": 1679, "src": "5885:12:8", "stateVariable": false, "storageLocation": "memory", @@ -6630,7 +6630,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1672, + "id": 1669, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5885:5:8", @@ -6644,7 +6644,7 @@ ], "src": "5884:14:8" }, - "scope": 1841, + "scope": 1838, "src": "5799:197:8", "stateMutability": "view", "virtual": false, @@ -6652,24 +6652,24 @@ }, { "body": { - "id": 1710, + "id": 1707, "nodeType": "Block", "src": "6338:168:8", "statements": [ { "assignments": [ - 1695, - 1697 + 1692, + 1694 ], "declarations": [ { "constant": false, - "id": 1695, + "id": 1692, "mutability": "mutable", "name": "success", "nameLocation": "6354:7:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6349:12:8", "stateVariable": false, "storageLocation": "default", @@ -6678,7 +6678,7 @@ "typeString": "bool" }, "typeName": { - "id": 1694, + "id": 1691, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6349:4:8", @@ -6691,12 +6691,12 @@ }, { "constant": false, - "id": 1697, + "id": 1694, "mutability": "mutable", "name": "returndata", "nameLocation": "6376:10:8", "nodeType": "VariableDeclaration", - "scope": 1710, + "scope": 1707, "src": "6363:23:8", "stateVariable": false, "storageLocation": "memory", @@ -6705,7 +6705,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1696, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6363:5:8", @@ -6717,15 +6717,15 @@ "visibility": "internal" } ], - "id": 1702, + "id": 1699, "initialValue": { "arguments": [ { - "id": 1700, + "id": 1697, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, + "referencedDeclaration": 1684, "src": "6408:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6741,18 +6741,18 @@ } ], "expression": { - "id": 1698, + "id": 1695, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6390:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1699, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -6766,7 +6766,7 @@ "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1701, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": false, @@ -6789,11 +6789,11 @@ "expression": { "arguments": [ { - "id": 1704, + "id": 1701, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, + "referencedDeclaration": 1682, "src": "6457:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6801,11 +6801,11 @@ } }, { - "id": 1705, + "id": 1702, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, + "referencedDeclaration": 1692, "src": "6465:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6813,11 +6813,11 @@ } }, { - "id": 1706, + "id": 1703, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, + "referencedDeclaration": 1694, "src": "6474:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6825,11 +6825,11 @@ } }, { - "id": 1707, + "id": 1704, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1689, + "referencedDeclaration": 1686, "src": "6486:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6856,18 +6856,18 @@ "typeString": "string memory" } ], - "id": 1703, + "id": 1700, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "6430:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1708, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, @@ -6883,20 +6883,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1693, - "id": 1709, + "functionReturnParameters": 1690, + "id": 1706, "nodeType": "Return", "src": "6423:76:8" } ] }, "documentation": { - "id": 1683, + "id": 1680, "nodeType": "StructuredDocumentation", "src": "6002:173:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1711, + "id": 1708, "implemented": true, "kind": "function", "modifiers": [], @@ -6904,17 +6904,17 @@ "nameLocation": "6189:18:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1690, + "id": 1687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1685, + "id": 1682, "mutability": "mutable", "name": "target", "nameLocation": "6225:6:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6217:14:8", "stateVariable": false, "storageLocation": "default", @@ -6923,7 +6923,7 @@ "typeString": "address" }, "typeName": { - "id": 1684, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", "src": "6217:7:8", @@ -6937,12 +6937,12 @@ }, { "constant": false, - "id": 1687, + "id": 1684, "mutability": "mutable", "name": "data", "nameLocation": "6254:4:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6241:17:8", "stateVariable": false, "storageLocation": "memory", @@ -6951,7 +6951,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1686, + "id": 1683, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6241:5:8", @@ -6964,12 +6964,12 @@ }, { "constant": false, - "id": 1689, + "id": 1686, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6282:12:8", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6268:26:8", "stateVariable": false, "storageLocation": "memory", @@ -6978,7 +6978,7 @@ "typeString": "string" }, "typeName": { - "id": 1688, + "id": 1685, "name": "string", "nodeType": "ElementaryTypeName", "src": "6268:6:8", @@ -6993,17 +6993,17 @@ "src": "6207:93:8" }, "returnParameters": { - "id": 1693, + "id": 1690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1692, + "id": 1689, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1711, + "scope": 1708, "src": "6324:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7012,7 +7012,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1691, + "id": 1688, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6324:5:8", @@ -7026,7 +7026,7 @@ ], "src": "6323:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6180:326:8", "stateMutability": "view", "virtual": false, @@ -7034,7 +7034,7 @@ }, { "body": { - "id": 1727, + "id": 1724, "nodeType": "Block", "src": "6782:101:8", "statements": [ @@ -7042,11 +7042,11 @@ "expression": { "arguments": [ { - "id": 1722, + "id": 1719, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1714, + "referencedDeclaration": 1711, "src": "6820:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7054,11 +7054,11 @@ } }, { - "id": 1723, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1713, "src": "6828:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7067,7 +7067,7 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1724, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -7097,21 +7097,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1721, + "id": 1718, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1728, - 1757 + 1725, + 1754 ], - "referencedDeclaration": 1757, + "referencedDeclaration": 1754, "src": "6799:20:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1725, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -7127,20 +7127,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1720, - "id": 1726, + "functionReturnParameters": 1717, + "id": 1723, "nodeType": "Return", "src": "6792:84:8" } ] }, "documentation": { - "id": 1712, + "id": 1709, "nodeType": "StructuredDocumentation", "src": "6512:168:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1728, + "id": 1725, "implemented": true, "kind": "function", "modifiers": [], @@ -7148,17 +7148,17 @@ "nameLocation": "6694:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1717, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1714, + "id": 1711, "mutability": "mutable", "name": "target", "nameLocation": "6723:6:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6715:14:8", "stateVariable": false, "storageLocation": "default", @@ -7167,7 +7167,7 @@ "typeString": "address" }, "typeName": { - "id": 1713, + "id": 1710, "name": "address", "nodeType": "ElementaryTypeName", "src": "6715:7:8", @@ -7181,12 +7181,12 @@ }, { "constant": false, - "id": 1716, + "id": 1713, "mutability": "mutable", "name": "data", "nameLocation": "6744:4:8", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6731:17:8", "stateVariable": false, "storageLocation": "memory", @@ -7195,7 +7195,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1712, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6731:5:8", @@ -7210,17 +7210,17 @@ "src": "6714:35:8" }, "returnParameters": { - "id": 1720, + "id": 1717, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1719, + "id": 1716, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1728, + "scope": 1725, "src": "6768:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7229,7 +7229,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1718, + "id": 1715, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6768:5:8", @@ -7243,7 +7243,7 @@ ], "src": "6767:14:8" }, - "scope": 1841, + "scope": 1838, "src": "6685:198:8", "stateMutability": "nonpayable", "virtual": false, @@ -7251,24 +7251,24 @@ }, { "body": { - "id": 1756, + "id": 1753, "nodeType": "Block", "src": "7224:170:8", "statements": [ { "assignments": [ - 1741, - 1743 + 1738, + 1740 ], "declarations": [ { "constant": false, - "id": 1741, + "id": 1738, "mutability": "mutable", "name": "success", "nameLocation": "7240:7:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7235:12:8", "stateVariable": false, "storageLocation": "default", @@ -7277,7 +7277,7 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 1737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7235:4:8", @@ -7290,12 +7290,12 @@ }, { "constant": false, - "id": 1743, + "id": 1740, "mutability": "mutable", "name": "returndata", "nameLocation": "7262:10:8", "nodeType": "VariableDeclaration", - "scope": 1756, + "scope": 1753, "src": "7249:23:8", "stateVariable": false, "storageLocation": "memory", @@ -7304,7 +7304,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1742, + "id": 1739, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7249:5:8", @@ -7316,15 +7316,15 @@ "visibility": "internal" } ], - "id": 1748, + "id": 1745, "initialValue": { "arguments": [ { - "id": 1746, + "id": 1743, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1730, "src": "7296:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7340,18 +7340,18 @@ } ], "expression": { - "id": 1744, + "id": 1741, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7276:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1745, + "id": 1742, "isConstant": false, "isLValue": false, "isPure": false, @@ -7365,7 +7365,7 @@ "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1747, + "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, @@ -7388,11 +7388,11 @@ "expression": { "arguments": [ { - "id": 1750, + "id": 1747, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, + "referencedDeclaration": 1728, "src": "7345:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7400,11 +7400,11 @@ } }, { - "id": 1751, + "id": 1748, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, + "referencedDeclaration": 1738, "src": "7353:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7412,11 +7412,11 @@ } }, { - "id": 1752, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1743, + "referencedDeclaration": 1740, "src": "7362:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7424,11 +7424,11 @@ } }, { - "id": 1753, + "id": 1750, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, + "referencedDeclaration": 1732, "src": "7374:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -7455,18 +7455,18 @@ "typeString": "string memory" } ], - "id": 1749, + "id": 1746, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1793, "src": "7318:26:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1754, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -7482,20 +7482,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 1739, - "id": 1755, + "functionReturnParameters": 1736, + "id": 1752, "nodeType": "Return", "src": "7311:76:8" } ] }, "documentation": { - "id": 1729, + "id": 1726, "nodeType": "StructuredDocumentation", "src": "6889:175:8", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1757, + "id": 1754, "implemented": true, "kind": "function", "modifiers": [], @@ -7503,17 +7503,17 @@ "nameLocation": "7078:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1728, "mutability": "mutable", "name": "target", "nameLocation": "7116:6:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7108:14:8", "stateVariable": false, "storageLocation": "default", @@ -7522,7 +7522,7 @@ "typeString": "address" }, "typeName": { - "id": 1730, + "id": 1727, "name": "address", "nodeType": "ElementaryTypeName", "src": "7108:7:8", @@ -7536,12 +7536,12 @@ }, { "constant": false, - "id": 1733, + "id": 1730, "mutability": "mutable", "name": "data", "nameLocation": "7145:4:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7132:17:8", "stateVariable": false, "storageLocation": "memory", @@ -7550,7 +7550,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1732, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7132:5:8", @@ -7563,12 +7563,12 @@ }, { "constant": false, - "id": 1735, + "id": 1732, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7173:12:8", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7159:26:8", "stateVariable": false, "storageLocation": "memory", @@ -7577,7 +7577,7 @@ "typeString": "string" }, "typeName": { - "id": 1734, + "id": 1731, "name": "string", "nodeType": "ElementaryTypeName", "src": "7159:6:8", @@ -7592,17 +7592,17 @@ "src": "7098:93:8" }, "returnParameters": { - "id": 1739, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1738, + "id": 1735, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1757, + "scope": 1754, "src": "7210:12:8", "stateVariable": false, "storageLocation": "memory", @@ -7611,7 +7611,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1737, + "id": 1734, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7210:5:8", @@ -7625,7 +7625,7 @@ ], "src": "7209:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7069:325:8", "stateMutability": "nonpayable", "virtual": false, @@ -7633,17 +7633,17 @@ }, { "body": { - "id": 1795, + "id": 1792, "nodeType": "Block", "src": "7876:434:8", "statements": [ { "condition": { - "id": 1771, + "id": 1768, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1762, + "referencedDeclaration": 1759, "src": "7890:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7651,7 +7651,7 @@ } }, "falseBody": { - "id": 1793, + "id": 1790, "nodeType": "Block", "src": "8246:58:8", "statements": [ @@ -7659,11 +7659,11 @@ "expression": { "arguments": [ { - "id": 1789, + "id": 1786, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8268:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7671,11 +7671,11 @@ } }, { - "id": 1790, + "id": 1787, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, + "referencedDeclaration": 1763, "src": "8280:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -7694,18 +7694,18 @@ "typeString": "string memory" } ], - "id": 1788, + "id": 1785, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8260:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1791, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -7721,17 +7721,17 @@ "typeString": "tuple()" } }, - "id": 1792, + "id": 1789, "nodeType": "ExpressionStatement", "src": "8260:33:8" } ] }, - "id": 1794, + "id": 1791, "nodeType": "IfStatement", "src": "7886:418:8", "trueBody": { - "id": 1787, + "id": 1784, "nodeType": "Block", "src": "7899:341:8", "statements": [ @@ -7741,25 +7741,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1775, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1772, + "id": 1769, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "7917:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1773, + "id": 1770, "isConstant": false, "isLValue": false, "isPure": false, @@ -7777,7 +7777,7 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1774, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, @@ -7797,11 +7797,11 @@ "typeString": "bool" } }, - "id": 1784, + "id": 1781, "nodeType": "IfStatement", "src": "7913:286:8", "trueBody": { - "id": 1783, + "id": 1780, "nodeType": "Block", "src": "7941:258:8", "statements": [ @@ -7811,11 +7811,11 @@ { "arguments": [ { - "id": 1778, + "id": 1775, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, + "referencedDeclaration": 1757, "src": "8143:6:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7830,18 +7830,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1774, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "8132:10:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": false, @@ -7859,7 +7859,7 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1780, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -7885,7 +7885,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1776, + "id": 1773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7899,7 +7899,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -7915,7 +7915,7 @@ "typeString": "tuple()" } }, - "id": 1782, + "id": 1779, "nodeType": "ExpressionStatement", "src": "8124:60:8" } @@ -7924,19 +7924,19 @@ }, { "expression": { - "id": 1785, + "id": 1782, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, + "referencedDeclaration": 1761, "src": "8219:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1770, - "id": 1786, + "functionReturnParameters": 1767, + "id": 1783, "nodeType": "Return", "src": "8212:17:8" } @@ -7946,12 +7946,12 @@ ] }, "documentation": { - "id": 1758, + "id": 1755, "nodeType": "StructuredDocumentation", "src": "7400:277:8", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1796, + "id": 1793, "implemented": true, "kind": "function", "modifiers": [], @@ -7959,17 +7959,17 @@ "nameLocation": "7691:26:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1767, + "id": 1764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1760, + "id": 1757, "mutability": "mutable", "name": "target", "nameLocation": "7735:6:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7727:14:8", "stateVariable": false, "storageLocation": "default", @@ -7978,7 +7978,7 @@ "typeString": "address" }, "typeName": { - "id": 1759, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", "src": "7727:7:8", @@ -7992,12 +7992,12 @@ }, { "constant": false, - "id": 1762, + "id": 1759, "mutability": "mutable", "name": "success", "nameLocation": "7756:7:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7751:12:8", "stateVariable": false, "storageLocation": "default", @@ -8006,7 +8006,7 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 1758, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7751:4:8", @@ -8019,12 +8019,12 @@ }, { "constant": false, - "id": 1764, + "id": 1761, "mutability": "mutable", "name": "returndata", "nameLocation": "7786:10:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7773:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8033,7 +8033,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1763, + "id": 1760, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7773:5:8", @@ -8046,12 +8046,12 @@ }, { "constant": false, - "id": 1766, + "id": 1763, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7820:12:8", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7806:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8060,7 +8060,7 @@ "typeString": "string" }, "typeName": { - "id": 1765, + "id": 1762, "name": "string", "nodeType": "ElementaryTypeName", "src": "7806:6:8", @@ -8075,17 +8075,17 @@ "src": "7717:121:8" }, "returnParameters": { - "id": 1770, + "id": 1767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, + "id": 1766, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1796, + "scope": 1793, "src": "7862:12:8", "stateVariable": false, "storageLocation": "memory", @@ -8094,7 +8094,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1768, + "id": 1765, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7862:5:8", @@ -8108,7 +8108,7 @@ ], "src": "7861:14:8" }, - "scope": 1841, + "scope": 1838, "src": "7682:628:8", "stateMutability": "view", "virtual": false, @@ -8116,17 +8116,17 @@ }, { "body": { - "id": 1819, + "id": 1816, "nodeType": "Block", "src": "8691:135:8", "statements": [ { "condition": { - "id": 1808, + "id": 1805, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, + "referencedDeclaration": 1796, "src": "8705:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8134,7 +8134,7 @@ } }, "falseBody": { - "id": 1817, + "id": 1814, "nodeType": "Block", "src": "8762:58:8", "statements": [ @@ -8142,11 +8142,11 @@ "expression": { "arguments": [ { - "id": 1813, + "id": 1810, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8784:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8154,11 +8154,11 @@ } }, { - "id": 1814, + "id": 1811, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, + "referencedDeclaration": 1800, "src": "8796:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8177,18 +8177,18 @@ "typeString": "string memory" } ], - "id": 1812, + "id": 1809, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 1837, "src": "8776:7:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1815, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -8204,35 +8204,35 @@ "typeString": "tuple()" } }, - "id": 1816, + "id": 1813, "nodeType": "ExpressionStatement", "src": "8776:33:8" } ] }, - "id": 1818, + "id": 1815, "nodeType": "IfStatement", "src": "8701:119:8", "trueBody": { - "id": 1811, + "id": 1808, "nodeType": "Block", "src": "8714:42:8", "statements": [ { "expression": { - "id": 1809, + "id": 1806, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1798, "src": "8735:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1807, - "id": 1810, + "functionReturnParameters": 1804, + "id": 1807, "nodeType": "Return", "src": "8728:17:8" } @@ -8242,12 +8242,12 @@ ] }, "documentation": { - "id": 1797, + "id": 1794, "nodeType": "StructuredDocumentation", "src": "8316:210:8", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1820, + "id": 1817, "implemented": true, "kind": "function", "modifiers": [], @@ -8255,17 +8255,17 @@ "nameLocation": "8540:16:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1804, + "id": 1801, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1796, "mutability": "mutable", "name": "success", "nameLocation": "8571:7:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8566:12:8", "stateVariable": false, "storageLocation": "default", @@ -8274,7 +8274,7 @@ "typeString": "bool" }, "typeName": { - "id": 1798, + "id": 1795, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8566:4:8", @@ -8287,12 +8287,12 @@ }, { "constant": false, - "id": 1801, + "id": 1798, "mutability": "mutable", "name": "returndata", "nameLocation": "8601:10:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8588:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8301,7 +8301,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1797, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8588:5:8", @@ -8314,12 +8314,12 @@ }, { "constant": false, - "id": 1803, + "id": 1800, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8635:12:8", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8621:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8328,7 +8328,7 @@ "typeString": "string" }, "typeName": { - "id": 1802, + "id": 1799, "name": "string", "nodeType": "ElementaryTypeName", "src": "8621:6:8", @@ -8343,17 +8343,17 @@ "src": "8556:97:8" }, "returnParameters": { - "id": 1807, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1806, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1820, + "scope": 1817, "src": "8677:12:8", "stateVariable": false, "storageLocation": "memory", @@ -8362,7 +8362,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1805, + "id": 1802, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8677:5:8", @@ -8376,7 +8376,7 @@ ], "src": "8676:14:8" }, - "scope": 1841, + "scope": 1838, "src": "8531:295:8", "stateMutability": "pure", "virtual": false, @@ -8384,7 +8384,7 @@ }, { "body": { - "id": 1839, + "id": 1836, "nodeType": "Block", "src": "8915:457:8", "statements": [ @@ -8394,25 +8394,25 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1830, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1827, + "id": 1824, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, + "referencedDeclaration": 1819, "src": "8991:10:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1828, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -8430,7 +8430,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1829, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -8451,7 +8451,7 @@ } }, "falseBody": { - "id": 1837, + "id": 1834, "nodeType": "Block", "src": "9321:45:8", "statements": [ @@ -8459,11 +8459,11 @@ "expression": { "arguments": [ { - "id": 1834, + "id": 1831, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1821, "src": "9342:12:8", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8478,7 +8478,7 @@ "typeString": "string memory" } ], - "id": 1833, + "id": 1830, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8492,7 +8492,7 @@ "typeString": "function (string memory) pure" } }, - "id": 1835, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -8508,17 +8508,17 @@ "typeString": "tuple()" } }, - "id": 1836, + "id": 1833, "nodeType": "ExpressionStatement", "src": "9335:20:8" } ] }, - "id": 1838, + "id": 1835, "nodeType": "IfStatement", "src": "8987:379:8", "trueBody": { - "id": 1832, + "id": 1829, "nodeType": "Block", "src": "9014:301:8", "statements": [ @@ -8604,21 +8604,21 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9219:10:8", "valueSize": 1 }, { - "declaration": 1822, + "declaration": 1819, "isOffset": false, "isSlot": false, "src": "9262:10:8", "valueSize": 1 } ], - "id": 1831, + "id": 1828, "nodeType": "InlineAssembly", "src": "9163:142:8" } @@ -8627,7 +8627,7 @@ } ] }, - "id": 1840, + "id": 1837, "implemented": true, "kind": "function", "modifiers": [], @@ -8635,17 +8635,17 @@ "nameLocation": "8841:7:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1825, + "id": 1822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1822, + "id": 1819, "mutability": "mutable", "name": "returndata", "nameLocation": "8862:10:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8849:23:8", "stateVariable": false, "storageLocation": "memory", @@ -8654,7 +8654,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1821, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8849:5:8", @@ -8667,12 +8667,12 @@ }, { "constant": false, - "id": 1824, + "id": 1821, "mutability": "mutable", "name": "errorMessage", "nameLocation": "8888:12:8", "nodeType": "VariableDeclaration", - "scope": 1840, + "scope": 1837, "src": "8874:26:8", "stateVariable": false, "storageLocation": "memory", @@ -8681,7 +8681,7 @@ "typeString": "string" }, "typeName": { - "id": 1823, + "id": 1820, "name": "string", "nodeType": "ElementaryTypeName", "src": "8874:6:8", @@ -8696,19 +8696,19 @@ "src": "8848:53:8" }, "returnParameters": { - "id": 1826, + "id": 1823, "nodeType": "ParameterList", "parameters": [], "src": "8915:0:8" }, - "scope": 1841, + "scope": 1838, "src": "8832:540:8", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1842, + "scope": 1839, "src": "194:9180:8", "usedErrors": [] } @@ -8721,5 +8721,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.554Z" + "updatedAt": "2024-06-27T12:24:25.260Z" } \ No newline at end of file diff --git a/build/contracts/Context.json b/build/contracts/Context.json index 42df018..14584cf 100644 --- a/build/contracts/Context.json +++ b/build/contracts/Context.json @@ -11,15 +11,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ] }, - "id": 2613, + "id": 2610, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2584, + "id": 2581, "literals": [ "solidity", "^", @@ -36,15 +36,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 2585, + "id": 2582, "nodeType": "StructuredDocumentation", "src": "126:496:13", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 2612, + "id": 2609, "linearizedBaseContracts": [ - 2612 + 2609 ], "name": "Context", "nameLocation": "641:7:13", @@ -52,14 +52,14 @@ "nodes": [ { "body": { - "id": 2593, + "id": 2590, "nodeType": "Block", "src": "717:34:13", "statements": [ { "expression": { "expression": { - "id": 2590, + "id": 2587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -70,7 +70,7 @@ "typeString": "msg" } }, - "id": 2591, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -84,14 +84,14 @@ "typeString": "address" } }, - "functionReturnParameters": 2589, - "id": 2592, + "functionReturnParameters": 2586, + "id": 2589, "nodeType": "Return", "src": "727:17:13" } ] }, - "id": 2594, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], @@ -99,23 +99,23 @@ "nameLocation": "664:10:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2586, + "id": 2583, "nodeType": "ParameterList", "parameters": [], "src": "674:2:13" }, "returnParameters": { - "id": 2589, + "id": 2586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2585, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2594, + "scope": 2591, "src": "708:7:13", "stateVariable": false, "storageLocation": "default", @@ -124,7 +124,7 @@ "typeString": "address" }, "typeName": { - "id": 2587, + "id": 2584, "name": "address", "nodeType": "ElementaryTypeName", "src": "708:7:13", @@ -139,7 +139,7 @@ ], "src": "707:9:13" }, - "scope": 2612, + "scope": 2609, "src": "655:96:13", "stateMutability": "view", "virtual": true, @@ -147,14 +147,14 @@ }, { "body": { - "id": 2602, + "id": 2599, "nodeType": "Block", "src": "824:32:13", "statements": [ { "expression": { "expression": { - "id": 2599, + "id": 2596, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -165,7 +165,7 @@ "typeString": "msg" } }, - "id": 2600, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -179,14 +179,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 2598, - "id": 2601, + "functionReturnParameters": 2595, + "id": 2598, "nodeType": "Return", "src": "834:15:13" } ] }, - "id": 2603, + "id": 2600, "implemented": true, "kind": "function", "modifiers": [], @@ -194,23 +194,23 @@ "nameLocation": "766:8:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2592, "nodeType": "ParameterList", "parameters": [], "src": "774:2:13" }, "returnParameters": { - "id": 2598, + "id": 2595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2594, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2603, + "scope": 2600, "src": "808:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -219,7 +219,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2596, + "id": 2593, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:13", @@ -233,7 +233,7 @@ ], "src": "807:16:13" }, - "scope": 2612, + "scope": 2609, "src": "757:99:13", "stateMutability": "view", "virtual": true, @@ -241,14 +241,14 @@ }, { "body": { - "id": 2610, + "id": 2607, "nodeType": "Block", "src": "934:25:13", "statements": [ { "expression": { "hexValue": "30", - "id": 2608, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, @@ -262,14 +262,14 @@ }, "value": "0" }, - "functionReturnParameters": 2607, - "id": 2609, + "functionReturnParameters": 2604, + "id": 2606, "nodeType": "Return", "src": "944:8:13" } ] }, - "id": 2611, + "id": 2608, "implemented": true, "kind": "function", "modifiers": [], @@ -277,23 +277,23 @@ "nameLocation": "871:20:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2604, + "id": 2601, "nodeType": "ParameterList", "parameters": [], "src": "891:2:13" }, "returnParameters": { - "id": 2607, + "id": 2604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2606, + "id": 2603, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2611, + "scope": 2608, "src": "925:7:13", "stateVariable": false, "storageLocation": "default", @@ -302,7 +302,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2605, + "id": 2602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "925:7:13", @@ -316,14 +316,14 @@ ], "src": "924:9:13" }, - "scope": 2612, + "scope": 2609, "src": "862:97:13", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 2613, + "scope": 2610, "src": "623:338:13", "usedErrors": [] } @@ -334,15 +334,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ] }, - "id": 2613, + "id": 2610, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2584, + "id": 2581, "literals": [ "solidity", "^", @@ -359,15 +359,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 2585, + "id": 2582, "nodeType": "StructuredDocumentation", "src": "126:496:13", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 2612, + "id": 2609, "linearizedBaseContracts": [ - 2612 + 2609 ], "name": "Context", "nameLocation": "641:7:13", @@ -375,14 +375,14 @@ "nodes": [ { "body": { - "id": 2593, + "id": 2590, "nodeType": "Block", "src": "717:34:13", "statements": [ { "expression": { "expression": { - "id": 2590, + "id": 2587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -393,7 +393,7 @@ "typeString": "msg" } }, - "id": 2591, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -407,14 +407,14 @@ "typeString": "address" } }, - "functionReturnParameters": 2589, - "id": 2592, + "functionReturnParameters": 2586, + "id": 2589, "nodeType": "Return", "src": "727:17:13" } ] }, - "id": 2594, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], @@ -422,23 +422,23 @@ "nameLocation": "664:10:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2586, + "id": 2583, "nodeType": "ParameterList", "parameters": [], "src": "674:2:13" }, "returnParameters": { - "id": 2589, + "id": 2586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2585, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2594, + "scope": 2591, "src": "708:7:13", "stateVariable": false, "storageLocation": "default", @@ -447,7 +447,7 @@ "typeString": "address" }, "typeName": { - "id": 2587, + "id": 2584, "name": "address", "nodeType": "ElementaryTypeName", "src": "708:7:13", @@ -462,7 +462,7 @@ ], "src": "707:9:13" }, - "scope": 2612, + "scope": 2609, "src": "655:96:13", "stateMutability": "view", "virtual": true, @@ -470,14 +470,14 @@ }, { "body": { - "id": 2602, + "id": 2599, "nodeType": "Block", "src": "824:32:13", "statements": [ { "expression": { "expression": { - "id": 2599, + "id": 2596, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -488,7 +488,7 @@ "typeString": "msg" } }, - "id": 2600, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -502,14 +502,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 2598, - "id": 2601, + "functionReturnParameters": 2595, + "id": 2598, "nodeType": "Return", "src": "834:15:13" } ] }, - "id": 2603, + "id": 2600, "implemented": true, "kind": "function", "modifiers": [], @@ -517,23 +517,23 @@ "nameLocation": "766:8:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2592, "nodeType": "ParameterList", "parameters": [], "src": "774:2:13" }, "returnParameters": { - "id": 2598, + "id": 2595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2594, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2603, + "scope": 2600, "src": "808:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -542,7 +542,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2596, + "id": 2593, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:13", @@ -556,7 +556,7 @@ ], "src": "807:16:13" }, - "scope": 2612, + "scope": 2609, "src": "757:99:13", "stateMutability": "view", "virtual": true, @@ -564,14 +564,14 @@ }, { "body": { - "id": 2610, + "id": 2607, "nodeType": "Block", "src": "934:25:13", "statements": [ { "expression": { "hexValue": "30", - "id": 2608, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, @@ -585,14 +585,14 @@ }, "value": "0" }, - "functionReturnParameters": 2607, - "id": 2609, + "functionReturnParameters": 2604, + "id": 2606, "nodeType": "Return", "src": "944:8:13" } ] }, - "id": 2611, + "id": 2608, "implemented": true, "kind": "function", "modifiers": [], @@ -600,23 +600,23 @@ "nameLocation": "871:20:13", "nodeType": "FunctionDefinition", "parameters": { - "id": 2604, + "id": 2601, "nodeType": "ParameterList", "parameters": [], "src": "891:2:13" }, "returnParameters": { - "id": 2607, + "id": 2604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2606, + "id": 2603, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2611, + "scope": 2608, "src": "925:7:13", "stateVariable": false, "storageLocation": "default", @@ -625,7 +625,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2605, + "id": 2602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "925:7:13", @@ -639,14 +639,14 @@ ], "src": "924:9:13" }, - "scope": 2612, + "scope": 2609, "src": "862:97:13", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 2613, + "scope": 2610, "src": "623:338:13", "usedErrors": [] } @@ -659,5 +659,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.557Z" + "updatedAt": "2024-06-27T12:24:25.259Z" } \ No newline at end of file diff --git a/build/contracts/ContextUpgradeable.json b/build/contracts/ContextUpgradeable.json index 2bc747a..981c686 100644 --- a/build/contracts/ContextUpgradeable.json +++ b/build/contracts/ContextUpgradeable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1893, + "id": 1890, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1843, + "id": 1840, "literals": [ "solidity", "^", @@ -49,20 +49,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1845, + "id": 1842, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1893, - "sourceUnit": 1384, + "scope": 1890, + "sourceUnit": 1381, "src": "125:63:9", "symbolAliases": [ { "foreign": { - "id": 1844, + "id": 1841, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "133:13:9", "typeDescriptions": {} }, @@ -76,16 +76,16 @@ "baseContracts": [ { "baseName": { - "id": 1847, + "id": 1844, "name": "Initializable", "nameLocations": [ "727:13:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "727:13:9" }, - "id": 1848, + "id": 1845, "nodeType": "InheritanceSpecifier", "src": "727:13:9" } @@ -94,16 +94,16 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1846, + "id": 1843, "nodeType": "StructuredDocumentation", "src": "190:496:9", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1892, + "id": 1889, "linearizedBaseContracts": [ - 1892, - 1383 + 1889, + 1380 ], "name": "ContextUpgradeable", "nameLocation": "705:18:9", @@ -111,26 +111,26 @@ "nodes": [ { "body": { - "id": 1853, + "id": 1850, "nodeType": "Block", "src": "799:7:9", "statements": [] }, - "id": 1854, + "id": 1851, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1851, + "id": 1848, "kind": "modifierInvocation", "modifierName": { - "id": 1850, + "id": 1847, "name": "onlyInitializing", "nameLocations": [ "782:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "782:16:9" }, "nodeType": "ModifierInvocation", @@ -141,18 +141,18 @@ "nameLocation": "756:14:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1849, + "id": 1846, "nodeType": "ParameterList", "parameters": [], "src": "770:2:9" }, "returnParameters": { - "id": 1852, + "id": 1849, "nodeType": "ParameterList", "parameters": [], "src": "799:0:9" }, - "scope": 1892, + "scope": 1889, "src": "747:59:9", "stateMutability": "nonpayable", "virtual": false, @@ -160,26 +160,26 @@ }, { "body": { - "id": 1859, + "id": 1856, "nodeType": "Block", "src": "874:7:9", "statements": [] }, - "id": 1860, + "id": 1857, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1857, + "id": 1854, "kind": "modifierInvocation", "modifierName": { - "id": 1856, + "id": 1853, "name": "onlyInitializing", "nameLocations": [ "857:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "857:16:9" }, "nodeType": "ModifierInvocation", @@ -190,18 +190,18 @@ "nameLocation": "821:24:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1855, + "id": 1852, "nodeType": "ParameterList", "parameters": [], "src": "845:2:9" }, "returnParameters": { - "id": 1858, + "id": 1855, "nodeType": "ParameterList", "parameters": [], "src": "874:0:9" }, - "scope": 1892, + "scope": 1889, "src": "812:69:9", "stateMutability": "nonpayable", "virtual": false, @@ -209,14 +209,14 @@ }, { "body": { - "id": 1868, + "id": 1865, "nodeType": "Block", "src": "948:34:9", "statements": [ { "expression": { "expression": { - "id": 1865, + "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -227,7 +227,7 @@ "typeString": "msg" } }, - "id": 1866, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -241,14 +241,14 @@ "typeString": "address" } }, - "functionReturnParameters": 1864, - "id": 1867, + "functionReturnParameters": 1861, + "id": 1864, "nodeType": "Return", "src": "958:17:9" } ] }, - "id": 1869, + "id": 1866, "implemented": true, "kind": "function", "modifiers": [], @@ -256,23 +256,23 @@ "nameLocation": "895:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1861, + "id": 1858, "nodeType": "ParameterList", "parameters": [], "src": "905:2:9" }, "returnParameters": { - "id": 1864, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 1860, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1869, + "scope": 1866, "src": "939:7:9", "stateVariable": false, "storageLocation": "default", @@ -281,7 +281,7 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 1859, "name": "address", "nodeType": "ElementaryTypeName", "src": "939:7:9", @@ -296,7 +296,7 @@ ], "src": "938:9:9" }, - "scope": 1892, + "scope": 1889, "src": "886:96:9", "stateMutability": "view", "virtual": true, @@ -304,14 +304,14 @@ }, { "body": { - "id": 1877, + "id": 1874, "nodeType": "Block", "src": "1055:32:9", "statements": [ { "expression": { "expression": { - "id": 1874, + "id": 1871, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -322,7 +322,7 @@ "typeString": "msg" } }, - "id": 1875, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -336,14 +336,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1873, - "id": 1876, + "functionReturnParameters": 1870, + "id": 1873, "nodeType": "Return", "src": "1065:15:9" } ] }, - "id": 1878, + "id": 1875, "implemented": true, "kind": "function", "modifiers": [], @@ -351,23 +351,23 @@ "nameLocation": "997:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1870, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "1005:2:9" }, "returnParameters": { - "id": 1873, + "id": 1870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1872, + "id": 1869, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1878, + "scope": 1875, "src": "1039:14:9", "stateVariable": false, "storageLocation": "calldata", @@ -376,7 +376,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1871, + "id": 1868, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1039:5:9", @@ -390,7 +390,7 @@ ], "src": "1038:16:9" }, - "scope": 1892, + "scope": 1889, "src": "988:99:9", "stateMutability": "view", "virtual": true, @@ -398,14 +398,14 @@ }, { "body": { - "id": 1885, + "id": 1882, "nodeType": "Block", "src": "1165:25:9", "statements": [ { "expression": { "hexValue": "30", - "id": 1883, + "id": 1880, "isConstant": false, "isLValue": false, "isPure": true, @@ -419,14 +419,14 @@ }, "value": "0" }, - "functionReturnParameters": 1882, - "id": 1884, + "functionReturnParameters": 1879, + "id": 1881, "nodeType": "Return", "src": "1175:8:9" } ] }, - "id": 1886, + "id": 1883, "implemented": true, "kind": "function", "modifiers": [], @@ -434,23 +434,23 @@ "nameLocation": "1102:20:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1879, + "id": 1876, "nodeType": "ParameterList", "parameters": [], "src": "1122:2:9" }, "returnParameters": { - "id": 1882, + "id": 1879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1881, + "id": 1878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1886, + "scope": 1883, "src": "1156:7:9", "stateVariable": false, "storageLocation": "default", @@ -459,7 +459,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1880, + "id": 1877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1156:7:9", @@ -473,7 +473,7 @@ ], "src": "1155:9:9" }, - "scope": 1892, + "scope": 1889, "src": "1093:97:9", "stateMutability": "view", "virtual": true, @@ -482,17 +482,17 @@ { "constant": false, "documentation": { - "id": 1887, + "id": 1884, "nodeType": "StructuredDocumentation", "src": "1196:254:9", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1891, + "id": 1888, "mutability": "mutable", "name": "__gap", "nameLocation": "1475:5:9", "nodeType": "VariableDeclaration", - "scope": 1892, + "scope": 1889, "src": "1455:25:9", "stateVariable": true, "storageLocation": "default", @@ -502,7 +502,7 @@ }, "typeName": { "baseType": { - "id": 1888, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1455:7:9", @@ -511,10 +511,10 @@ "typeString": "uint256" } }, - "id": 1890, + "id": 1887, "length": { "hexValue": "3530", - "id": 1889, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -538,7 +538,7 @@ "visibility": "private" } ], - "scope": 1893, + "scope": 1890, "src": "687:796:9", "usedErrors": [] } @@ -549,18 +549,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1893, + "id": 1890, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1843, + "id": 1840, "literals": [ "solidity", "^", @@ -573,20 +573,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1845, + "id": 1842, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1893, - "sourceUnit": 1384, + "scope": 1890, + "sourceUnit": 1381, "src": "125:63:9", "symbolAliases": [ { "foreign": { - "id": 1844, + "id": 1841, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "133:13:9", "typeDescriptions": {} }, @@ -600,16 +600,16 @@ "baseContracts": [ { "baseName": { - "id": 1847, + "id": 1844, "name": "Initializable", "nameLocations": [ "727:13:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "727:13:9" }, - "id": 1848, + "id": 1845, "nodeType": "InheritanceSpecifier", "src": "727:13:9" } @@ -618,16 +618,16 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1846, + "id": 1843, "nodeType": "StructuredDocumentation", "src": "190:496:9", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1892, + "id": 1889, "linearizedBaseContracts": [ - 1892, - 1383 + 1889, + 1380 ], "name": "ContextUpgradeable", "nameLocation": "705:18:9", @@ -635,26 +635,26 @@ "nodes": [ { "body": { - "id": 1853, + "id": 1850, "nodeType": "Block", "src": "799:7:9", "statements": [] }, - "id": 1854, + "id": 1851, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1851, + "id": 1848, "kind": "modifierInvocation", "modifierName": { - "id": 1850, + "id": 1847, "name": "onlyInitializing", "nameLocations": [ "782:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "782:16:9" }, "nodeType": "ModifierInvocation", @@ -665,18 +665,18 @@ "nameLocation": "756:14:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1849, + "id": 1846, "nodeType": "ParameterList", "parameters": [], "src": "770:2:9" }, "returnParameters": { - "id": 1852, + "id": 1849, "nodeType": "ParameterList", "parameters": [], "src": "799:0:9" }, - "scope": 1892, + "scope": 1889, "src": "747:59:9", "stateMutability": "nonpayable", "virtual": false, @@ -684,26 +684,26 @@ }, { "body": { - "id": 1859, + "id": 1856, "nodeType": "Block", "src": "874:7:9", "statements": [] }, - "id": 1860, + "id": 1857, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1857, + "id": 1854, "kind": "modifierInvocation", "modifierName": { - "id": 1856, + "id": 1853, "name": "onlyInitializing", "nameLocations": [ "857:16:9" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "857:16:9" }, "nodeType": "ModifierInvocation", @@ -714,18 +714,18 @@ "nameLocation": "821:24:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1855, + "id": 1852, "nodeType": "ParameterList", "parameters": [], "src": "845:2:9" }, "returnParameters": { - "id": 1858, + "id": 1855, "nodeType": "ParameterList", "parameters": [], "src": "874:0:9" }, - "scope": 1892, + "scope": 1889, "src": "812:69:9", "stateMutability": "nonpayable", "virtual": false, @@ -733,14 +733,14 @@ }, { "body": { - "id": 1868, + "id": 1865, "nodeType": "Block", "src": "948:34:9", "statements": [ { "expression": { "expression": { - "id": 1865, + "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -751,7 +751,7 @@ "typeString": "msg" } }, - "id": 1866, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -765,14 +765,14 @@ "typeString": "address" } }, - "functionReturnParameters": 1864, - "id": 1867, + "functionReturnParameters": 1861, + "id": 1864, "nodeType": "Return", "src": "958:17:9" } ] }, - "id": 1869, + "id": 1866, "implemented": true, "kind": "function", "modifiers": [], @@ -780,23 +780,23 @@ "nameLocation": "895:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1861, + "id": 1858, "nodeType": "ParameterList", "parameters": [], "src": "905:2:9" }, "returnParameters": { - "id": 1864, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1863, + "id": 1860, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1869, + "scope": 1866, "src": "939:7:9", "stateVariable": false, "storageLocation": "default", @@ -805,7 +805,7 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 1859, "name": "address", "nodeType": "ElementaryTypeName", "src": "939:7:9", @@ -820,7 +820,7 @@ ], "src": "938:9:9" }, - "scope": 1892, + "scope": 1889, "src": "886:96:9", "stateMutability": "view", "virtual": true, @@ -828,14 +828,14 @@ }, { "body": { - "id": 1877, + "id": 1874, "nodeType": "Block", "src": "1055:32:9", "statements": [ { "expression": { "expression": { - "id": 1874, + "id": 1871, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -846,7 +846,7 @@ "typeString": "msg" } }, - "id": 1875, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -860,14 +860,14 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1873, - "id": 1876, + "functionReturnParameters": 1870, + "id": 1873, "nodeType": "Return", "src": "1065:15:9" } ] }, - "id": 1878, + "id": 1875, "implemented": true, "kind": "function", "modifiers": [], @@ -875,23 +875,23 @@ "nameLocation": "997:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1870, + "id": 1867, "nodeType": "ParameterList", "parameters": [], "src": "1005:2:9" }, "returnParameters": { - "id": 1873, + "id": 1870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1872, + "id": 1869, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1878, + "scope": 1875, "src": "1039:14:9", "stateVariable": false, "storageLocation": "calldata", @@ -900,7 +900,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1871, + "id": 1868, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1039:5:9", @@ -914,7 +914,7 @@ ], "src": "1038:16:9" }, - "scope": 1892, + "scope": 1889, "src": "988:99:9", "stateMutability": "view", "virtual": true, @@ -922,14 +922,14 @@ }, { "body": { - "id": 1885, + "id": 1882, "nodeType": "Block", "src": "1165:25:9", "statements": [ { "expression": { "hexValue": "30", - "id": 1883, + "id": 1880, "isConstant": false, "isLValue": false, "isPure": true, @@ -943,14 +943,14 @@ }, "value": "0" }, - "functionReturnParameters": 1882, - "id": 1884, + "functionReturnParameters": 1879, + "id": 1881, "nodeType": "Return", "src": "1175:8:9" } ] }, - "id": 1886, + "id": 1883, "implemented": true, "kind": "function", "modifiers": [], @@ -958,23 +958,23 @@ "nameLocation": "1102:20:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1879, + "id": 1876, "nodeType": "ParameterList", "parameters": [], "src": "1122:2:9" }, "returnParameters": { - "id": 1882, + "id": 1879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1881, + "id": 1878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1886, + "scope": 1883, "src": "1156:7:9", "stateVariable": false, "storageLocation": "default", @@ -983,7 +983,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1880, + "id": 1877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1156:7:9", @@ -997,7 +997,7 @@ ], "src": "1155:9:9" }, - "scope": 1892, + "scope": 1889, "src": "1093:97:9", "stateMutability": "view", "virtual": true, @@ -1006,17 +1006,17 @@ { "constant": false, "documentation": { - "id": 1887, + "id": 1884, "nodeType": "StructuredDocumentation", "src": "1196:254:9", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1891, + "id": 1888, "mutability": "mutable", "name": "__gap", "nameLocation": "1475:5:9", "nodeType": "VariableDeclaration", - "scope": 1892, + "scope": 1889, "src": "1455:25:9", "stateVariable": true, "storageLocation": "default", @@ -1026,7 +1026,7 @@ }, "typeName": { "baseType": { - "id": 1888, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1455:7:9", @@ -1035,10 +1035,10 @@ "typeString": "uint256" } }, - "id": 1890, + "id": 1887, "length": { "hexValue": "3530", - "id": 1889, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -1062,7 +1062,7 @@ "visibility": "private" } ], - "scope": 1893, + "scope": 1890, "src": "687:796:9", "usedErrors": [] } @@ -1075,5 +1075,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.555Z" + "updatedAt": "2024-06-27T12:24:25.257Z" } \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 61198f8..008d2dc 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -298,24 +298,24 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ], "ERC20": [ - 2479 + 2476 ], "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2480, + "id": 2477, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1894, + "id": 1891, "literals": [ "solidity", "^", @@ -328,11 +328,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1895, + "id": 1892, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2558, + "scope": 2477, + "sourceUnit": 2555, "src": "130:22:10", "symbolAliases": [], "unitAlias": "" @@ -340,11 +340,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", - "id": 1896, + "id": 1893, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2583, + "scope": 2477, + "sourceUnit": 2580, "src": "153:41:10", "symbolAliases": [], "unitAlias": "" @@ -352,11 +352,11 @@ { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", - "id": 1897, + "id": 1894, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2613, + "scope": 2477, + "sourceUnit": 2610, "src": "195:33:10", "symbolAliases": [], "unitAlias": "" @@ -366,46 +366,46 @@ "baseContracts": [ { "baseName": { - "id": 1899, + "id": 1896, "name": "Context", "nameLocations": [ "1550:7:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2612, + "referencedDeclaration": 2609, "src": "1550:7:10" }, - "id": 1900, + "id": 1897, "nodeType": "InheritanceSpecifier", "src": "1550:7:10" }, { "baseName": { - "id": 1901, + "id": 1898, "name": "IERC20", "nameLocations": [ "1559:6:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "1559:6:10" }, - "id": 1902, + "id": 1899, "nodeType": "InheritanceSpecifier", "src": "1559:6:10" }, { "baseName": { - "id": 1903, + "id": 1900, "name": "IERC20Metadata", "nameLocations": [ "1567:14:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2582, + "referencedDeclaration": 2579, "src": "1567:14:10" }, - "id": 1904, + "id": 1901, "nodeType": "InheritanceSpecifier", "src": "1567:14:10" } @@ -414,18 +414,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1898, + "id": 1895, "nodeType": "StructuredDocumentation", "src": "230:1301:10", "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." }, "fullyImplemented": true, - "id": 2479, + "id": 2476, "linearizedBaseContracts": [ - 2479, - 2582, - 2557, - 2612 + 2476, + 2579, + 2554, + 2609 ], "name": "ERC20", "nameLocation": "1541:5:10", @@ -433,12 +433,12 @@ "nodes": [ { "constant": false, - "id": 1908, + "id": 1905, "mutability": "mutable", "name": "_balances", "nameLocation": "1624:9:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1588:45:10", "stateVariable": true, "storageLocation": "default", @@ -447,11 +447,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 1907, + "id": 1904, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1905, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "1596:7:10", @@ -469,7 +469,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1906, + "id": 1903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:10", @@ -483,12 +483,12 @@ }, { "constant": false, - "id": 1914, + "id": 1911, "mutability": "mutable", "name": "_allowances", "nameLocation": "1696:11:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1640:67:10", "stateVariable": true, "storageLocation": "default", @@ -497,11 +497,11 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 1913, + "id": 1910, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1909, + "id": 1906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1648:7:10", @@ -519,11 +519,11 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1912, + "id": 1909, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1910, + "id": 1907, "name": "address", "nodeType": "ElementaryTypeName", "src": "1667:7:10", @@ -541,7 +541,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1911, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1678:7:10", @@ -556,12 +556,12 @@ }, { "constant": false, - "id": 1916, + "id": 1913, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1730:12:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1714:28:10", "stateVariable": true, "storageLocation": "default", @@ -570,7 +570,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1915, + "id": 1912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1714:7:10", @@ -583,12 +583,12 @@ }, { "constant": false, - "id": 1918, + "id": 1915, "mutability": "mutable", "name": "_name", "nameLocation": "1764:5:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1749:20:10", "stateVariable": true, "storageLocation": "default", @@ -597,7 +597,7 @@ "typeString": "string" }, "typeName": { - "id": 1917, + "id": 1914, "name": "string", "nodeType": "ElementaryTypeName", "src": "1749:6:10", @@ -610,12 +610,12 @@ }, { "constant": false, - "id": 1920, + "id": 1917, "mutability": "mutable", "name": "_symbol", "nameLocation": "1790:7:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1775:22:10", "stateVariable": true, "storageLocation": "default", @@ -624,7 +624,7 @@ "typeString": "string" }, "typeName": { - "id": 1919, + "id": 1916, "name": "string", "nodeType": "ElementaryTypeName", "src": "1775:6:10", @@ -637,23 +637,23 @@ }, { "body": { - "id": 1936, + "id": 1933, "nodeType": "Block", "src": "2036:57:10", "statements": [ { "expression": { - "id": 1930, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1928, + "id": 1925, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2046:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -663,11 +663,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1929, + "id": 1926, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1920, "src": "2054:5:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -680,23 +680,23 @@ "typeString": "string storage ref" } }, - "id": 1931, + "id": 1928, "nodeType": "ExpressionStatement", "src": "2046:13:10" }, { "expression": { - "id": 1934, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1932, + "id": 1929, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2069:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -706,11 +706,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1933, + "id": 1930, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1922, "src": "2079:7:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -723,19 +723,19 @@ "typeString": "string storage ref" } }, - "id": 1935, + "id": 1932, "nodeType": "ExpressionStatement", "src": "2069:17:10" } ] }, "documentation": { - "id": 1921, + "id": 1918, "nodeType": "StructuredDocumentation", "src": "1804:171:10", "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." }, - "id": 1937, + "id": 1934, "implemented": true, "kind": "constructor", "modifiers": [], @@ -743,17 +743,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1926, + "id": 1923, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1923, + "id": 1920, "mutability": "mutable", "name": "name_", "nameLocation": "2006:5:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "1992:19:10", "stateVariable": false, "storageLocation": "memory", @@ -762,7 +762,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1919, "name": "string", "nodeType": "ElementaryTypeName", "src": "1992:6:10", @@ -775,12 +775,12 @@ }, { "constant": false, - "id": 1925, + "id": 1922, "mutability": "mutable", "name": "symbol_", "nameLocation": "2027:7:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "2013:21:10", "stateVariable": false, "storageLocation": "memory", @@ -789,7 +789,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1921, "name": "string", "nodeType": "ElementaryTypeName", "src": "2013:6:10", @@ -804,12 +804,12 @@ "src": "1991:44:10" }, "returnParameters": { - "id": 1927, + "id": 1924, "nodeType": "ParameterList", "parameters": [], "src": "2036:0:10" }, - "scope": 2479, + "scope": 2476, "src": "1980:113:10", "stateMutability": "nonpayable", "virtual": false, @@ -817,41 +817,41 @@ }, { "baseFunctions": [ - 2569 + 2566 ], "body": { - "id": 1946, + "id": 1943, "nodeType": "Block", "src": "2227:29:10", "statements": [ { "expression": { - "id": 1944, + "id": 1941, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2244:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1943, - "id": 1945, + "functionReturnParameters": 1940, + "id": 1942, "nodeType": "Return", "src": "2237:12:10" } ] }, "documentation": { - "id": 1938, + "id": 1935, "nodeType": "StructuredDocumentation", "src": "2099:54:10", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 1947, + "id": 1944, "implemented": true, "kind": "function", "modifiers": [], @@ -859,29 +859,29 @@ "nameLocation": "2167:4:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1940, + "id": 1937, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2194:8:10" }, "parameters": { - "id": 1939, + "id": 1936, "nodeType": "ParameterList", "parameters": [], "src": "2171:2:10" }, "returnParameters": { - "id": 1943, + "id": 1940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1942, + "id": 1939, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1947, + "scope": 1944, "src": "2212:13:10", "stateVariable": false, "storageLocation": "memory", @@ -890,7 +890,7 @@ "typeString": "string" }, "typeName": { - "id": 1941, + "id": 1938, "name": "string", "nodeType": "ElementaryTypeName", "src": "2212:6:10", @@ -904,7 +904,7 @@ ], "src": "2211:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2158:98:10", "stateMutability": "view", "virtual": true, @@ -912,41 +912,41 @@ }, { "baseFunctions": [ - 2575 + 2572 ], "body": { - "id": 1956, + "id": 1953, "nodeType": "Block", "src": "2440:31:10", "statements": [ { "expression": { - "id": 1954, + "id": 1951, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2457:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1953, - "id": 1955, + "functionReturnParameters": 1950, + "id": 1952, "nodeType": "Return", "src": "2450:14:10" } ] }, "documentation": { - "id": 1948, + "id": 1945, "nodeType": "StructuredDocumentation", "src": "2262:102:10", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." }, "functionSelector": "95d89b41", - "id": 1957, + "id": 1954, "implemented": true, "kind": "function", "modifiers": [], @@ -954,29 +954,29 @@ "nameLocation": "2378:6:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1950, + "id": 1947, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2407:8:10" }, "parameters": { - "id": 1949, + "id": 1946, "nodeType": "ParameterList", "parameters": [], "src": "2384:2:10" }, "returnParameters": { - "id": 1953, + "id": 1950, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1952, + "id": 1949, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1957, + "scope": 1954, "src": "2425:13:10", "stateVariable": false, "storageLocation": "memory", @@ -985,7 +985,7 @@ "typeString": "string" }, "typeName": { - "id": 1951, + "id": 1948, "name": "string", "nodeType": "ElementaryTypeName", "src": "2425:6:10", @@ -999,7 +999,7 @@ ], "src": "2424:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2369:102:10", "stateMutability": "view", "virtual": true, @@ -1007,17 +1007,17 @@ }, { "baseFunctions": [ - 2581 + 2578 ], "body": { - "id": 1966, + "id": 1963, "nodeType": "Block", "src": "3169:26:10", "statements": [ { "expression": { "hexValue": "3138", - "id": 1964, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, @@ -1031,21 +1031,21 @@ }, "value": "18" }, - "functionReturnParameters": 1963, - "id": 1965, + "functionReturnParameters": 1960, + "id": 1962, "nodeType": "Return", "src": "3179:9:10" } ] }, "documentation": { - "id": 1958, + "id": 1955, "nodeType": "StructuredDocumentation", "src": "2477:622:10", "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." }, "functionSelector": "313ce567", - "id": 1967, + "id": 1964, "implemented": true, "kind": "function", "modifiers": [], @@ -1053,29 +1053,29 @@ "nameLocation": "3113:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1960, + "id": 1957, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3144:8:10" }, "parameters": { - "id": 1959, + "id": 1956, "nodeType": "ParameterList", "parameters": [], "src": "3121:2:10" }, "returnParameters": { - "id": 1963, + "id": 1960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1962, + "id": 1959, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1967, + "scope": 1964, "src": "3162:5:10", "stateVariable": false, "storageLocation": "default", @@ -1084,7 +1084,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1961, + "id": 1958, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3162:5:10", @@ -1098,7 +1098,7 @@ ], "src": "3161:7:10" }, - "scope": 2479, + "scope": 2476, "src": "3104:91:10", "stateMutability": "view", "virtual": true, @@ -1106,41 +1106,41 @@ }, { "baseFunctions": [ - 2506 + 2503 ], "body": { - "id": 1976, + "id": 1973, "nodeType": "Block", "src": "3325:36:10", "statements": [ { "expression": { - "id": 1974, + "id": 1971, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "3342:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1973, - "id": 1975, + "functionReturnParameters": 1970, + "id": 1972, "nodeType": "Return", "src": "3335:19:10" } ] }, "documentation": { - "id": 1968, + "id": 1965, "nodeType": "StructuredDocumentation", "src": "3201:49:10", "text": " @dev See {IERC20-totalSupply}." }, "functionSelector": "18160ddd", - "id": 1977, + "id": 1974, "implemented": true, "kind": "function", "modifiers": [], @@ -1148,29 +1148,29 @@ "nameLocation": "3264:11:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1970, + "id": 1967, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3298:8:10" }, "parameters": { - "id": 1969, + "id": 1966, "nodeType": "ParameterList", "parameters": [], "src": "3275:2:10" }, "returnParameters": { - "id": 1973, + "id": 1970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 1969, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1977, + "scope": 1974, "src": "3316:7:10", "stateVariable": false, "storageLocation": "default", @@ -1179,7 +1179,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1971, + "id": 1968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3316:7:10", @@ -1193,7 +1193,7 @@ ], "src": "3315:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3255:106:10", "stateMutability": "view", "virtual": true, @@ -1201,34 +1201,34 @@ }, { "baseFunctions": [ - 2514 + 2511 ], "body": { - "id": 1990, + "id": 1987, "nodeType": "Block", "src": "3502:42:10", "statements": [ { "expression": { "baseExpression": { - "id": 1986, + "id": 1983, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "3519:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1988, + "id": 1985, "indexExpression": { - "id": 1987, + "id": 1984, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, + "referencedDeclaration": 1977, "src": "3529:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1246,21 +1246,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1985, - "id": 1989, + "functionReturnParameters": 1982, + "id": 1986, "nodeType": "Return", "src": "3512:25:10" } ] }, "documentation": { - "id": 1978, + "id": 1975, "nodeType": "StructuredDocumentation", "src": "3367:47:10", "text": " @dev See {IERC20-balanceOf}." }, "functionSelector": "70a08231", - "id": 1991, + "id": 1988, "implemented": true, "kind": "function", "modifiers": [], @@ -1268,23 +1268,23 @@ "nameLocation": "3428:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1982, + "id": 1979, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3475:8:10" }, "parameters": { - "id": 1981, + "id": 1978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1980, + "id": 1977, "mutability": "mutable", "name": "account", "nameLocation": "3446:7:10", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3438:15:10", "stateVariable": false, "storageLocation": "default", @@ -1293,7 +1293,7 @@ "typeString": "address" }, "typeName": { - "id": 1979, + "id": 1976, "name": "address", "nodeType": "ElementaryTypeName", "src": "3438:7:10", @@ -1309,17 +1309,17 @@ "src": "3437:17:10" }, "returnParameters": { - "id": 1985, + "id": 1982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 1981, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3493:7:10", "stateVariable": false, "storageLocation": "default", @@ -1328,7 +1328,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1983, + "id": 1980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3493:7:10", @@ -1342,7 +1342,7 @@ ], "src": "3492:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3419:125:10", "stateMutability": "view", "virtual": true, @@ -1350,26 +1350,26 @@ }, { "baseFunctions": [ - 2524 + 2521 ], "body": { - "id": 2015, + "id": 2012, "nodeType": "Block", "src": "3825:104:10", "statements": [ { "assignments": [ - 2003 + 2000 ], "declarations": [ { "constant": false, - "id": 2003, + "id": 2000, "mutability": "mutable", "name": "owner", "nameLocation": "3843:5:10", "nodeType": "VariableDeclaration", - "scope": 2015, + "scope": 2012, "src": "3835:13:10", "stateVariable": false, "storageLocation": "default", @@ -1378,7 +1378,7 @@ "typeString": "address" }, "typeName": { - "id": 2002, + "id": 1999, "name": "address", "nodeType": "ElementaryTypeName", "src": "3835:7:10", @@ -1391,23 +1391,23 @@ "visibility": "internal" } ], - "id": 2006, + "id": 2003, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2004, + "id": 2001, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "3851:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2005, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, @@ -1430,11 +1430,11 @@ "expression": { "arguments": [ { - "id": 2008, + "id": 2005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2003, + "referencedDeclaration": 2000, "src": "3883:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1442,11 +1442,11 @@ } }, { - "id": 2009, + "id": 2006, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1994, + "referencedDeclaration": 1991, "src": "3890:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1454,11 +1454,11 @@ } }, { - "id": 2010, + "id": 2007, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1996, + "referencedDeclaration": 1993, "src": "3894:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1481,18 +1481,18 @@ "typeString": "uint256" } ], - "id": 2007, + "id": 2004, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "3873:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2011, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -1508,14 +1508,14 @@ "typeString": "tuple()" } }, - "id": 2012, + "id": 2009, "nodeType": "ExpressionStatement", "src": "3873:28:10" }, { "expression": { "hexValue": "74727565", - "id": 2013, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": true, @@ -1529,21 +1529,21 @@ }, "value": "true" }, - "functionReturnParameters": 2001, - "id": 2014, + "functionReturnParameters": 1998, + "id": 2011, "nodeType": "Return", "src": "3911:11:10" } ] }, "documentation": { - "id": 1992, + "id": 1989, "nodeType": "StructuredDocumentation", "src": "3550:185:10", "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." }, "functionSelector": "a9059cbb", - "id": 2016, + "id": 2013, "implemented": true, "kind": "function", "modifiers": [], @@ -1551,23 +1551,23 @@ "nameLocation": "3749:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1998, + "id": 1995, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3801:8:10" }, "parameters": { - "id": 1997, + "id": 1994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1994, + "id": 1991, "mutability": "mutable", "name": "to", "nameLocation": "3766:2:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3758:10:10", "stateVariable": false, "storageLocation": "default", @@ -1576,7 +1576,7 @@ "typeString": "address" }, "typeName": { - "id": 1993, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", "src": "3758:7:10", @@ -1590,12 +1590,12 @@ }, { "constant": false, - "id": 1996, + "id": 1993, "mutability": "mutable", "name": "amount", "nameLocation": "3778:6:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3770:14:10", "stateVariable": false, "storageLocation": "default", @@ -1604,7 +1604,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1995, + "id": 1992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3770:7:10", @@ -1619,17 +1619,17 @@ "src": "3757:28:10" }, "returnParameters": { - "id": 2001, + "id": 1998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2000, + "id": 1997, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3819:4:10", "stateVariable": false, "storageLocation": "default", @@ -1638,7 +1638,7 @@ "typeString": "bool" }, "typeName": { - "id": 1999, + "id": 1996, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3819:4:10", @@ -1652,7 +1652,7 @@ ], "src": "3818:6:10" }, - "scope": 2479, + "scope": 2476, "src": "3740:189:10", "stateMutability": "nonpayable", "virtual": true, @@ -1660,10 +1660,10 @@ }, { "baseFunctions": [ - 2534 + 2531 ], "body": { - "id": 2033, + "id": 2030, "nodeType": "Block", "src": "4085:51:10", "statements": [ @@ -1671,24 +1671,24 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 2027, + "id": 2024, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "4102:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2029, + "id": 2026, "indexExpression": { - "id": 2028, + "id": 2025, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 2016, "src": "4114:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1706,13 +1706,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2031, + "id": 2028, "indexExpression": { - "id": 2030, + "id": 2027, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, + "referencedDeclaration": 2018, "src": "4121:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1730,21 +1730,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2026, - "id": 2032, + "functionReturnParameters": 2023, + "id": 2029, "nodeType": "Return", "src": "4095:34:10" } ] }, "documentation": { - "id": 2017, + "id": 2014, "nodeType": "StructuredDocumentation", "src": "3935:47:10", "text": " @dev See {IERC20-allowance}." }, "functionSelector": "dd62ed3e", - "id": 2034, + "id": 2031, "implemented": true, "kind": "function", "modifiers": [], @@ -1752,23 +1752,23 @@ "nameLocation": "3996:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2023, + "id": 2020, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4058:8:10" }, "parameters": { - "id": 2022, + "id": 2019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2019, + "id": 2016, "mutability": "mutable", "name": "owner", "nameLocation": "4014:5:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4006:13:10", "stateVariable": false, "storageLocation": "default", @@ -1777,7 +1777,7 @@ "typeString": "address" }, "typeName": { - "id": 2018, + "id": 2015, "name": "address", "nodeType": "ElementaryTypeName", "src": "4006:7:10", @@ -1791,12 +1791,12 @@ }, { "constant": false, - "id": 2021, + "id": 2018, "mutability": "mutable", "name": "spender", "nameLocation": "4029:7:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4021:15:10", "stateVariable": false, "storageLocation": "default", @@ -1805,7 +1805,7 @@ "typeString": "address" }, "typeName": { - "id": 2020, + "id": 2017, "name": "address", "nodeType": "ElementaryTypeName", "src": "4021:7:10", @@ -1821,17 +1821,17 @@ "src": "4005:32:10" }, "returnParameters": { - "id": 2026, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2025, + "id": 2022, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4076:7:10", "stateVariable": false, "storageLocation": "default", @@ -1840,7 +1840,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2024, + "id": 2021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4076:7:10", @@ -1854,7 +1854,7 @@ ], "src": "4075:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3987:149:10", "stateMutability": "view", "virtual": true, @@ -1862,26 +1862,26 @@ }, { "baseFunctions": [ - 2544 + 2541 ], "body": { - "id": 2058, + "id": 2055, "nodeType": "Block", "src": "4533:108:10", "statements": [ { "assignments": [ - 2046 + 2043 ], "declarations": [ { "constant": false, - "id": 2046, + "id": 2043, "mutability": "mutable", "name": "owner", "nameLocation": "4551:5:10", "nodeType": "VariableDeclaration", - "scope": 2058, + "scope": 2055, "src": "4543:13:10", "stateVariable": false, "storageLocation": "default", @@ -1890,7 +1890,7 @@ "typeString": "address" }, "typeName": { - "id": 2045, + "id": 2042, "name": "address", "nodeType": "ElementaryTypeName", "src": "4543:7:10", @@ -1903,23 +1903,23 @@ "visibility": "internal" } ], - "id": 2049, + "id": 2046, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2047, + "id": 2044, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "4559:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2048, + "id": 2045, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,11 +1942,11 @@ "expression": { "arguments": [ { - "id": 2051, + "id": 2048, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, + "referencedDeclaration": 2043, "src": "4590:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1954,11 +1954,11 @@ } }, { - "id": 2052, + "id": 2049, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, + "referencedDeclaration": 2034, "src": "4597:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1966,11 +1966,11 @@ } }, { - "id": 2053, + "id": 2050, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2039, + "referencedDeclaration": 2036, "src": "4606:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1993,18 +1993,18 @@ "typeString": "uint256" } ], - "id": 2050, + "id": 2047, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "4581:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2054, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -2020,14 +2020,14 @@ "typeString": "tuple()" } }, - "id": 2055, + "id": 2052, "nodeType": "ExpressionStatement", "src": "4581:32:10" }, { "expression": { "hexValue": "74727565", - "id": 2056, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, @@ -2041,21 +2041,21 @@ }, "value": "true" }, - "functionReturnParameters": 2044, - "id": 2057, + "functionReturnParameters": 2041, + "id": 2054, "nodeType": "Return", "src": "4623:11:10" } ] }, "documentation": { - "id": 2035, + "id": 2032, "nodeType": "StructuredDocumentation", "src": "4142:297:10", "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "095ea7b3", - "id": 2059, + "id": 2056, "implemented": true, "kind": "function", "modifiers": [], @@ -2063,23 +2063,23 @@ "nameLocation": "4453:7:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2041, + "id": 2038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4509:8:10" }, "parameters": { - "id": 2040, + "id": 2037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2037, + "id": 2034, "mutability": "mutable", "name": "spender", "nameLocation": "4469:7:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4461:15:10", "stateVariable": false, "storageLocation": "default", @@ -2088,7 +2088,7 @@ "typeString": "address" }, "typeName": { - "id": 2036, + "id": 2033, "name": "address", "nodeType": "ElementaryTypeName", "src": "4461:7:10", @@ -2102,12 +2102,12 @@ }, { "constant": false, - "id": 2039, + "id": 2036, "mutability": "mutable", "name": "amount", "nameLocation": "4486:6:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4478:14:10", "stateVariable": false, "storageLocation": "default", @@ -2116,7 +2116,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2038, + "id": 2035, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4478:7:10", @@ -2131,17 +2131,17 @@ "src": "4460:33:10" }, "returnParameters": { - "id": 2044, + "id": 2041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2043, + "id": 2040, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4527:4:10", "stateVariable": false, "storageLocation": "default", @@ -2150,7 +2150,7 @@ "typeString": "bool" }, "typeName": { - "id": 2042, + "id": 2039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4527:4:10", @@ -2164,7 +2164,7 @@ ], "src": "4526:6:10" }, - "scope": 2479, + "scope": 2476, "src": "4444:197:10", "stateMutability": "nonpayable", "virtual": true, @@ -2172,26 +2172,26 @@ }, { "baseFunctions": [ - 2556 + 2553 ], "body": { - "id": 2091, + "id": 2088, "nodeType": "Block", "src": "5306:153:10", "statements": [ { "assignments": [ - 2073 + 2070 ], "declarations": [ { "constant": false, - "id": 2073, + "id": 2070, "mutability": "mutable", "name": "spender", "nameLocation": "5324:7:10", "nodeType": "VariableDeclaration", - "scope": 2091, + "scope": 2088, "src": "5316:15:10", "stateVariable": false, "storageLocation": "default", @@ -2200,7 +2200,7 @@ "typeString": "address" }, "typeName": { - "id": 2072, + "id": 2069, "name": "address", "nodeType": "ElementaryTypeName", "src": "5316:7:10", @@ -2213,23 +2213,23 @@ "visibility": "internal" } ], - "id": 2076, + "id": 2073, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2074, + "id": 2071, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5334:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2075, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,11 +2252,11 @@ "expression": { "arguments": [ { - "id": 2078, + "id": 2075, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5372:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2264,11 +2264,11 @@ } }, { - "id": 2079, + "id": 2076, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, + "referencedDeclaration": 2070, "src": "5378:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2276,11 +2276,11 @@ } }, { - "id": 2080, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5387:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2303,18 +2303,18 @@ "typeString": "uint256" } ], - "id": 2077, + "id": 2074, "name": "_spendAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2456, + "referencedDeclaration": 2453, "src": "5356:15:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2081, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -2330,7 +2330,7 @@ "typeString": "tuple()" } }, - "id": 2082, + "id": 2079, "nodeType": "ExpressionStatement", "src": "5356:38:10" }, @@ -2338,11 +2338,11 @@ "expression": { "arguments": [ { - "id": 2084, + "id": 2081, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5414:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2350,11 +2350,11 @@ } }, { - "id": 2085, + "id": 2082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, + "referencedDeclaration": 2061, "src": "5420:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2362,11 +2362,11 @@ } }, { - "id": 2086, + "id": 2083, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5424:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2389,18 +2389,18 @@ "typeString": "uint256" } ], - "id": 2083, + "id": 2080, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "5404:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2087, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, @@ -2416,14 +2416,14 @@ "typeString": "tuple()" } }, - "id": 2088, + "id": 2085, "nodeType": "ExpressionStatement", "src": "5404:27:10" }, { "expression": { "hexValue": "74727565", - "id": 2089, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": true, @@ -2437,21 +2437,21 @@ }, "value": "true" }, - "functionReturnParameters": 2071, - "id": 2090, + "functionReturnParameters": 2068, + "id": 2087, "nodeType": "Return", "src": "5441:11:10" } ] }, "documentation": { - "id": 2060, + "id": 2057, "nodeType": "StructuredDocumentation", "src": "4647:551:10", "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." }, "functionSelector": "23b872dd", - "id": 2092, + "id": 2089, "implemented": true, "kind": "function", "modifiers": [], @@ -2459,23 +2459,23 @@ "nameLocation": "5212:12:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2068, + "id": 2065, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5282:8:10" }, "parameters": { - "id": 2067, + "id": 2064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2062, + "id": 2059, "mutability": "mutable", "name": "from", "nameLocation": "5233:4:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5225:12:10", "stateVariable": false, "storageLocation": "default", @@ -2484,7 +2484,7 @@ "typeString": "address" }, "typeName": { - "id": 2061, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5225:7:10", @@ -2498,12 +2498,12 @@ }, { "constant": false, - "id": 2064, + "id": 2061, "mutability": "mutable", "name": "to", "nameLocation": "5247:2:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5239:10:10", "stateVariable": false, "storageLocation": "default", @@ -2512,7 +2512,7 @@ "typeString": "address" }, "typeName": { - "id": 2063, + "id": 2060, "name": "address", "nodeType": "ElementaryTypeName", "src": "5239:7:10", @@ -2526,12 +2526,12 @@ }, { "constant": false, - "id": 2066, + "id": 2063, "mutability": "mutable", "name": "amount", "nameLocation": "5259:6:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5251:14:10", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2065, + "id": 2062, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:10", @@ -2555,17 +2555,17 @@ "src": "5224:42:10" }, "returnParameters": { - "id": 2071, + "id": 2068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 2067, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5300:4:10", "stateVariable": false, "storageLocation": "default", @@ -2574,7 +2574,7 @@ "typeString": "bool" }, "typeName": { - "id": 2069, + "id": 2066, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5300:4:10", @@ -2588,7 +2588,7 @@ ], "src": "5299:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5203:256:10", "stateMutability": "nonpayable", "virtual": true, @@ -2596,23 +2596,23 @@ }, { "body": { - "id": 2120, + "id": 2117, "nodeType": "Block", "src": "5948:140:10", "statements": [ { "assignments": [ - 2103 + 2100 ], "declarations": [ { "constant": false, - "id": 2103, + "id": 2100, "mutability": "mutable", "name": "owner", "nameLocation": "5966:5:10", "nodeType": "VariableDeclaration", - "scope": 2120, + "scope": 2117, "src": "5958:13:10", "stateVariable": false, "storageLocation": "default", @@ -2621,7 +2621,7 @@ "typeString": "address" }, "typeName": { - "id": 2102, + "id": 2099, "name": "address", "nodeType": "ElementaryTypeName", "src": "5958:7:10", @@ -2634,23 +2634,23 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2103, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2104, + "id": 2101, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5974:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2105, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2673,11 +2673,11 @@ "expression": { "arguments": [ { - "id": 2108, + "id": 2105, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6005:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2685,11 +2685,11 @@ } }, { - "id": 2109, + "id": 2106, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6012:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2701,7 +2701,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2115, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -2709,11 +2709,11 @@ "leftExpression": { "arguments": [ { - "id": 2111, + "id": 2108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6031:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2721,11 +2721,11 @@ } }, { - "id": 2112, + "id": 2109, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6038:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2744,18 +2744,18 @@ "typeString": "address" } ], - "id": 2110, + "id": 2107, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6021:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2113, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -2774,11 +2774,11 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 2114, + "id": 2111, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2097, + "referencedDeclaration": 2094, "src": "6049:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2807,18 +2807,18 @@ "typeString": "uint256" } ], - "id": 2107, + "id": 2104, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "5996:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2116, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, @@ -2834,14 +2834,14 @@ "typeString": "tuple()" } }, - "id": 2117, + "id": 2114, "nodeType": "ExpressionStatement", "src": "5996:64:10" }, { "expression": { "hexValue": "74727565", - "id": 2118, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": true, @@ -2855,21 +2855,21 @@ }, "value": "true" }, - "functionReturnParameters": 2101, - "id": 2119, + "functionReturnParameters": 2098, + "id": 2116, "nodeType": "Return", "src": "6070:11:10" } ] }, "documentation": { - "id": 2093, + "id": 2090, "nodeType": "StructuredDocumentation", "src": "5465:384:10", "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "39509351", - "id": 2121, + "id": 2118, "implemented": true, "kind": "function", "modifiers": [], @@ -2877,17 +2877,17 @@ "nameLocation": "5863:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2098, + "id": 2095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2095, + "id": 2092, "mutability": "mutable", "name": "spender", "nameLocation": "5889:7:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5881:15:10", "stateVariable": false, "storageLocation": "default", @@ -2896,7 +2896,7 @@ "typeString": "address" }, "typeName": { - "id": 2094, + "id": 2091, "name": "address", "nodeType": "ElementaryTypeName", "src": "5881:7:10", @@ -2910,12 +2910,12 @@ }, { "constant": false, - "id": 2097, + "id": 2094, "mutability": "mutable", "name": "addedValue", "nameLocation": "5906:10:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5898:18:10", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2096, + "id": 2093, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5898:7:10", @@ -2939,17 +2939,17 @@ "src": "5880:37:10" }, "returnParameters": { - "id": 2101, + "id": 2098, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2100, + "id": 2097, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5942:4:10", "stateVariable": false, "storageLocation": "default", @@ -2958,7 +2958,7 @@ "typeString": "bool" }, "typeName": { - "id": 2099, + "id": 2096, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5942:4:10", @@ -2972,7 +2972,7 @@ ], "src": "5941:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5854:234:10", "stateMutability": "nonpayable", "virtual": true, @@ -2980,23 +2980,23 @@ }, { "body": { - "id": 2161, + "id": 2158, "nodeType": "Block", "src": "6674:328:10", "statements": [ { "assignments": [ - 2132 + 2129 ], "declarations": [ { "constant": false, - "id": 2132, + "id": 2129, "mutability": "mutable", "name": "owner", "nameLocation": "6692:5:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6684:13:10", "stateVariable": false, "storageLocation": "default", @@ -3005,7 +3005,7 @@ "typeString": "address" }, "typeName": { - "id": 2131, + "id": 2128, "name": "address", "nodeType": "ElementaryTypeName", "src": "6684:7:10", @@ -3018,23 +3018,23 @@ "visibility": "internal" } ], - "id": 2135, + "id": 2132, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2133, + "id": 2130, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "6700:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2134, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -3055,17 +3055,17 @@ }, { "assignments": [ - 2137 + 2134 ], "declarations": [ { "constant": false, - "id": 2137, + "id": 2134, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "6730:16:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6722:24:10", "stateVariable": false, "storageLocation": "default", @@ -3074,7 +3074,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2133, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6722:7:10", @@ -3086,15 +3086,15 @@ "visibility": "internal" } ], - "id": 2142, + "id": 2139, "initialValue": { "arguments": [ { - "id": 2139, + "id": 2136, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6759:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3102,11 +3102,11 @@ } }, { - "id": 2140, + "id": 2137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6766:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3125,18 +3125,18 @@ "typeString": "address" } ], - "id": 2138, + "id": 2135, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6749:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2141, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": false, @@ -3163,17 +3163,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2146, + "id": 2143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2144, + "id": 2141, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6792:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3183,11 +3183,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2145, + "id": 2142, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6812:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3202,7 +3202,7 @@ }, { "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 2147, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, @@ -3228,7 +3228,7 @@ "typeString": "literal_string \"ERC20: decreased allowance below zero\"" } ], - "id": 2143, + "id": 2140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3242,7 +3242,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2148, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -3258,12 +3258,12 @@ "typeString": "tuple()" } }, - "id": 2149, + "id": 2146, "nodeType": "ExpressionStatement", "src": "6784:85:10" }, { - "id": 2158, + "id": 2155, "nodeType": "UncheckedBlock", "src": "6879:95:10", "statements": [ @@ -3271,11 +3271,11 @@ "expression": { "arguments": [ { - "id": 2151, + "id": 2148, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6912:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3283,11 +3283,11 @@ } }, { - "id": 2152, + "id": 2149, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6919:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3299,17 +3299,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2155, + "id": 2152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2150, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6928:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3319,11 +3319,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2154, + "id": 2151, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6947:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3352,18 +3352,18 @@ "typeString": "uint256" } ], - "id": 2150, + "id": 2147, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "6903:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2156, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3379,7 +3379,7 @@ "typeString": "tuple()" } }, - "id": 2157, + "id": 2154, "nodeType": "ExpressionStatement", "src": "6903:60:10" } @@ -3388,7 +3388,7 @@ { "expression": { "hexValue": "74727565", - "id": 2159, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": true, @@ -3402,21 +3402,21 @@ }, "value": "true" }, - "functionReturnParameters": 2130, - "id": 2160, + "functionReturnParameters": 2127, + "id": 2157, "nodeType": "Return", "src": "6984:11:10" } ] }, "documentation": { - "id": 2122, + "id": 2119, "nodeType": "StructuredDocumentation", "src": "6094:476:10", "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." }, "functionSelector": "a457c2d7", - "id": 2162, + "id": 2159, "implemented": true, "kind": "function", "modifiers": [], @@ -3424,17 +3424,17 @@ "nameLocation": "6584:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2127, + "id": 2124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2124, + "id": 2121, "mutability": "mutable", "name": "spender", "nameLocation": "6610:7:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6602:15:10", "stateVariable": false, "storageLocation": "default", @@ -3443,7 +3443,7 @@ "typeString": "address" }, "typeName": { - "id": 2123, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", "src": "6602:7:10", @@ -3457,12 +3457,12 @@ }, { "constant": false, - "id": 2126, + "id": 2123, "mutability": "mutable", "name": "subtractedValue", "nameLocation": "6627:15:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6619:23:10", "stateVariable": false, "storageLocation": "default", @@ -3471,7 +3471,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2122, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6619:7:10", @@ -3486,17 +3486,17 @@ "src": "6601:42:10" }, "returnParameters": { - "id": 2130, + "id": 2127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2129, + "id": 2126, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6668:4:10", "stateVariable": false, "storageLocation": "default", @@ -3505,7 +3505,7 @@ "typeString": "bool" }, "typeName": { - "id": 2128, + "id": 2125, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6668:4:10", @@ -3519,7 +3519,7 @@ ], "src": "6667:6:10" }, - "scope": 2479, + "scope": 2476, "src": "6575:427:10", "stateMutability": "nonpayable", "virtual": true, @@ -3527,7 +3527,7 @@ }, { "body": { - "id": 2238, + "id": 2235, "nodeType": "Block", "src": "7534:710:10", "statements": [ @@ -3539,17 +3539,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2178, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2173, + "id": 2170, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7552:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3562,7 +3562,7 @@ "arguments": [ { "hexValue": "30", - "id": 2176, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -3584,7 +3584,7 @@ "typeString": "int_const 0" } ], - "id": 2175, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": true, @@ -3596,14 +3596,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2174, + "id": 2171, "name": "address", "nodeType": "ElementaryTypeName", "src": "7560:7:10", "typeDescriptions": {} } }, - "id": 2177, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": true, @@ -3627,7 +3627,7 @@ }, { "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 2179, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": true, @@ -3653,7 +3653,7 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 2172, + "id": 2169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3667,7 +3667,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2177, "isConstant": false, "isLValue": false, "isPure": false, @@ -3683,7 +3683,7 @@ "typeString": "tuple()" } }, - "id": 2181, + "id": 2178, "nodeType": "ExpressionStatement", "src": "7544:68:10" }, @@ -3695,17 +3695,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2188, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7630:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3718,7 +3718,7 @@ "arguments": [ { "hexValue": "30", - "id": 2186, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, @@ -3740,7 +3740,7 @@ "typeString": "int_const 0" } ], - "id": 2185, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": true, @@ -3752,14 +3752,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2184, + "id": 2181, "name": "address", "nodeType": "ElementaryTypeName", "src": "7636:7:10", "typeDescriptions": {} } }, - "id": 2187, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, @@ -3783,7 +3783,7 @@ }, { "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2189, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": true, @@ -3809,7 +3809,7 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 2182, + "id": 2179, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3823,7 +3823,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2190, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -3839,7 +3839,7 @@ "typeString": "tuple()" } }, - "id": 2191, + "id": 2188, "nodeType": "ExpressionStatement", "src": "7622:64:10" }, @@ -3847,11 +3847,11 @@ "expression": { "arguments": [ { - "id": 2193, + "id": 2190, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7718:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3859,11 +3859,11 @@ } }, { - "id": 2194, + "id": 2191, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7724:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3871,11 +3871,11 @@ } }, { - "id": 2195, + "id": 2192, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7728:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3898,18 +3898,18 @@ "typeString": "uint256" } ], - "id": 2192, + "id": 2189, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "7697:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2196, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, @@ -3925,23 +3925,23 @@ "typeString": "tuple()" } }, - "id": 2197, + "id": 2194, "nodeType": "ExpressionStatement", "src": "7697:38:10" }, { "assignments": [ - 2199 + 2196 ], "declarations": [ { "constant": false, - "id": 2199, + "id": 2196, "mutability": "mutable", "name": "fromBalance", "nameLocation": "7754:11:10", "nodeType": "VariableDeclaration", - "scope": 2238, + "scope": 2235, "src": "7746:19:10", "stateVariable": false, "storageLocation": "default", @@ -3950,7 +3950,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2198, + "id": 2195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:10", @@ -3962,27 +3962,27 @@ "visibility": "internal" } ], - "id": 2203, + "id": 2200, "initialValue": { "baseExpression": { - "id": 2200, + "id": 2197, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7768:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2202, + "id": 2199, "indexExpression": { - "id": 2201, + "id": 2198, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7778:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4011,17 +4011,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2207, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2205, + "id": 2202, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7801:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4031,11 +4031,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2206, + "id": 2203, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7816:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4050,7 +4050,7 @@ }, { "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 2208, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -4076,7 +4076,7 @@ "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" } ], - "id": 2204, + "id": 2201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4090,7 +4090,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, @@ -4106,42 +4106,42 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2207, "nodeType": "ExpressionStatement", "src": "7793:72:10" }, { - "id": 2225, + "id": 2222, "nodeType": "UncheckedBlock", "src": "7875:273:10", "statements": [ { "expression": { - "id": 2217, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2211, + "id": 2208, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2213, + "id": 2210, "indexExpression": { - "id": 2212, + "id": 2209, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7909:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4166,17 +4166,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2214, + "id": 2211, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7917:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4186,11 +4186,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2215, + "id": 2212, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7931:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4209,37 +4209,37 @@ "typeString": "uint256" } }, - "id": 2218, + "id": 2215, "nodeType": "ExpressionStatement", "src": "7899:38:10" }, { "expression": { - "id": 2223, + "id": 2220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2219, + "id": 2216, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8114:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2221, + "id": 2218, "indexExpression": { - "id": 2220, + "id": 2217, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8124:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4260,11 +4260,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2222, + "id": 2219, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8131:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4277,7 +4277,7 @@ "typeString": "uint256" } }, - "id": 2224, + "id": 2221, "nodeType": "ExpressionStatement", "src": "8114:23:10" } @@ -4287,11 +4287,11 @@ "eventCall": { "arguments": [ { - "id": 2227, + "id": 2224, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8172:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4299,11 +4299,11 @@ } }, { - "id": 2228, + "id": 2225, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8178:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4311,11 +4311,11 @@ } }, { - "id": 2229, + "id": 2226, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8182:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4338,18 +4338,18 @@ "typeString": "uint256" } ], - "id": 2226, + "id": 2223, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8163:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2230, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, @@ -4365,7 +4365,7 @@ "typeString": "tuple()" } }, - "id": 2231, + "id": 2228, "nodeType": "EmitStatement", "src": "8158:31:10" }, @@ -4373,11 +4373,11 @@ "expression": { "arguments": [ { - "id": 2233, + "id": 2230, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8220:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4385,11 +4385,11 @@ } }, { - "id": 2234, + "id": 2231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8226:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4397,11 +4397,11 @@ } }, { - "id": 2235, + "id": 2232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8230:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4424,18 +4424,18 @@ "typeString": "uint256" } ], - "id": 2232, + "id": 2229, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "8200:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2236, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -4451,19 +4451,19 @@ "typeString": "tuple()" } }, - "id": 2237, + "id": 2234, "nodeType": "ExpressionStatement", "src": "8200:37:10" } ] }, "documentation": { - "id": 2163, + "id": 2160, "nodeType": "StructuredDocumentation", "src": "7008:443:10", "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." }, - "id": 2239, + "id": 2236, "implemented": true, "kind": "function", "modifiers": [], @@ -4471,17 +4471,17 @@ "nameLocation": "7465:9:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 2167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 2162, "mutability": "mutable", "name": "from", "nameLocation": "7483:4:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7475:12:10", "stateVariable": false, "storageLocation": "default", @@ -4490,7 +4490,7 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "7475:7:10", @@ -4504,12 +4504,12 @@ }, { "constant": false, - "id": 2167, + "id": 2164, "mutability": "mutable", "name": "to", "nameLocation": "7497:2:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7489:10:10", "stateVariable": false, "storageLocation": "default", @@ -4518,7 +4518,7 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", "src": "7489:7:10", @@ -4532,12 +4532,12 @@ }, { "constant": false, - "id": 2169, + "id": 2166, "mutability": "mutable", "name": "amount", "nameLocation": "7509:6:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7501:14:10", "stateVariable": false, "storageLocation": "default", @@ -4546,7 +4546,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2168, + "id": 2165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7501:7:10", @@ -4561,12 +4561,12 @@ "src": "7474:42:10" }, "returnParameters": { - "id": 2171, + "id": 2168, "nodeType": "ParameterList", "parameters": [], "src": "7534:0:10" }, - "scope": 2479, + "scope": 2476, "src": "7456:788:10", "stateMutability": "nonpayable", "virtual": true, @@ -4574,7 +4574,7 @@ }, { "body": { - "id": 2295, + "id": 2292, "nodeType": "Block", "src": "8585:470:10", "statements": [ @@ -4586,17 +4586,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2253, + "id": 2250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2248, + "id": 2245, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8603:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4609,7 +4609,7 @@ "arguments": [ { "hexValue": "30", - "id": 2251, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": true, @@ -4631,7 +4631,7 @@ "typeString": "int_const 0" } ], - "id": 2250, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -4643,14 +4643,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2249, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", "src": "8614:7:10", "typeDescriptions": {} } }, - "id": 2252, + "id": 2249, "isConstant": false, "isLValue": false, "isPure": true, @@ -4674,7 +4674,7 @@ }, { "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2254, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, @@ -4700,7 +4700,7 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 2247, + "id": 2244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4714,7 +4714,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2255, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -4730,7 +4730,7 @@ "typeString": "tuple()" } }, - "id": 2256, + "id": 2253, "nodeType": "ExpressionStatement", "src": "8595:65:10" }, @@ -4741,7 +4741,7 @@ "arguments": [ { "hexValue": "30", - "id": 2260, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, @@ -4763,7 +4763,7 @@ "typeString": "int_const 0" } ], - "id": 2259, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -4775,14 +4775,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2258, + "id": 2255, "name": "address", "nodeType": "ElementaryTypeName", "src": "8692:7:10", "typeDescriptions": {} } }, - "id": 2261, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, @@ -4799,11 +4799,11 @@ } }, { - "id": 2262, + "id": 2259, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8704:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4811,11 +4811,11 @@ } }, { - "id": 2263, + "id": 2260, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8713:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4838,18 +4838,18 @@ "typeString": "uint256" } ], - "id": 2257, + "id": 2254, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "8671:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2264, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, @@ -4865,23 +4865,23 @@ "typeString": "tuple()" } }, - "id": 2265, + "id": 2262, "nodeType": "ExpressionStatement", "src": "8671:49:10" }, { "expression": { - "id": 2268, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2266, + "id": 2263, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "8731:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4891,11 +4891,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2267, + "id": 2264, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8747:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4908,42 +4908,42 @@ "typeString": "uint256" } }, - "id": 2269, + "id": 2266, "nodeType": "ExpressionStatement", "src": "8731:22:10" }, { - "id": 2276, + "id": 2273, "nodeType": "UncheckedBlock", "src": "8763:175:10", "statements": [ { "expression": { - "id": 2274, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2270, + "id": 2267, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2272, + "id": 2269, "indexExpression": { - "id": 2271, + "id": 2268, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8909:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4964,11 +4964,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2273, + "id": 2270, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8921:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4981,7 +4981,7 @@ "typeString": "uint256" } }, - "id": 2275, + "id": 2272, "nodeType": "ExpressionStatement", "src": "8899:28:10" } @@ -4994,7 +4994,7 @@ "arguments": [ { "hexValue": "30", - "id": 2280, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": true, @@ -5016,7 +5016,7 @@ "typeString": "int_const 0" } ], - "id": 2279, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": true, @@ -5028,14 +5028,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2278, + "id": 2275, "name": "address", "nodeType": "ElementaryTypeName", "src": "8961:7:10", "typeDescriptions": {} } }, - "id": 2281, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": true, @@ -5052,11 +5052,11 @@ } }, { - "id": 2282, + "id": 2279, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8973:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5064,11 +5064,11 @@ } }, { - "id": 2283, + "id": 2280, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8982:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5091,18 +5091,18 @@ "typeString": "uint256" } ], - "id": 2277, + "id": 2274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8952:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2284, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -5118,7 +5118,7 @@ "typeString": "tuple()" } }, - "id": 2285, + "id": 2282, "nodeType": "EmitStatement", "src": "8947:42:10" }, @@ -5129,7 +5129,7 @@ "arguments": [ { "hexValue": "30", - "id": 2289, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": true, @@ -5151,7 +5151,7 @@ "typeString": "int_const 0" } ], - "id": 2288, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": true, @@ -5163,14 +5163,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2287, + "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "9020:7:10", "typeDescriptions": {} } }, - "id": 2290, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, @@ -5187,11 +5187,11 @@ } }, { - "id": 2291, + "id": 2288, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "9032:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5199,11 +5199,11 @@ } }, { - "id": 2292, + "id": 2289, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "9041:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5226,18 +5226,18 @@ "typeString": "uint256" } ], - "id": 2286, + "id": 2283, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9000:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2293, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -5253,19 +5253,19 @@ "typeString": "tuple()" } }, - "id": 2294, + "id": 2291, "nodeType": "ExpressionStatement", "src": "9000:48:10" } ] }, "documentation": { - "id": 2240, + "id": 2237, "nodeType": "StructuredDocumentation", "src": "8250:265:10", "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." }, - "id": 2296, + "id": 2293, "implemented": true, "kind": "function", "modifiers": [], @@ -5273,17 +5273,17 @@ "nameLocation": "8529:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2245, + "id": 2242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2242, + "id": 2239, "mutability": "mutable", "name": "account", "nameLocation": "8543:7:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8535:15:10", "stateVariable": false, "storageLocation": "default", @@ -5292,7 +5292,7 @@ "typeString": "address" }, "typeName": { - "id": 2241, + "id": 2238, "name": "address", "nodeType": "ElementaryTypeName", "src": "8535:7:10", @@ -5306,12 +5306,12 @@ }, { "constant": false, - "id": 2244, + "id": 2241, "mutability": "mutable", "name": "amount", "nameLocation": "8560:6:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8552:14:10", "stateVariable": false, "storageLocation": "default", @@ -5320,7 +5320,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2243, + "id": 2240, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8552:7:10", @@ -5335,12 +5335,12 @@ "src": "8534:33:10" }, "returnParameters": { - "id": 2246, + "id": 2243, "nodeType": "ParameterList", "parameters": [], "src": "8585:0:10" }, - "scope": 2479, + "scope": 2476, "src": "8520:535:10", "stateMutability": "nonpayable", "virtual": true, @@ -5348,7 +5348,7 @@ }, { "body": { - "id": 2367, + "id": 2364, "nodeType": "Block", "src": "9440:594:10", "statements": [ @@ -5360,17 +5360,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2310, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2305, + "id": 2302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9458:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5383,7 +5383,7 @@ "arguments": [ { "hexValue": "30", - "id": 2308, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -5405,7 +5405,7 @@ "typeString": "int_const 0" } ], - "id": 2307, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": true, @@ -5417,14 +5417,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2306, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "9469:7:10", "typeDescriptions": {} } }, - "id": 2309, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, @@ -5448,7 +5448,7 @@ }, { "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 2311, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, @@ -5474,7 +5474,7 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 2304, + "id": 2301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5488,7 +5488,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2312, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -5504,7 +5504,7 @@ "typeString": "tuple()" } }, - "id": 2313, + "id": 2310, "nodeType": "ExpressionStatement", "src": "9450:67:10" }, @@ -5512,11 +5512,11 @@ "expression": { "arguments": [ { - "id": 2315, + "id": 2312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9549:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5527,7 +5527,7 @@ "arguments": [ { "hexValue": "30", - "id": 2318, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -5549,7 +5549,7 @@ "typeString": "int_const 0" } ], - "id": 2317, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -5561,14 +5561,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2316, + "id": 2313, "name": "address", "nodeType": "ElementaryTypeName", "src": "9558:7:10", "typeDescriptions": {} } }, - "id": 2319, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -5585,11 +5585,11 @@ } }, { - "id": 2320, + "id": 2317, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9570:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5612,18 +5612,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 2311, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "9528:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2321, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5639,23 +5639,23 @@ "typeString": "tuple()" } }, - "id": 2322, + "id": 2319, "nodeType": "ExpressionStatement", "src": "9528:49:10" }, { "assignments": [ - 2324 + 2321 ], "declarations": [ { "constant": false, - "id": 2324, + "id": 2321, "mutability": "mutable", "name": "accountBalance", "nameLocation": "9596:14:10", "nodeType": "VariableDeclaration", - "scope": 2367, + "scope": 2364, "src": "9588:22:10", "stateVariable": false, "storageLocation": "default", @@ -5664,7 +5664,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2323, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9588:7:10", @@ -5676,27 +5676,27 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2325, "initialValue": { "baseExpression": { - "id": 2325, + "id": 2322, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9613:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2327, + "id": 2324, "indexExpression": { - "id": 2326, + "id": 2323, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9623:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5725,17 +5725,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2332, + "id": 2329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2330, + "id": 2327, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9649:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5745,11 +5745,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2331, + "id": 2328, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9667:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5764,7 +5764,7 @@ }, { "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 2333, + "id": 2330, "isConstant": false, "isLValue": false, "isPure": true, @@ -5790,7 +5790,7 @@ "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" } ], - "id": 2329, + "id": 2326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5804,7 +5804,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, @@ -5820,42 +5820,42 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2332, "nodeType": "ExpressionStatement", "src": "9641:71:10" }, { - "id": 2348, + "id": 2345, "nodeType": "UncheckedBlock", "src": "9722:194:10", "statements": [ { "expression": { - "id": 2342, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2336, + "id": 2333, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9746:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2338, + "id": 2335, "indexExpression": { - "id": 2337, + "id": 2334, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9756:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5880,17 +5880,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2339, + "id": 2336, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9767:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5900,11 +5900,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2340, + "id": 2337, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9784:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5923,23 +5923,23 @@ "typeString": "uint256" } }, - "id": 2343, + "id": 2340, "nodeType": "ExpressionStatement", "src": "9746:44:10" }, { "expression": { - "id": 2346, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2344, + "id": 2341, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "9883:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5949,11 +5949,11 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 2345, + "id": 2342, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9899:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5966,7 +5966,7 @@ "typeString": "uint256" } }, - "id": 2347, + "id": 2344, "nodeType": "ExpressionStatement", "src": "9883:22:10" } @@ -5976,11 +5976,11 @@ "eventCall": { "arguments": [ { - "id": 2350, + "id": 2347, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9940:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5991,7 +5991,7 @@ "arguments": [ { "hexValue": "30", - "id": 2353, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, @@ -6013,7 +6013,7 @@ "typeString": "int_const 0" } ], - "id": 2352, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": true, @@ -6025,14 +6025,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2351, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", "src": "9949:7:10", "typeDescriptions": {} } }, - "id": 2354, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": true, @@ -6049,11 +6049,11 @@ } }, { - "id": 2355, + "id": 2352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9961:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6076,18 +6076,18 @@ "typeString": "uint256" } ], - "id": 2349, + "id": 2346, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "9931:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2356, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6103,7 +6103,7 @@ "typeString": "tuple()" } }, - "id": 2357, + "id": 2354, "nodeType": "EmitStatement", "src": "9926:42:10" }, @@ -6111,11 +6111,11 @@ "expression": { "arguments": [ { - "id": 2359, + "id": 2356, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9999:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6126,7 +6126,7 @@ "arguments": [ { "hexValue": "30", - "id": 2362, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -6148,7 +6148,7 @@ "typeString": "int_const 0" } ], - "id": 2361, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, @@ -6160,14 +6160,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2360, + "id": 2357, "name": "address", "nodeType": "ElementaryTypeName", "src": "10008:7:10", "typeDescriptions": {} } }, - "id": 2363, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -6184,11 +6184,11 @@ } }, { - "id": 2364, + "id": 2361, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "10020:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6211,18 +6211,18 @@ "typeString": "uint256" } ], - "id": 2358, + "id": 2355, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9979:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2365, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -6238,19 +6238,19 @@ "typeString": "tuple()" } }, - "id": 2366, + "id": 2363, "nodeType": "ExpressionStatement", "src": "9979:48:10" } ] }, "documentation": { - "id": 2297, + "id": 2294, "nodeType": "StructuredDocumentation", "src": "9061:309:10", "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." }, - "id": 2368, + "id": 2365, "implemented": true, "kind": "function", "modifiers": [], @@ -6258,17 +6258,17 @@ "nameLocation": "9384:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2302, + "id": 2299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2299, + "id": 2296, "mutability": "mutable", "name": "account", "nameLocation": "9398:7:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9390:15:10", "stateVariable": false, "storageLocation": "default", @@ -6277,7 +6277,7 @@ "typeString": "address" }, "typeName": { - "id": 2298, + "id": 2295, "name": "address", "nodeType": "ElementaryTypeName", "src": "9390:7:10", @@ -6291,12 +6291,12 @@ }, { "constant": false, - "id": 2301, + "id": 2298, "mutability": "mutable", "name": "amount", "nameLocation": "9415:6:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9407:14:10", "stateVariable": false, "storageLocation": "default", @@ -6305,7 +6305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2300, + "id": 2297, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9407:7:10", @@ -6320,12 +6320,12 @@ "src": "9389:33:10" }, "returnParameters": { - "id": 2303, + "id": 2300, "nodeType": "ParameterList", "parameters": [], "src": "9440:0:10" }, - "scope": 2479, + "scope": 2476, "src": "9375:659:10", "stateMutability": "nonpayable", "virtual": true, @@ -6333,7 +6333,7 @@ }, { "body": { - "id": 2412, + "id": 2409, "nodeType": "Block", "src": "10540:257:10", "statements": [ @@ -6345,17 +6345,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2384, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2379, + "id": 2376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10558:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6368,7 +6368,7 @@ "arguments": [ { "hexValue": "30", - "id": 2382, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": true, @@ -6390,7 +6390,7 @@ "typeString": "int_const 0" } ], - "id": 2381, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, @@ -6402,14 +6402,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2380, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "10567:7:10", "typeDescriptions": {} } }, - "id": 2383, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, @@ -6433,7 +6433,7 @@ }, { "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 2385, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, @@ -6459,7 +6459,7 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 2378, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6473,7 +6473,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2386, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -6489,7 +6489,7 @@ "typeString": "tuple()" } }, - "id": 2387, + "id": 2384, "nodeType": "ExpressionStatement", "src": "10550:68:10" }, @@ -6501,17 +6501,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2394, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2389, + "id": 2386, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10636:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6524,7 +6524,7 @@ "arguments": [ { "hexValue": "30", - "id": 2392, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, @@ -6546,7 +6546,7 @@ "typeString": "int_const 0" } ], - "id": 2391, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, @@ -6558,14 +6558,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2390, + "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "10647:7:10", "typeDescriptions": {} } }, - "id": 2393, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, @@ -6589,7 +6589,7 @@ }, { "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 2395, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, @@ -6615,7 +6615,7 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 2388, + "id": 2385, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6629,7 +6629,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2396, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, @@ -6645,13 +6645,13 @@ "typeString": "tuple()" } }, - "id": 2397, + "id": 2394, "nodeType": "ExpressionStatement", "src": "10628:68:10" }, { "expression": { - "id": 2404, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6659,24 +6659,24 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2398, + "id": 2395, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "10707:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2401, + "id": 2398, "indexExpression": { - "id": 2399, + "id": 2396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10719:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6694,13 +6694,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2402, + "id": 2399, "indexExpression": { - "id": 2400, + "id": 2397, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10726:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6721,11 +6721,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2403, + "id": 2400, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10737:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6738,7 +6738,7 @@ "typeString": "uint256" } }, - "id": 2405, + "id": 2402, "nodeType": "ExpressionStatement", "src": "10707:36:10" }, @@ -6746,11 +6746,11 @@ "eventCall": { "arguments": [ { - "id": 2407, + "id": 2404, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10767:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6758,11 +6758,11 @@ } }, { - "id": 2408, + "id": 2405, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10774:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6770,11 +6770,11 @@ } }, { - "id": 2409, + "id": 2406, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10783:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6797,18 +6797,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2403, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, + "referencedDeclaration": 2497, "src": "10758:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2410, + "id": 2407, "isConstant": false, "isLValue": false, "isPure": false, @@ -6824,19 +6824,19 @@ "typeString": "tuple()" } }, - "id": 2411, + "id": 2408, "nodeType": "EmitStatement", "src": "10753:37:10" } ] }, "documentation": { - "id": 2369, + "id": 2366, "nodeType": "StructuredDocumentation", "src": "10040:412:10", "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." }, - "id": 2413, + "id": 2410, "implemented": true, "kind": "function", "modifiers": [], @@ -6844,17 +6844,17 @@ "nameLocation": "10466:8:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2376, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2371, + "id": 2368, "mutability": "mutable", "name": "owner", "nameLocation": "10483:5:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10475:13:10", "stateVariable": false, "storageLocation": "default", @@ -6863,7 +6863,7 @@ "typeString": "address" }, "typeName": { - "id": 2370, + "id": 2367, "name": "address", "nodeType": "ElementaryTypeName", "src": "10475:7:10", @@ -6877,12 +6877,12 @@ }, { "constant": false, - "id": 2373, + "id": 2370, "mutability": "mutable", "name": "spender", "nameLocation": "10498:7:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10490:15:10", "stateVariable": false, "storageLocation": "default", @@ -6891,7 +6891,7 @@ "typeString": "address" }, "typeName": { - "id": 2372, + "id": 2369, "name": "address", "nodeType": "ElementaryTypeName", "src": "10490:7:10", @@ -6905,12 +6905,12 @@ }, { "constant": false, - "id": 2375, + "id": 2372, "mutability": "mutable", "name": "amount", "nameLocation": "10515:6:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10507:14:10", "stateVariable": false, "storageLocation": "default", @@ -6919,7 +6919,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2374, + "id": 2371, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10507:7:10", @@ -6934,12 +6934,12 @@ "src": "10474:48:10" }, "returnParameters": { - "id": 2377, + "id": 2374, "nodeType": "ParameterList", "parameters": [], "src": "10540:0:10" }, - "scope": 2479, + "scope": 2476, "src": "10457:340:10", "stateMutability": "nonpayable", "virtual": true, @@ -6947,23 +6947,23 @@ }, { "body": { - "id": 2455, + "id": 2452, "nodeType": "Block", "src": "11168:321:10", "statements": [ { "assignments": [ - 2424 + 2421 ], "declarations": [ { "constant": false, - "id": 2424, + "id": 2421, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "11186:16:10", "nodeType": "VariableDeclaration", - "scope": 2455, + "scope": 2452, "src": "11178:24:10", "stateVariable": false, "storageLocation": "default", @@ -6972,7 +6972,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2423, + "id": 2420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11178:7:10", @@ -6984,15 +6984,15 @@ "visibility": "internal" } ], - "id": 2429, + "id": 2426, "initialValue": { "arguments": [ { - "id": 2426, + "id": 2423, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11215:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7000,11 +7000,11 @@ } }, { - "id": 2427, + "id": 2424, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11222:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7023,18 +7023,18 @@ "typeString": "address" } ], - "id": 2425, + "id": 2422, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "11205:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2428, + "id": 2425, "isConstant": false, "isLValue": false, "isPure": false, @@ -7059,17 +7059,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2430, + "id": 2427, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11244:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7082,7 +7082,7 @@ "expression": { "arguments": [ { - "id": 2433, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, @@ -7094,7 +7094,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 2432, + "id": 2429, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11269:7:10", @@ -7109,7 +7109,7 @@ "typeString": "type(uint256)" } ], - "id": 2431, + "id": 2428, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -7120,7 +7120,7 @@ "typeString": "function () pure" } }, - "id": 2434, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": true, @@ -7136,7 +7136,7 @@ "typeString": "type(uint256)" } }, - "id": 2435, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -7156,11 +7156,11 @@ "typeString": "bool" } }, - "id": 2454, + "id": 2451, "nodeType": "IfStatement", "src": "11240:243:10", "trueBody": { - "id": 2453, + "id": 2450, "nodeType": "Block", "src": "11283:200:10", "statements": [ @@ -7172,17 +7172,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2440, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2438, + "id": 2435, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11305:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7192,11 +7192,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2439, + "id": 2436, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11325:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7211,7 +7211,7 @@ }, { "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", - "id": 2441, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, @@ -7237,7 +7237,7 @@ "typeString": "literal_string \"ERC20: insufficient allowance\"" } ], - "id": 2437, + "id": 2434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7251,7 +7251,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2442, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -7267,12 +7267,12 @@ "typeString": "tuple()" } }, - "id": 2443, + "id": 2440, "nodeType": "ExpressionStatement", "src": "11297:68:10" }, { - "id": 2452, + "id": 2449, "nodeType": "UncheckedBlock", "src": "11379:94:10", "statements": [ @@ -7280,11 +7280,11 @@ "expression": { "arguments": [ { - "id": 2445, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11416:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7292,11 +7292,11 @@ } }, { - "id": 2446, + "id": 2443, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11423:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7308,17 +7308,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2449, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2447, + "id": 2444, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11432:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7328,11 +7328,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2448, + "id": 2445, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11451:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7361,18 +7361,18 @@ "typeString": "uint256" } ], - "id": 2444, + "id": 2441, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "11407:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2450, + "id": 2447, "isConstant": false, "isLValue": false, "isPure": false, @@ -7388,7 +7388,7 @@ "typeString": "tuple()" } }, - "id": 2451, + "id": 2448, "nodeType": "ExpressionStatement", "src": "11407:51:10" } @@ -7400,12 +7400,12 @@ ] }, "documentation": { - "id": 2414, + "id": 2411, "nodeType": "StructuredDocumentation", "src": "10803:270:10", "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." }, - "id": 2456, + "id": 2453, "implemented": true, "kind": "function", "modifiers": [], @@ -7413,17 +7413,17 @@ "nameLocation": "11087:15:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2421, + "id": 2418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2416, + "id": 2413, "mutability": "mutable", "name": "owner", "nameLocation": "11111:5:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11103:13:10", "stateVariable": false, "storageLocation": "default", @@ -7432,7 +7432,7 @@ "typeString": "address" }, "typeName": { - "id": 2415, + "id": 2412, "name": "address", "nodeType": "ElementaryTypeName", "src": "11103:7:10", @@ -7446,12 +7446,12 @@ }, { "constant": false, - "id": 2418, + "id": 2415, "mutability": "mutable", "name": "spender", "nameLocation": "11126:7:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11118:15:10", "stateVariable": false, "storageLocation": "default", @@ -7460,7 +7460,7 @@ "typeString": "address" }, "typeName": { - "id": 2417, + "id": 2414, "name": "address", "nodeType": "ElementaryTypeName", "src": "11118:7:10", @@ -7474,12 +7474,12 @@ }, { "constant": false, - "id": 2420, + "id": 2417, "mutability": "mutable", "name": "amount", "nameLocation": "11143:6:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11135:14:10", "stateVariable": false, "storageLocation": "default", @@ -7488,7 +7488,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2419, + "id": 2416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11135:7:10", @@ -7503,12 +7503,12 @@ "src": "11102:48:10" }, "returnParameters": { - "id": 2422, + "id": 2419, "nodeType": "ParameterList", "parameters": [], "src": "11168:0:10" }, - "scope": 2479, + "scope": 2476, "src": "11078:411:10", "stateMutability": "nonpayable", "virtual": true, @@ -7516,18 +7516,18 @@ }, { "body": { - "id": 2466, + "id": 2463, "nodeType": "Block", "src": "12162:2:10", "statements": [] }, "documentation": { - "id": 2457, + "id": 2454, "nodeType": "StructuredDocumentation", "src": "11495:573:10", "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2467, + "id": 2464, "implemented": true, "kind": "function", "modifiers": [], @@ -7535,17 +7535,17 @@ "nameLocation": "12082:20:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2464, + "id": 2461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2459, + "id": 2456, "mutability": "mutable", "name": "from", "nameLocation": "12111:4:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12103:12:10", "stateVariable": false, "storageLocation": "default", @@ -7554,7 +7554,7 @@ "typeString": "address" }, "typeName": { - "id": 2458, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", "src": "12103:7:10", @@ -7568,12 +7568,12 @@ }, { "constant": false, - "id": 2461, + "id": 2458, "mutability": "mutable", "name": "to", "nameLocation": "12125:2:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12117:10:10", "stateVariable": false, "storageLocation": "default", @@ -7582,7 +7582,7 @@ "typeString": "address" }, "typeName": { - "id": 2460, + "id": 2457, "name": "address", "nodeType": "ElementaryTypeName", "src": "12117:7:10", @@ -7596,12 +7596,12 @@ }, { "constant": false, - "id": 2463, + "id": 2460, "mutability": "mutable", "name": "amount", "nameLocation": "12137:6:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12129:14:10", "stateVariable": false, "storageLocation": "default", @@ -7610,7 +7610,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2462, + "id": 2459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12129:7:10", @@ -7625,12 +7625,12 @@ "src": "12102:42:10" }, "returnParameters": { - "id": 2465, + "id": 2462, "nodeType": "ParameterList", "parameters": [], "src": "12162:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12073:91:10", "stateMutability": "nonpayable", "virtual": true, @@ -7638,18 +7638,18 @@ }, { "body": { - "id": 2477, + "id": 2474, "nodeType": "Block", "src": "12840:2:10", "statements": [] }, "documentation": { - "id": 2468, + "id": 2465, "nodeType": "StructuredDocumentation", "src": "12170:577:10", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2478, + "id": 2475, "implemented": true, "kind": "function", "modifiers": [], @@ -7657,17 +7657,17 @@ "nameLocation": "12761:19:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2475, + "id": 2472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2470, + "id": 2467, "mutability": "mutable", "name": "from", "nameLocation": "12789:4:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12781:12:10", "stateVariable": false, "storageLocation": "default", @@ -7676,7 +7676,7 @@ "typeString": "address" }, "typeName": { - "id": 2469, + "id": 2466, "name": "address", "nodeType": "ElementaryTypeName", "src": "12781:7:10", @@ -7690,12 +7690,12 @@ }, { "constant": false, - "id": 2472, + "id": 2469, "mutability": "mutable", "name": "to", "nameLocation": "12803:2:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12795:10:10", "stateVariable": false, "storageLocation": "default", @@ -7704,7 +7704,7 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2468, "name": "address", "nodeType": "ElementaryTypeName", "src": "12795:7:10", @@ -7718,12 +7718,12 @@ }, { "constant": false, - "id": 2474, + "id": 2471, "mutability": "mutable", "name": "amount", "nameLocation": "12815:6:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12807:14:10", "stateVariable": false, "storageLocation": "default", @@ -7732,7 +7732,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2473, + "id": 2470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12807:7:10", @@ -7747,19 +7747,19 @@ "src": "12780:42:10" }, "returnParameters": { - "id": 2476, + "id": 2473, "nodeType": "ParameterList", "parameters": [], "src": "12840:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12752:90:10", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2480, + "scope": 2477, "src": "1532:11312:10", "usedErrors": [] } @@ -7770,24 +7770,24 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "Context": [ - 2612 + 2609 ], "ERC20": [ - 2479 + 2476 ], "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2480, + "id": 2477, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1894, + "id": 1891, "literals": [ "solidity", "^", @@ -7800,11 +7800,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1895, + "id": 1892, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2558, + "scope": 2477, + "sourceUnit": 2555, "src": "130:22:10", "symbolAliases": [], "unitAlias": "" @@ -7812,11 +7812,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", - "id": 1896, + "id": 1893, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2583, + "scope": 2477, + "sourceUnit": 2580, "src": "153:41:10", "symbolAliases": [], "unitAlias": "" @@ -7824,11 +7824,11 @@ { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", - "id": 1897, + "id": 1894, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2480, - "sourceUnit": 2613, + "scope": 2477, + "sourceUnit": 2610, "src": "195:33:10", "symbolAliases": [], "unitAlias": "" @@ -7838,46 +7838,46 @@ "baseContracts": [ { "baseName": { - "id": 1899, + "id": 1896, "name": "Context", "nameLocations": [ "1550:7:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2612, + "referencedDeclaration": 2609, "src": "1550:7:10" }, - "id": 1900, + "id": 1897, "nodeType": "InheritanceSpecifier", "src": "1550:7:10" }, { "baseName": { - "id": 1901, + "id": 1898, "name": "IERC20", "nameLocations": [ "1559:6:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "1559:6:10" }, - "id": 1902, + "id": 1899, "nodeType": "InheritanceSpecifier", "src": "1559:6:10" }, { "baseName": { - "id": 1903, + "id": 1900, "name": "IERC20Metadata", "nameLocations": [ "1567:14:10" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2582, + "referencedDeclaration": 2579, "src": "1567:14:10" }, - "id": 1904, + "id": 1901, "nodeType": "InheritanceSpecifier", "src": "1567:14:10" } @@ -7886,18 +7886,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1898, + "id": 1895, "nodeType": "StructuredDocumentation", "src": "230:1301:10", "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." }, "fullyImplemented": true, - "id": 2479, + "id": 2476, "linearizedBaseContracts": [ - 2479, - 2582, - 2557, - 2612 + 2476, + 2579, + 2554, + 2609 ], "name": "ERC20", "nameLocation": "1541:5:10", @@ -7905,12 +7905,12 @@ "nodes": [ { "constant": false, - "id": 1908, + "id": 1905, "mutability": "mutable", "name": "_balances", "nameLocation": "1624:9:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1588:45:10", "stateVariable": true, "storageLocation": "default", @@ -7919,11 +7919,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 1907, + "id": 1904, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1905, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "1596:7:10", @@ -7941,7 +7941,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1906, + "id": 1903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:10", @@ -7955,12 +7955,12 @@ }, { "constant": false, - "id": 1914, + "id": 1911, "mutability": "mutable", "name": "_allowances", "nameLocation": "1696:11:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1640:67:10", "stateVariable": true, "storageLocation": "default", @@ -7969,11 +7969,11 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 1913, + "id": 1910, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1909, + "id": 1906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1648:7:10", @@ -7991,11 +7991,11 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1912, + "id": 1909, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 1910, + "id": 1907, "name": "address", "nodeType": "ElementaryTypeName", "src": "1667:7:10", @@ -8013,7 +8013,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 1911, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1678:7:10", @@ -8028,12 +8028,12 @@ }, { "constant": false, - "id": 1916, + "id": 1913, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1730:12:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1714:28:10", "stateVariable": true, "storageLocation": "default", @@ -8042,7 +8042,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1915, + "id": 1912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1714:7:10", @@ -8055,12 +8055,12 @@ }, { "constant": false, - "id": 1918, + "id": 1915, "mutability": "mutable", "name": "_name", "nameLocation": "1764:5:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1749:20:10", "stateVariable": true, "storageLocation": "default", @@ -8069,7 +8069,7 @@ "typeString": "string" }, "typeName": { - "id": 1917, + "id": 1914, "name": "string", "nodeType": "ElementaryTypeName", "src": "1749:6:10", @@ -8082,12 +8082,12 @@ }, { "constant": false, - "id": 1920, + "id": 1917, "mutability": "mutable", "name": "_symbol", "nameLocation": "1790:7:10", "nodeType": "VariableDeclaration", - "scope": 2479, + "scope": 2476, "src": "1775:22:10", "stateVariable": true, "storageLocation": "default", @@ -8096,7 +8096,7 @@ "typeString": "string" }, "typeName": { - "id": 1919, + "id": 1916, "name": "string", "nodeType": "ElementaryTypeName", "src": "1775:6:10", @@ -8109,23 +8109,23 @@ }, { "body": { - "id": 1936, + "id": 1933, "nodeType": "Block", "src": "2036:57:10", "statements": [ { "expression": { - "id": 1930, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1928, + "id": 1925, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2046:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -8135,11 +8135,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1929, + "id": 1926, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1920, "src": "2054:5:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8152,23 +8152,23 @@ "typeString": "string storage ref" } }, - "id": 1931, + "id": 1928, "nodeType": "ExpressionStatement", "src": "2046:13:10" }, { "expression": { - "id": 1934, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1932, + "id": 1929, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2069:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -8178,11 +8178,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1933, + "id": 1930, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1922, "src": "2079:7:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8195,19 +8195,19 @@ "typeString": "string storage ref" } }, - "id": 1935, + "id": 1932, "nodeType": "ExpressionStatement", "src": "2069:17:10" } ] }, "documentation": { - "id": 1921, + "id": 1918, "nodeType": "StructuredDocumentation", "src": "1804:171:10", "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." }, - "id": 1937, + "id": 1934, "implemented": true, "kind": "constructor", "modifiers": [], @@ -8215,17 +8215,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1926, + "id": 1923, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1923, + "id": 1920, "mutability": "mutable", "name": "name_", "nameLocation": "2006:5:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "1992:19:10", "stateVariable": false, "storageLocation": "memory", @@ -8234,7 +8234,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1919, "name": "string", "nodeType": "ElementaryTypeName", "src": "1992:6:10", @@ -8247,12 +8247,12 @@ }, { "constant": false, - "id": 1925, + "id": 1922, "mutability": "mutable", "name": "symbol_", "nameLocation": "2027:7:10", "nodeType": "VariableDeclaration", - "scope": 1937, + "scope": 1934, "src": "2013:21:10", "stateVariable": false, "storageLocation": "memory", @@ -8261,7 +8261,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1921, "name": "string", "nodeType": "ElementaryTypeName", "src": "2013:6:10", @@ -8276,12 +8276,12 @@ "src": "1991:44:10" }, "returnParameters": { - "id": 1927, + "id": 1924, "nodeType": "ParameterList", "parameters": [], "src": "2036:0:10" }, - "scope": 2479, + "scope": 2476, "src": "1980:113:10", "stateMutability": "nonpayable", "virtual": false, @@ -8289,41 +8289,41 @@ }, { "baseFunctions": [ - 2569 + 2566 ], "body": { - "id": 1946, + "id": 1943, "nodeType": "Block", "src": "2227:29:10", "statements": [ { "expression": { - "id": 1944, + "id": 1941, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, + "referencedDeclaration": 1915, "src": "2244:5:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1943, - "id": 1945, + "functionReturnParameters": 1940, + "id": 1942, "nodeType": "Return", "src": "2237:12:10" } ] }, "documentation": { - "id": 1938, + "id": 1935, "nodeType": "StructuredDocumentation", "src": "2099:54:10", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 1947, + "id": 1944, "implemented": true, "kind": "function", "modifiers": [], @@ -8331,29 +8331,29 @@ "nameLocation": "2167:4:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1940, + "id": 1937, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2194:8:10" }, "parameters": { - "id": 1939, + "id": 1936, "nodeType": "ParameterList", "parameters": [], "src": "2171:2:10" }, "returnParameters": { - "id": 1943, + "id": 1940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1942, + "id": 1939, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1947, + "scope": 1944, "src": "2212:13:10", "stateVariable": false, "storageLocation": "memory", @@ -8362,7 +8362,7 @@ "typeString": "string" }, "typeName": { - "id": 1941, + "id": 1938, "name": "string", "nodeType": "ElementaryTypeName", "src": "2212:6:10", @@ -8376,7 +8376,7 @@ ], "src": "2211:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2158:98:10", "stateMutability": "view", "virtual": true, @@ -8384,41 +8384,41 @@ }, { "baseFunctions": [ - 2575 + 2572 ], "body": { - "id": 1956, + "id": 1953, "nodeType": "Block", "src": "2440:31:10", "statements": [ { "expression": { - "id": 1954, + "id": 1951, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1917, "src": "2457:7:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1953, - "id": 1955, + "functionReturnParameters": 1950, + "id": 1952, "nodeType": "Return", "src": "2450:14:10" } ] }, "documentation": { - "id": 1948, + "id": 1945, "nodeType": "StructuredDocumentation", "src": "2262:102:10", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." }, "functionSelector": "95d89b41", - "id": 1957, + "id": 1954, "implemented": true, "kind": "function", "modifiers": [], @@ -8426,29 +8426,29 @@ "nameLocation": "2378:6:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1950, + "id": 1947, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2407:8:10" }, "parameters": { - "id": 1949, + "id": 1946, "nodeType": "ParameterList", "parameters": [], "src": "2384:2:10" }, "returnParameters": { - "id": 1953, + "id": 1950, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1952, + "id": 1949, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1957, + "scope": 1954, "src": "2425:13:10", "stateVariable": false, "storageLocation": "memory", @@ -8457,7 +8457,7 @@ "typeString": "string" }, "typeName": { - "id": 1951, + "id": 1948, "name": "string", "nodeType": "ElementaryTypeName", "src": "2425:6:10", @@ -8471,7 +8471,7 @@ ], "src": "2424:15:10" }, - "scope": 2479, + "scope": 2476, "src": "2369:102:10", "stateMutability": "view", "virtual": true, @@ -8479,17 +8479,17 @@ }, { "baseFunctions": [ - 2581 + 2578 ], "body": { - "id": 1966, + "id": 1963, "nodeType": "Block", "src": "3169:26:10", "statements": [ { "expression": { "hexValue": "3138", - "id": 1964, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, @@ -8503,21 +8503,21 @@ }, "value": "18" }, - "functionReturnParameters": 1963, - "id": 1965, + "functionReturnParameters": 1960, + "id": 1962, "nodeType": "Return", "src": "3179:9:10" } ] }, "documentation": { - "id": 1958, + "id": 1955, "nodeType": "StructuredDocumentation", "src": "2477:622:10", "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." }, "functionSelector": "313ce567", - "id": 1967, + "id": 1964, "implemented": true, "kind": "function", "modifiers": [], @@ -8525,29 +8525,29 @@ "nameLocation": "3113:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1960, + "id": 1957, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3144:8:10" }, "parameters": { - "id": 1959, + "id": 1956, "nodeType": "ParameterList", "parameters": [], "src": "3121:2:10" }, "returnParameters": { - "id": 1963, + "id": 1960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1962, + "id": 1959, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1967, + "scope": 1964, "src": "3162:5:10", "stateVariable": false, "storageLocation": "default", @@ -8556,7 +8556,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1961, + "id": 1958, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3162:5:10", @@ -8570,7 +8570,7 @@ ], "src": "3161:7:10" }, - "scope": 2479, + "scope": 2476, "src": "3104:91:10", "stateMutability": "view", "virtual": true, @@ -8578,41 +8578,41 @@ }, { "baseFunctions": [ - 2506 + 2503 ], "body": { - "id": 1976, + "id": 1973, "nodeType": "Block", "src": "3325:36:10", "statements": [ { "expression": { - "id": 1974, + "id": 1971, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "3342:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1973, - "id": 1975, + "functionReturnParameters": 1970, + "id": 1972, "nodeType": "Return", "src": "3335:19:10" } ] }, "documentation": { - "id": 1968, + "id": 1965, "nodeType": "StructuredDocumentation", "src": "3201:49:10", "text": " @dev See {IERC20-totalSupply}." }, "functionSelector": "18160ddd", - "id": 1977, + "id": 1974, "implemented": true, "kind": "function", "modifiers": [], @@ -8620,29 +8620,29 @@ "nameLocation": "3264:11:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1970, + "id": 1967, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3298:8:10" }, "parameters": { - "id": 1969, + "id": 1966, "nodeType": "ParameterList", "parameters": [], "src": "3275:2:10" }, "returnParameters": { - "id": 1973, + "id": 1970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 1969, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1977, + "scope": 1974, "src": "3316:7:10", "stateVariable": false, "storageLocation": "default", @@ -8651,7 +8651,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1971, + "id": 1968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3316:7:10", @@ -8665,7 +8665,7 @@ ], "src": "3315:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3255:106:10", "stateMutability": "view", "virtual": true, @@ -8673,34 +8673,34 @@ }, { "baseFunctions": [ - 2514 + 2511 ], "body": { - "id": 1990, + "id": 1987, "nodeType": "Block", "src": "3502:42:10", "statements": [ { "expression": { "baseExpression": { - "id": 1986, + "id": 1983, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "3519:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1988, + "id": 1985, "indexExpression": { - "id": 1987, + "id": 1984, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, + "referencedDeclaration": 1977, "src": "3529:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8718,21 +8718,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1985, - "id": 1989, + "functionReturnParameters": 1982, + "id": 1986, "nodeType": "Return", "src": "3512:25:10" } ] }, "documentation": { - "id": 1978, + "id": 1975, "nodeType": "StructuredDocumentation", "src": "3367:47:10", "text": " @dev See {IERC20-balanceOf}." }, "functionSelector": "70a08231", - "id": 1991, + "id": 1988, "implemented": true, "kind": "function", "modifiers": [], @@ -8740,23 +8740,23 @@ "nameLocation": "3428:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1982, + "id": 1979, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3475:8:10" }, "parameters": { - "id": 1981, + "id": 1978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1980, + "id": 1977, "mutability": "mutable", "name": "account", "nameLocation": "3446:7:10", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3438:15:10", "stateVariable": false, "storageLocation": "default", @@ -8765,7 +8765,7 @@ "typeString": "address" }, "typeName": { - "id": 1979, + "id": 1976, "name": "address", "nodeType": "ElementaryTypeName", "src": "3438:7:10", @@ -8781,17 +8781,17 @@ "src": "3437:17:10" }, "returnParameters": { - "id": 1985, + "id": 1982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 1981, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1991, + "scope": 1988, "src": "3493:7:10", "stateVariable": false, "storageLocation": "default", @@ -8800,7 +8800,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1983, + "id": 1980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3493:7:10", @@ -8814,7 +8814,7 @@ ], "src": "3492:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3419:125:10", "stateMutability": "view", "virtual": true, @@ -8822,26 +8822,26 @@ }, { "baseFunctions": [ - 2524 + 2521 ], "body": { - "id": 2015, + "id": 2012, "nodeType": "Block", "src": "3825:104:10", "statements": [ { "assignments": [ - 2003 + 2000 ], "declarations": [ { "constant": false, - "id": 2003, + "id": 2000, "mutability": "mutable", "name": "owner", "nameLocation": "3843:5:10", "nodeType": "VariableDeclaration", - "scope": 2015, + "scope": 2012, "src": "3835:13:10", "stateVariable": false, "storageLocation": "default", @@ -8850,7 +8850,7 @@ "typeString": "address" }, "typeName": { - "id": 2002, + "id": 1999, "name": "address", "nodeType": "ElementaryTypeName", "src": "3835:7:10", @@ -8863,23 +8863,23 @@ "visibility": "internal" } ], - "id": 2006, + "id": 2003, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2004, + "id": 2001, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "3851:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2005, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, @@ -8902,11 +8902,11 @@ "expression": { "arguments": [ { - "id": 2008, + "id": 2005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2003, + "referencedDeclaration": 2000, "src": "3883:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8914,11 +8914,11 @@ } }, { - "id": 2009, + "id": 2006, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1994, + "referencedDeclaration": 1991, "src": "3890:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8926,11 +8926,11 @@ } }, { - "id": 2010, + "id": 2007, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1996, + "referencedDeclaration": 1993, "src": "3894:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8953,18 +8953,18 @@ "typeString": "uint256" } ], - "id": 2007, + "id": 2004, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "3873:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2011, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -8980,14 +8980,14 @@ "typeString": "tuple()" } }, - "id": 2012, + "id": 2009, "nodeType": "ExpressionStatement", "src": "3873:28:10" }, { "expression": { "hexValue": "74727565", - "id": 2013, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": true, @@ -9001,21 +9001,21 @@ }, "value": "true" }, - "functionReturnParameters": 2001, - "id": 2014, + "functionReturnParameters": 1998, + "id": 2011, "nodeType": "Return", "src": "3911:11:10" } ] }, "documentation": { - "id": 1992, + "id": 1989, "nodeType": "StructuredDocumentation", "src": "3550:185:10", "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." }, "functionSelector": "a9059cbb", - "id": 2016, + "id": 2013, "implemented": true, "kind": "function", "modifiers": [], @@ -9023,23 +9023,23 @@ "nameLocation": "3749:8:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 1998, + "id": 1995, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3801:8:10" }, "parameters": { - "id": 1997, + "id": 1994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1994, + "id": 1991, "mutability": "mutable", "name": "to", "nameLocation": "3766:2:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3758:10:10", "stateVariable": false, "storageLocation": "default", @@ -9048,7 +9048,7 @@ "typeString": "address" }, "typeName": { - "id": 1993, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", "src": "3758:7:10", @@ -9062,12 +9062,12 @@ }, { "constant": false, - "id": 1996, + "id": 1993, "mutability": "mutable", "name": "amount", "nameLocation": "3778:6:10", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3770:14:10", "stateVariable": false, "storageLocation": "default", @@ -9076,7 +9076,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1995, + "id": 1992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3770:7:10", @@ -9091,17 +9091,17 @@ "src": "3757:28:10" }, "returnParameters": { - "id": 2001, + "id": 1998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2000, + "id": 1997, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2016, + "scope": 2013, "src": "3819:4:10", "stateVariable": false, "storageLocation": "default", @@ -9110,7 +9110,7 @@ "typeString": "bool" }, "typeName": { - "id": 1999, + "id": 1996, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3819:4:10", @@ -9124,7 +9124,7 @@ ], "src": "3818:6:10" }, - "scope": 2479, + "scope": 2476, "src": "3740:189:10", "stateMutability": "nonpayable", "virtual": true, @@ -9132,10 +9132,10 @@ }, { "baseFunctions": [ - 2534 + 2531 ], "body": { - "id": 2033, + "id": 2030, "nodeType": "Block", "src": "4085:51:10", "statements": [ @@ -9143,24 +9143,24 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 2027, + "id": 2024, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "4102:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2029, + "id": 2026, "indexExpression": { - "id": 2028, + "id": 2025, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 2016, "src": "4114:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9178,13 +9178,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2031, + "id": 2028, "indexExpression": { - "id": 2030, + "id": 2027, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, + "referencedDeclaration": 2018, "src": "4121:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9202,21 +9202,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2026, - "id": 2032, + "functionReturnParameters": 2023, + "id": 2029, "nodeType": "Return", "src": "4095:34:10" } ] }, "documentation": { - "id": 2017, + "id": 2014, "nodeType": "StructuredDocumentation", "src": "3935:47:10", "text": " @dev See {IERC20-allowance}." }, "functionSelector": "dd62ed3e", - "id": 2034, + "id": 2031, "implemented": true, "kind": "function", "modifiers": [], @@ -9224,23 +9224,23 @@ "nameLocation": "3996:9:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2023, + "id": 2020, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4058:8:10" }, "parameters": { - "id": 2022, + "id": 2019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2019, + "id": 2016, "mutability": "mutable", "name": "owner", "nameLocation": "4014:5:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4006:13:10", "stateVariable": false, "storageLocation": "default", @@ -9249,7 +9249,7 @@ "typeString": "address" }, "typeName": { - "id": 2018, + "id": 2015, "name": "address", "nodeType": "ElementaryTypeName", "src": "4006:7:10", @@ -9263,12 +9263,12 @@ }, { "constant": false, - "id": 2021, + "id": 2018, "mutability": "mutable", "name": "spender", "nameLocation": "4029:7:10", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4021:15:10", "stateVariable": false, "storageLocation": "default", @@ -9277,7 +9277,7 @@ "typeString": "address" }, "typeName": { - "id": 2020, + "id": 2017, "name": "address", "nodeType": "ElementaryTypeName", "src": "4021:7:10", @@ -9293,17 +9293,17 @@ "src": "4005:32:10" }, "returnParameters": { - "id": 2026, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2025, + "id": 2022, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2034, + "scope": 2031, "src": "4076:7:10", "stateVariable": false, "storageLocation": "default", @@ -9312,7 +9312,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2024, + "id": 2021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4076:7:10", @@ -9326,7 +9326,7 @@ ], "src": "4075:9:10" }, - "scope": 2479, + "scope": 2476, "src": "3987:149:10", "stateMutability": "view", "virtual": true, @@ -9334,26 +9334,26 @@ }, { "baseFunctions": [ - 2544 + 2541 ], "body": { - "id": 2058, + "id": 2055, "nodeType": "Block", "src": "4533:108:10", "statements": [ { "assignments": [ - 2046 + 2043 ], "declarations": [ { "constant": false, - "id": 2046, + "id": 2043, "mutability": "mutable", "name": "owner", "nameLocation": "4551:5:10", "nodeType": "VariableDeclaration", - "scope": 2058, + "scope": 2055, "src": "4543:13:10", "stateVariable": false, "storageLocation": "default", @@ -9362,7 +9362,7 @@ "typeString": "address" }, "typeName": { - "id": 2045, + "id": 2042, "name": "address", "nodeType": "ElementaryTypeName", "src": "4543:7:10", @@ -9375,23 +9375,23 @@ "visibility": "internal" } ], - "id": 2049, + "id": 2046, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2047, + "id": 2044, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "4559:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2048, + "id": 2045, "isConstant": false, "isLValue": false, "isPure": false, @@ -9414,11 +9414,11 @@ "expression": { "arguments": [ { - "id": 2051, + "id": 2048, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, + "referencedDeclaration": 2043, "src": "4590:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9426,11 +9426,11 @@ } }, { - "id": 2052, + "id": 2049, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, + "referencedDeclaration": 2034, "src": "4597:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9438,11 +9438,11 @@ } }, { - "id": 2053, + "id": 2050, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2039, + "referencedDeclaration": 2036, "src": "4606:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9465,18 +9465,18 @@ "typeString": "uint256" } ], - "id": 2050, + "id": 2047, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "4581:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2054, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -9492,14 +9492,14 @@ "typeString": "tuple()" } }, - "id": 2055, + "id": 2052, "nodeType": "ExpressionStatement", "src": "4581:32:10" }, { "expression": { "hexValue": "74727565", - "id": 2056, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, @@ -9513,21 +9513,21 @@ }, "value": "true" }, - "functionReturnParameters": 2044, - "id": 2057, + "functionReturnParameters": 2041, + "id": 2054, "nodeType": "Return", "src": "4623:11:10" } ] }, "documentation": { - "id": 2035, + "id": 2032, "nodeType": "StructuredDocumentation", "src": "4142:297:10", "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "095ea7b3", - "id": 2059, + "id": 2056, "implemented": true, "kind": "function", "modifiers": [], @@ -9535,23 +9535,23 @@ "nameLocation": "4453:7:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2041, + "id": 2038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4509:8:10" }, "parameters": { - "id": 2040, + "id": 2037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2037, + "id": 2034, "mutability": "mutable", "name": "spender", "nameLocation": "4469:7:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4461:15:10", "stateVariable": false, "storageLocation": "default", @@ -9560,7 +9560,7 @@ "typeString": "address" }, "typeName": { - "id": 2036, + "id": 2033, "name": "address", "nodeType": "ElementaryTypeName", "src": "4461:7:10", @@ -9574,12 +9574,12 @@ }, { "constant": false, - "id": 2039, + "id": 2036, "mutability": "mutable", "name": "amount", "nameLocation": "4486:6:10", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4478:14:10", "stateVariable": false, "storageLocation": "default", @@ -9588,7 +9588,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2038, + "id": 2035, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4478:7:10", @@ -9603,17 +9603,17 @@ "src": "4460:33:10" }, "returnParameters": { - "id": 2044, + "id": 2041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2043, + "id": 2040, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2059, + "scope": 2056, "src": "4527:4:10", "stateVariable": false, "storageLocation": "default", @@ -9622,7 +9622,7 @@ "typeString": "bool" }, "typeName": { - "id": 2042, + "id": 2039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4527:4:10", @@ -9636,7 +9636,7 @@ ], "src": "4526:6:10" }, - "scope": 2479, + "scope": 2476, "src": "4444:197:10", "stateMutability": "nonpayable", "virtual": true, @@ -9644,26 +9644,26 @@ }, { "baseFunctions": [ - 2556 + 2553 ], "body": { - "id": 2091, + "id": 2088, "nodeType": "Block", "src": "5306:153:10", "statements": [ { "assignments": [ - 2073 + 2070 ], "declarations": [ { "constant": false, - "id": 2073, + "id": 2070, "mutability": "mutable", "name": "spender", "nameLocation": "5324:7:10", "nodeType": "VariableDeclaration", - "scope": 2091, + "scope": 2088, "src": "5316:15:10", "stateVariable": false, "storageLocation": "default", @@ -9672,7 +9672,7 @@ "typeString": "address" }, "typeName": { - "id": 2072, + "id": 2069, "name": "address", "nodeType": "ElementaryTypeName", "src": "5316:7:10", @@ -9685,23 +9685,23 @@ "visibility": "internal" } ], - "id": 2076, + "id": 2073, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2074, + "id": 2071, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5334:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2075, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": false, @@ -9724,11 +9724,11 @@ "expression": { "arguments": [ { - "id": 2078, + "id": 2075, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5372:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9736,11 +9736,11 @@ } }, { - "id": 2079, + "id": 2076, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, + "referencedDeclaration": 2070, "src": "5378:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9748,11 +9748,11 @@ } }, { - "id": 2080, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5387:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9775,18 +9775,18 @@ "typeString": "uint256" } ], - "id": 2077, + "id": 2074, "name": "_spendAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2456, + "referencedDeclaration": 2453, "src": "5356:15:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2081, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -9802,7 +9802,7 @@ "typeString": "tuple()" } }, - "id": 2082, + "id": 2079, "nodeType": "ExpressionStatement", "src": "5356:38:10" }, @@ -9810,11 +9810,11 @@ "expression": { "arguments": [ { - "id": 2084, + "id": 2081, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, + "referencedDeclaration": 2059, "src": "5414:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9822,11 +9822,11 @@ } }, { - "id": 2085, + "id": 2082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, + "referencedDeclaration": 2061, "src": "5420:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9834,11 +9834,11 @@ } }, { - "id": 2086, + "id": 2083, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, + "referencedDeclaration": 2063, "src": "5424:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9861,18 +9861,18 @@ "typeString": "uint256" } ], - "id": 2083, + "id": 2080, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2239, + "referencedDeclaration": 2236, "src": "5404:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2087, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, @@ -9888,14 +9888,14 @@ "typeString": "tuple()" } }, - "id": 2088, + "id": 2085, "nodeType": "ExpressionStatement", "src": "5404:27:10" }, { "expression": { "hexValue": "74727565", - "id": 2089, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": true, @@ -9909,21 +9909,21 @@ }, "value": "true" }, - "functionReturnParameters": 2071, - "id": 2090, + "functionReturnParameters": 2068, + "id": 2087, "nodeType": "Return", "src": "5441:11:10" } ] }, "documentation": { - "id": 2060, + "id": 2057, "nodeType": "StructuredDocumentation", "src": "4647:551:10", "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." }, "functionSelector": "23b872dd", - "id": 2092, + "id": 2089, "implemented": true, "kind": "function", "modifiers": [], @@ -9931,23 +9931,23 @@ "nameLocation": "5212:12:10", "nodeType": "FunctionDefinition", "overrides": { - "id": 2068, + "id": 2065, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5282:8:10" }, "parameters": { - "id": 2067, + "id": 2064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2062, + "id": 2059, "mutability": "mutable", "name": "from", "nameLocation": "5233:4:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5225:12:10", "stateVariable": false, "storageLocation": "default", @@ -9956,7 +9956,7 @@ "typeString": "address" }, "typeName": { - "id": 2061, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5225:7:10", @@ -9970,12 +9970,12 @@ }, { "constant": false, - "id": 2064, + "id": 2061, "mutability": "mutable", "name": "to", "nameLocation": "5247:2:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5239:10:10", "stateVariable": false, "storageLocation": "default", @@ -9984,7 +9984,7 @@ "typeString": "address" }, "typeName": { - "id": 2063, + "id": 2060, "name": "address", "nodeType": "ElementaryTypeName", "src": "5239:7:10", @@ -9998,12 +9998,12 @@ }, { "constant": false, - "id": 2066, + "id": 2063, "mutability": "mutable", "name": "amount", "nameLocation": "5259:6:10", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5251:14:10", "stateVariable": false, "storageLocation": "default", @@ -10012,7 +10012,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2065, + "id": 2062, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:10", @@ -10027,17 +10027,17 @@ "src": "5224:42:10" }, "returnParameters": { - "id": 2071, + "id": 2068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 2067, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2092, + "scope": 2089, "src": "5300:4:10", "stateVariable": false, "storageLocation": "default", @@ -10046,7 +10046,7 @@ "typeString": "bool" }, "typeName": { - "id": 2069, + "id": 2066, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5300:4:10", @@ -10060,7 +10060,7 @@ ], "src": "5299:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5203:256:10", "stateMutability": "nonpayable", "virtual": true, @@ -10068,23 +10068,23 @@ }, { "body": { - "id": 2120, + "id": 2117, "nodeType": "Block", "src": "5948:140:10", "statements": [ { "assignments": [ - 2103 + 2100 ], "declarations": [ { "constant": false, - "id": 2103, + "id": 2100, "mutability": "mutable", "name": "owner", "nameLocation": "5966:5:10", "nodeType": "VariableDeclaration", - "scope": 2120, + "scope": 2117, "src": "5958:13:10", "stateVariable": false, "storageLocation": "default", @@ -10093,7 +10093,7 @@ "typeString": "address" }, "typeName": { - "id": 2102, + "id": 2099, "name": "address", "nodeType": "ElementaryTypeName", "src": "5958:7:10", @@ -10106,23 +10106,23 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2103, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2104, + "id": 2101, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "5974:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2105, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, @@ -10145,11 +10145,11 @@ "expression": { "arguments": [ { - "id": 2108, + "id": 2105, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6005:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10157,11 +10157,11 @@ } }, { - "id": 2109, + "id": 2106, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6012:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10173,7 +10173,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2115, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -10181,11 +10181,11 @@ "leftExpression": { "arguments": [ { - "id": 2111, + "id": 2108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, + "referencedDeclaration": 2100, "src": "6031:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10193,11 +10193,11 @@ } }, { - "id": 2112, + "id": 2109, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, + "referencedDeclaration": 2092, "src": "6038:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10216,18 +10216,18 @@ "typeString": "address" } ], - "id": 2110, + "id": 2107, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6021:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2113, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -10246,11 +10246,11 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 2114, + "id": 2111, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2097, + "referencedDeclaration": 2094, "src": "6049:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10279,18 +10279,18 @@ "typeString": "uint256" } ], - "id": 2107, + "id": 2104, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "5996:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2116, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, @@ -10306,14 +10306,14 @@ "typeString": "tuple()" } }, - "id": 2117, + "id": 2114, "nodeType": "ExpressionStatement", "src": "5996:64:10" }, { "expression": { "hexValue": "74727565", - "id": 2118, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": true, @@ -10327,21 +10327,21 @@ }, "value": "true" }, - "functionReturnParameters": 2101, - "id": 2119, + "functionReturnParameters": 2098, + "id": 2116, "nodeType": "Return", "src": "6070:11:10" } ] }, "documentation": { - "id": 2093, + "id": 2090, "nodeType": "StructuredDocumentation", "src": "5465:384:10", "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." }, "functionSelector": "39509351", - "id": 2121, + "id": 2118, "implemented": true, "kind": "function", "modifiers": [], @@ -10349,17 +10349,17 @@ "nameLocation": "5863:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2098, + "id": 2095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2095, + "id": 2092, "mutability": "mutable", "name": "spender", "nameLocation": "5889:7:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5881:15:10", "stateVariable": false, "storageLocation": "default", @@ -10368,7 +10368,7 @@ "typeString": "address" }, "typeName": { - "id": 2094, + "id": 2091, "name": "address", "nodeType": "ElementaryTypeName", "src": "5881:7:10", @@ -10382,12 +10382,12 @@ }, { "constant": false, - "id": 2097, + "id": 2094, "mutability": "mutable", "name": "addedValue", "nameLocation": "5906:10:10", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5898:18:10", "stateVariable": false, "storageLocation": "default", @@ -10396,7 +10396,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2096, + "id": 2093, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5898:7:10", @@ -10411,17 +10411,17 @@ "src": "5880:37:10" }, "returnParameters": { - "id": 2101, + "id": 2098, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2100, + "id": 2097, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2121, + "scope": 2118, "src": "5942:4:10", "stateVariable": false, "storageLocation": "default", @@ -10430,7 +10430,7 @@ "typeString": "bool" }, "typeName": { - "id": 2099, + "id": 2096, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5942:4:10", @@ -10444,7 +10444,7 @@ ], "src": "5941:6:10" }, - "scope": 2479, + "scope": 2476, "src": "5854:234:10", "stateMutability": "nonpayable", "virtual": true, @@ -10452,23 +10452,23 @@ }, { "body": { - "id": 2161, + "id": 2158, "nodeType": "Block", "src": "6674:328:10", "statements": [ { "assignments": [ - 2132 + 2129 ], "declarations": [ { "constant": false, - "id": 2132, + "id": 2129, "mutability": "mutable", "name": "owner", "nameLocation": "6692:5:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6684:13:10", "stateVariable": false, "storageLocation": "default", @@ -10477,7 +10477,7 @@ "typeString": "address" }, "typeName": { - "id": 2131, + "id": 2128, "name": "address", "nodeType": "ElementaryTypeName", "src": "6684:7:10", @@ -10490,23 +10490,23 @@ "visibility": "internal" } ], - "id": 2135, + "id": 2132, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 2133, + "id": 2130, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2594, + "referencedDeclaration": 2591, "src": "6700:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2134, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -10527,17 +10527,17 @@ }, { "assignments": [ - 2137 + 2134 ], "declarations": [ { "constant": false, - "id": 2137, + "id": 2134, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "6730:16:10", "nodeType": "VariableDeclaration", - "scope": 2161, + "scope": 2158, "src": "6722:24:10", "stateVariable": false, "storageLocation": "default", @@ -10546,7 +10546,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2133, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6722:7:10", @@ -10558,15 +10558,15 @@ "visibility": "internal" } ], - "id": 2142, + "id": 2139, "initialValue": { "arguments": [ { - "id": 2139, + "id": 2136, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6759:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10574,11 +10574,11 @@ } }, { - "id": 2140, + "id": 2137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6766:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10597,18 +10597,18 @@ "typeString": "address" } ], - "id": 2138, + "id": 2135, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "6749:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2141, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": false, @@ -10635,17 +10635,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2146, + "id": 2143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2144, + "id": 2141, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6792:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10655,11 +10655,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2145, + "id": 2142, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6812:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10674,7 +10674,7 @@ }, { "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 2147, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, @@ -10700,7 +10700,7 @@ "typeString": "literal_string \"ERC20: decreased allowance below zero\"" } ], - "id": 2143, + "id": 2140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10714,7 +10714,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2148, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -10730,12 +10730,12 @@ "typeString": "tuple()" } }, - "id": 2149, + "id": 2146, "nodeType": "ExpressionStatement", "src": "6784:85:10" }, { - "id": 2158, + "id": 2155, "nodeType": "UncheckedBlock", "src": "6879:95:10", "statements": [ @@ -10743,11 +10743,11 @@ "expression": { "arguments": [ { - "id": 2151, + "id": 2148, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, + "referencedDeclaration": 2129, "src": "6912:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10755,11 +10755,11 @@ } }, { - "id": 2152, + "id": 2149, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, + "referencedDeclaration": 2121, "src": "6919:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10771,17 +10771,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2155, + "id": 2152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2150, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2134, "src": "6928:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10791,11 +10791,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2154, + "id": 2151, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, + "referencedDeclaration": 2123, "src": "6947:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10824,18 +10824,18 @@ "typeString": "uint256" } ], - "id": 2150, + "id": 2147, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "6903:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2156, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -10851,7 +10851,7 @@ "typeString": "tuple()" } }, - "id": 2157, + "id": 2154, "nodeType": "ExpressionStatement", "src": "6903:60:10" } @@ -10860,7 +10860,7 @@ { "expression": { "hexValue": "74727565", - "id": 2159, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": true, @@ -10874,21 +10874,21 @@ }, "value": "true" }, - "functionReturnParameters": 2130, - "id": 2160, + "functionReturnParameters": 2127, + "id": 2157, "nodeType": "Return", "src": "6984:11:10" } ] }, "documentation": { - "id": 2122, + "id": 2119, "nodeType": "StructuredDocumentation", "src": "6094:476:10", "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." }, "functionSelector": "a457c2d7", - "id": 2162, + "id": 2159, "implemented": true, "kind": "function", "modifiers": [], @@ -10896,17 +10896,17 @@ "nameLocation": "6584:17:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2127, + "id": 2124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2124, + "id": 2121, "mutability": "mutable", "name": "spender", "nameLocation": "6610:7:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6602:15:10", "stateVariable": false, "storageLocation": "default", @@ -10915,7 +10915,7 @@ "typeString": "address" }, "typeName": { - "id": 2123, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", "src": "6602:7:10", @@ -10929,12 +10929,12 @@ }, { "constant": false, - "id": 2126, + "id": 2123, "mutability": "mutable", "name": "subtractedValue", "nameLocation": "6627:15:10", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6619:23:10", "stateVariable": false, "storageLocation": "default", @@ -10943,7 +10943,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2125, + "id": 2122, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6619:7:10", @@ -10958,17 +10958,17 @@ "src": "6601:42:10" }, "returnParameters": { - "id": 2130, + "id": 2127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2129, + "id": 2126, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2162, + "scope": 2159, "src": "6668:4:10", "stateVariable": false, "storageLocation": "default", @@ -10977,7 +10977,7 @@ "typeString": "bool" }, "typeName": { - "id": 2128, + "id": 2125, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6668:4:10", @@ -10991,7 +10991,7 @@ ], "src": "6667:6:10" }, - "scope": 2479, + "scope": 2476, "src": "6575:427:10", "stateMutability": "nonpayable", "virtual": true, @@ -10999,7 +10999,7 @@ }, { "body": { - "id": 2238, + "id": 2235, "nodeType": "Block", "src": "7534:710:10", "statements": [ @@ -11011,17 +11011,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2178, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2173, + "id": 2170, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7552:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11034,7 +11034,7 @@ "arguments": [ { "hexValue": "30", - "id": 2176, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -11056,7 +11056,7 @@ "typeString": "int_const 0" } ], - "id": 2175, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": true, @@ -11068,14 +11068,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2174, + "id": 2171, "name": "address", "nodeType": "ElementaryTypeName", "src": "7560:7:10", "typeDescriptions": {} } }, - "id": 2177, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": true, @@ -11099,7 +11099,7 @@ }, { "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 2179, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": true, @@ -11125,7 +11125,7 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 2172, + "id": 2169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11139,7 +11139,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2177, "isConstant": false, "isLValue": false, "isPure": false, @@ -11155,7 +11155,7 @@ "typeString": "tuple()" } }, - "id": 2181, + "id": 2178, "nodeType": "ExpressionStatement", "src": "7544:68:10" }, @@ -11167,17 +11167,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2188, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7630:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11190,7 +11190,7 @@ "arguments": [ { "hexValue": "30", - "id": 2186, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, @@ -11212,7 +11212,7 @@ "typeString": "int_const 0" } ], - "id": 2185, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": true, @@ -11224,14 +11224,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2184, + "id": 2181, "name": "address", "nodeType": "ElementaryTypeName", "src": "7636:7:10", "typeDescriptions": {} } }, - "id": 2187, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, @@ -11255,7 +11255,7 @@ }, { "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2189, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": true, @@ -11281,7 +11281,7 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 2182, + "id": 2179, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11295,7 +11295,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2190, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -11311,7 +11311,7 @@ "typeString": "tuple()" } }, - "id": 2191, + "id": 2188, "nodeType": "ExpressionStatement", "src": "7622:64:10" }, @@ -11319,11 +11319,11 @@ "expression": { "arguments": [ { - "id": 2193, + "id": 2190, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7718:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11331,11 +11331,11 @@ } }, { - "id": 2194, + "id": 2191, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "7724:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11343,11 +11343,11 @@ } }, { - "id": 2195, + "id": 2192, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7728:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11370,18 +11370,18 @@ "typeString": "uint256" } ], - "id": 2192, + "id": 2189, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "7697:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2196, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, @@ -11397,23 +11397,23 @@ "typeString": "tuple()" } }, - "id": 2197, + "id": 2194, "nodeType": "ExpressionStatement", "src": "7697:38:10" }, { "assignments": [ - 2199 + 2196 ], "declarations": [ { "constant": false, - "id": 2199, + "id": 2196, "mutability": "mutable", "name": "fromBalance", "nameLocation": "7754:11:10", "nodeType": "VariableDeclaration", - "scope": 2238, + "scope": 2235, "src": "7746:19:10", "stateVariable": false, "storageLocation": "default", @@ -11422,7 +11422,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2198, + "id": 2195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:10", @@ -11434,27 +11434,27 @@ "visibility": "internal" } ], - "id": 2203, + "id": 2200, "initialValue": { "baseExpression": { - "id": 2200, + "id": 2197, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7768:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2202, + "id": 2199, "indexExpression": { - "id": 2201, + "id": 2198, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7778:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11483,17 +11483,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2207, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2205, + "id": 2202, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7801:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11503,11 +11503,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2206, + "id": 2203, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7816:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11522,7 +11522,7 @@ }, { "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 2208, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -11548,7 +11548,7 @@ "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" } ], - "id": 2204, + "id": 2201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11562,7 +11562,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, @@ -11578,42 +11578,42 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2207, "nodeType": "ExpressionStatement", "src": "7793:72:10" }, { - "id": 2225, + "id": 2222, "nodeType": "UncheckedBlock", "src": "7875:273:10", "statements": [ { "expression": { - "id": 2217, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2211, + "id": 2208, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "7899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2213, + "id": 2210, "indexExpression": { - "id": 2212, + "id": 2209, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "7909:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11638,17 +11638,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2214, + "id": 2211, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, + "referencedDeclaration": 2196, "src": "7917:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11658,11 +11658,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2215, + "id": 2212, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "7931:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11681,37 +11681,37 @@ "typeString": "uint256" } }, - "id": 2218, + "id": 2215, "nodeType": "ExpressionStatement", "src": "7899:38:10" }, { "expression": { - "id": 2223, + "id": 2220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2219, + "id": 2216, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8114:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2221, + "id": 2218, "indexExpression": { - "id": 2220, + "id": 2217, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8124:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11732,11 +11732,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2222, + "id": 2219, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8131:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11749,7 +11749,7 @@ "typeString": "uint256" } }, - "id": 2224, + "id": 2221, "nodeType": "ExpressionStatement", "src": "8114:23:10" } @@ -11759,11 +11759,11 @@ "eventCall": { "arguments": [ { - "id": 2227, + "id": 2224, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8172:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11771,11 +11771,11 @@ } }, { - "id": 2228, + "id": 2225, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8178:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11783,11 +11783,11 @@ } }, { - "id": 2229, + "id": 2226, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8182:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11810,18 +11810,18 @@ "typeString": "uint256" } ], - "id": 2226, + "id": 2223, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8163:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2230, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, @@ -11837,7 +11837,7 @@ "typeString": "tuple()" } }, - "id": 2231, + "id": 2228, "nodeType": "EmitStatement", "src": "8158:31:10" }, @@ -11845,11 +11845,11 @@ "expression": { "arguments": [ { - "id": 2233, + "id": 2230, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, + "referencedDeclaration": 2162, "src": "8220:4:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11857,11 +11857,11 @@ } }, { - "id": 2234, + "id": 2231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2167, + "referencedDeclaration": 2164, "src": "8226:2:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11869,11 +11869,11 @@ } }, { - "id": 2235, + "id": 2232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, + "referencedDeclaration": 2166, "src": "8230:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11896,18 +11896,18 @@ "typeString": "uint256" } ], - "id": 2232, + "id": 2229, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "8200:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2236, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -11923,19 +11923,19 @@ "typeString": "tuple()" } }, - "id": 2237, + "id": 2234, "nodeType": "ExpressionStatement", "src": "8200:37:10" } ] }, "documentation": { - "id": 2163, + "id": 2160, "nodeType": "StructuredDocumentation", "src": "7008:443:10", "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." }, - "id": 2239, + "id": 2236, "implemented": true, "kind": "function", "modifiers": [], @@ -11943,17 +11943,17 @@ "nameLocation": "7465:9:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 2167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 2162, "mutability": "mutable", "name": "from", "nameLocation": "7483:4:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7475:12:10", "stateVariable": false, "storageLocation": "default", @@ -11962,7 +11962,7 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "7475:7:10", @@ -11976,12 +11976,12 @@ }, { "constant": false, - "id": 2167, + "id": 2164, "mutability": "mutable", "name": "to", "nameLocation": "7497:2:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7489:10:10", "stateVariable": false, "storageLocation": "default", @@ -11990,7 +11990,7 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 2163, "name": "address", "nodeType": "ElementaryTypeName", "src": "7489:7:10", @@ -12004,12 +12004,12 @@ }, { "constant": false, - "id": 2169, + "id": 2166, "mutability": "mutable", "name": "amount", "nameLocation": "7509:6:10", "nodeType": "VariableDeclaration", - "scope": 2239, + "scope": 2236, "src": "7501:14:10", "stateVariable": false, "storageLocation": "default", @@ -12018,7 +12018,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2168, + "id": 2165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7501:7:10", @@ -12033,12 +12033,12 @@ "src": "7474:42:10" }, "returnParameters": { - "id": 2171, + "id": 2168, "nodeType": "ParameterList", "parameters": [], "src": "7534:0:10" }, - "scope": 2479, + "scope": 2476, "src": "7456:788:10", "stateMutability": "nonpayable", "virtual": true, @@ -12046,7 +12046,7 @@ }, { "body": { - "id": 2295, + "id": 2292, "nodeType": "Block", "src": "8585:470:10", "statements": [ @@ -12058,17 +12058,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2253, + "id": 2250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2248, + "id": 2245, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8603:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12081,7 +12081,7 @@ "arguments": [ { "hexValue": "30", - "id": 2251, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": true, @@ -12103,7 +12103,7 @@ "typeString": "int_const 0" } ], - "id": 2250, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -12115,14 +12115,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2249, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", "src": "8614:7:10", "typeDescriptions": {} } }, - "id": 2252, + "id": 2249, "isConstant": false, "isLValue": false, "isPure": true, @@ -12146,7 +12146,7 @@ }, { "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2254, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, @@ -12172,7 +12172,7 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 2247, + "id": 2244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12186,7 +12186,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2255, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -12202,7 +12202,7 @@ "typeString": "tuple()" } }, - "id": 2256, + "id": 2253, "nodeType": "ExpressionStatement", "src": "8595:65:10" }, @@ -12213,7 +12213,7 @@ "arguments": [ { "hexValue": "30", - "id": 2260, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, @@ -12235,7 +12235,7 @@ "typeString": "int_const 0" } ], - "id": 2259, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -12247,14 +12247,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2258, + "id": 2255, "name": "address", "nodeType": "ElementaryTypeName", "src": "8692:7:10", "typeDescriptions": {} } }, - "id": 2261, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, @@ -12271,11 +12271,11 @@ } }, { - "id": 2262, + "id": 2259, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8704:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12283,11 +12283,11 @@ } }, { - "id": 2263, + "id": 2260, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8713:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12310,18 +12310,18 @@ "typeString": "uint256" } ], - "id": 2257, + "id": 2254, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "8671:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2264, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, @@ -12337,23 +12337,23 @@ "typeString": "tuple()" } }, - "id": 2265, + "id": 2262, "nodeType": "ExpressionStatement", "src": "8671:49:10" }, { "expression": { - "id": 2268, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2266, + "id": 2263, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "8731:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12363,11 +12363,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2267, + "id": 2264, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8747:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12380,42 +12380,42 @@ "typeString": "uint256" } }, - "id": 2269, + "id": 2266, "nodeType": "ExpressionStatement", "src": "8731:22:10" }, { - "id": 2276, + "id": 2273, "nodeType": "UncheckedBlock", "src": "8763:175:10", "statements": [ { "expression": { - "id": 2274, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2270, + "id": 2267, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "8899:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2272, + "id": 2269, "indexExpression": { - "id": 2271, + "id": 2268, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8909:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12436,11 +12436,11 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 2273, + "id": 2270, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8921:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12453,7 +12453,7 @@ "typeString": "uint256" } }, - "id": 2275, + "id": 2272, "nodeType": "ExpressionStatement", "src": "8899:28:10" } @@ -12466,7 +12466,7 @@ "arguments": [ { "hexValue": "30", - "id": 2280, + "id": 2277, "isConstant": false, "isLValue": false, "isPure": true, @@ -12488,7 +12488,7 @@ "typeString": "int_const 0" } ], - "id": 2279, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": true, @@ -12500,14 +12500,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2278, + "id": 2275, "name": "address", "nodeType": "ElementaryTypeName", "src": "8961:7:10", "typeDescriptions": {} } }, - "id": 2281, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": true, @@ -12524,11 +12524,11 @@ } }, { - "id": 2282, + "id": 2279, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "8973:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12536,11 +12536,11 @@ } }, { - "id": 2283, + "id": 2280, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "8982:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12563,18 +12563,18 @@ "typeString": "uint256" } ], - "id": 2277, + "id": 2274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "8952:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2284, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -12590,7 +12590,7 @@ "typeString": "tuple()" } }, - "id": 2285, + "id": 2282, "nodeType": "EmitStatement", "src": "8947:42:10" }, @@ -12601,7 +12601,7 @@ "arguments": [ { "hexValue": "30", - "id": 2289, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": true, @@ -12623,7 +12623,7 @@ "typeString": "int_const 0" } ], - "id": 2288, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": true, @@ -12635,14 +12635,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2287, + "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "9020:7:10", "typeDescriptions": {} } }, - "id": 2290, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, @@ -12659,11 +12659,11 @@ } }, { - "id": 2291, + "id": 2288, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2242, + "referencedDeclaration": 2239, "src": "9032:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12671,11 +12671,11 @@ } }, { - "id": 2292, + "id": 2289, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2244, + "referencedDeclaration": 2241, "src": "9041:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12698,18 +12698,18 @@ "typeString": "uint256" } ], - "id": 2286, + "id": 2283, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9000:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2293, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -12725,19 +12725,19 @@ "typeString": "tuple()" } }, - "id": 2294, + "id": 2291, "nodeType": "ExpressionStatement", "src": "9000:48:10" } ] }, "documentation": { - "id": 2240, + "id": 2237, "nodeType": "StructuredDocumentation", "src": "8250:265:10", "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." }, - "id": 2296, + "id": 2293, "implemented": true, "kind": "function", "modifiers": [], @@ -12745,17 +12745,17 @@ "nameLocation": "8529:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2245, + "id": 2242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2242, + "id": 2239, "mutability": "mutable", "name": "account", "nameLocation": "8543:7:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8535:15:10", "stateVariable": false, "storageLocation": "default", @@ -12764,7 +12764,7 @@ "typeString": "address" }, "typeName": { - "id": 2241, + "id": 2238, "name": "address", "nodeType": "ElementaryTypeName", "src": "8535:7:10", @@ -12778,12 +12778,12 @@ }, { "constant": false, - "id": 2244, + "id": 2241, "mutability": "mutable", "name": "amount", "nameLocation": "8560:6:10", "nodeType": "VariableDeclaration", - "scope": 2296, + "scope": 2293, "src": "8552:14:10", "stateVariable": false, "storageLocation": "default", @@ -12792,7 +12792,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2243, + "id": 2240, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8552:7:10", @@ -12807,12 +12807,12 @@ "src": "8534:33:10" }, "returnParameters": { - "id": 2246, + "id": 2243, "nodeType": "ParameterList", "parameters": [], "src": "8585:0:10" }, - "scope": 2479, + "scope": 2476, "src": "8520:535:10", "stateMutability": "nonpayable", "virtual": true, @@ -12820,7 +12820,7 @@ }, { "body": { - "id": 2367, + "id": 2364, "nodeType": "Block", "src": "9440:594:10", "statements": [ @@ -12832,17 +12832,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2310, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2305, + "id": 2302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9458:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12855,7 +12855,7 @@ "arguments": [ { "hexValue": "30", - "id": 2308, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -12877,7 +12877,7 @@ "typeString": "int_const 0" } ], - "id": 2307, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": true, @@ -12889,14 +12889,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2306, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "9469:7:10", "typeDescriptions": {} } }, - "id": 2309, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, @@ -12920,7 +12920,7 @@ }, { "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 2311, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, @@ -12946,7 +12946,7 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 2304, + "id": 2301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12960,7 +12960,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2312, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -12976,7 +12976,7 @@ "typeString": "tuple()" } }, - "id": 2313, + "id": 2310, "nodeType": "ExpressionStatement", "src": "9450:67:10" }, @@ -12984,11 +12984,11 @@ "expression": { "arguments": [ { - "id": 2315, + "id": 2312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9549:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12999,7 +12999,7 @@ "arguments": [ { "hexValue": "30", - "id": 2318, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, @@ -13021,7 +13021,7 @@ "typeString": "int_const 0" } ], - "id": 2317, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -13033,14 +13033,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2316, + "id": 2313, "name": "address", "nodeType": "ElementaryTypeName", "src": "9558:7:10", "typeDescriptions": {} } }, - "id": 2319, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -13057,11 +13057,11 @@ } }, { - "id": 2320, + "id": 2317, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9570:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13084,18 +13084,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 2311, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, + "referencedDeclaration": 2464, "src": "9528:20:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2321, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, @@ -13111,23 +13111,23 @@ "typeString": "tuple()" } }, - "id": 2322, + "id": 2319, "nodeType": "ExpressionStatement", "src": "9528:49:10" }, { "assignments": [ - 2324 + 2321 ], "declarations": [ { "constant": false, - "id": 2324, + "id": 2321, "mutability": "mutable", "name": "accountBalance", "nameLocation": "9596:14:10", "nodeType": "VariableDeclaration", - "scope": 2367, + "scope": 2364, "src": "9588:22:10", "stateVariable": false, "storageLocation": "default", @@ -13136,7 +13136,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2323, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9588:7:10", @@ -13148,27 +13148,27 @@ "visibility": "internal" } ], - "id": 2328, + "id": 2325, "initialValue": { "baseExpression": { - "id": 2325, + "id": 2322, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9613:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2327, + "id": 2324, "indexExpression": { - "id": 2326, + "id": 2323, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9623:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13197,17 +13197,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2332, + "id": 2329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2330, + "id": 2327, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9649:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13217,11 +13217,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2331, + "id": 2328, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9667:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13236,7 +13236,7 @@ }, { "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 2333, + "id": 2330, "isConstant": false, "isLValue": false, "isPure": true, @@ -13262,7 +13262,7 @@ "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" } ], - "id": 2329, + "id": 2326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13276,7 +13276,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, @@ -13292,42 +13292,42 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2332, "nodeType": "ExpressionStatement", "src": "9641:71:10" }, { - "id": 2348, + "id": 2345, "nodeType": "UncheckedBlock", "src": "9722:194:10", "statements": [ { "expression": { - "id": 2342, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2336, + "id": 2333, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, + "referencedDeclaration": 1905, "src": "9746:9:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2338, + "id": 2335, "indexExpression": { - "id": 2337, + "id": 2334, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9756:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13352,17 +13352,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2339, + "id": 2336, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, + "referencedDeclaration": 2321, "src": "9767:14:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13372,11 +13372,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2340, + "id": 2337, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9784:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13395,23 +13395,23 @@ "typeString": "uint256" } }, - "id": 2343, + "id": 2340, "nodeType": "ExpressionStatement", "src": "9746:44:10" }, { "expression": { - "id": 2346, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2344, + "id": 2341, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1916, + "referencedDeclaration": 1913, "src": "9883:12:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13421,11 +13421,11 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 2345, + "id": 2342, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9899:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13438,7 +13438,7 @@ "typeString": "uint256" } }, - "id": 2347, + "id": 2344, "nodeType": "ExpressionStatement", "src": "9883:22:10" } @@ -13448,11 +13448,11 @@ "eventCall": { "arguments": [ { - "id": 2350, + "id": 2347, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9940:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13463,7 +13463,7 @@ "arguments": [ { "hexValue": "30", - "id": 2353, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, @@ -13485,7 +13485,7 @@ "typeString": "int_const 0" } ], - "id": 2352, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": true, @@ -13497,14 +13497,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2351, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", "src": "9949:7:10", "typeDescriptions": {} } }, - "id": 2354, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": true, @@ -13521,11 +13521,11 @@ } }, { - "id": 2355, + "id": 2352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "9961:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13548,18 +13548,18 @@ "typeString": "uint256" } ], - "id": 2349, + "id": 2346, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2491, + "referencedDeclaration": 2488, "src": "9931:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2356, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -13575,7 +13575,7 @@ "typeString": "tuple()" } }, - "id": 2357, + "id": 2354, "nodeType": "EmitStatement", "src": "9926:42:10" }, @@ -13583,11 +13583,11 @@ "expression": { "arguments": [ { - "id": 2359, + "id": 2356, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, + "referencedDeclaration": 2296, "src": "9999:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13598,7 +13598,7 @@ "arguments": [ { "hexValue": "30", - "id": 2362, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -13620,7 +13620,7 @@ "typeString": "int_const 0" } ], - "id": 2361, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, @@ -13632,14 +13632,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2360, + "id": 2357, "name": "address", "nodeType": "ElementaryTypeName", "src": "10008:7:10", "typeDescriptions": {} } }, - "id": 2363, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -13656,11 +13656,11 @@ } }, { - "id": 2364, + "id": 2361, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2301, + "referencedDeclaration": 2298, "src": "10020:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13683,18 +13683,18 @@ "typeString": "uint256" } ], - "id": 2358, + "id": 2355, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2478, + "referencedDeclaration": 2475, "src": "9979:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2365, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -13710,19 +13710,19 @@ "typeString": "tuple()" } }, - "id": 2366, + "id": 2363, "nodeType": "ExpressionStatement", "src": "9979:48:10" } ] }, "documentation": { - "id": 2297, + "id": 2294, "nodeType": "StructuredDocumentation", "src": "9061:309:10", "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." }, - "id": 2368, + "id": 2365, "implemented": true, "kind": "function", "modifiers": [], @@ -13730,17 +13730,17 @@ "nameLocation": "9384:5:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2302, + "id": 2299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2299, + "id": 2296, "mutability": "mutable", "name": "account", "nameLocation": "9398:7:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9390:15:10", "stateVariable": false, "storageLocation": "default", @@ -13749,7 +13749,7 @@ "typeString": "address" }, "typeName": { - "id": 2298, + "id": 2295, "name": "address", "nodeType": "ElementaryTypeName", "src": "9390:7:10", @@ -13763,12 +13763,12 @@ }, { "constant": false, - "id": 2301, + "id": 2298, "mutability": "mutable", "name": "amount", "nameLocation": "9415:6:10", "nodeType": "VariableDeclaration", - "scope": 2368, + "scope": 2365, "src": "9407:14:10", "stateVariable": false, "storageLocation": "default", @@ -13777,7 +13777,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2300, + "id": 2297, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9407:7:10", @@ -13792,12 +13792,12 @@ "src": "9389:33:10" }, "returnParameters": { - "id": 2303, + "id": 2300, "nodeType": "ParameterList", "parameters": [], "src": "9440:0:10" }, - "scope": 2479, + "scope": 2476, "src": "9375:659:10", "stateMutability": "nonpayable", "virtual": true, @@ -13805,7 +13805,7 @@ }, { "body": { - "id": 2412, + "id": 2409, "nodeType": "Block", "src": "10540:257:10", "statements": [ @@ -13817,17 +13817,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2384, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2379, + "id": 2376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10558:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13840,7 +13840,7 @@ "arguments": [ { "hexValue": "30", - "id": 2382, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": true, @@ -13862,7 +13862,7 @@ "typeString": "int_const 0" } ], - "id": 2381, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, @@ -13874,14 +13874,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2380, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "10567:7:10", "typeDescriptions": {} } }, - "id": 2383, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, @@ -13905,7 +13905,7 @@ }, { "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 2385, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, @@ -13931,7 +13931,7 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 2378, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13945,7 +13945,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2386, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -13961,7 +13961,7 @@ "typeString": "tuple()" } }, - "id": 2387, + "id": 2384, "nodeType": "ExpressionStatement", "src": "10550:68:10" }, @@ -13973,17 +13973,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2394, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2389, + "id": 2386, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10636:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13996,7 +13996,7 @@ "arguments": [ { "hexValue": "30", - "id": 2392, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, @@ -14018,7 +14018,7 @@ "typeString": "int_const 0" } ], - "id": 2391, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, @@ -14030,14 +14030,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 2390, + "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "10647:7:10", "typeDescriptions": {} } }, - "id": 2393, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, @@ -14061,7 +14061,7 @@ }, { "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 2395, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, @@ -14087,7 +14087,7 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 2388, + "id": 2385, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14101,7 +14101,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2396, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, @@ -14117,13 +14117,13 @@ "typeString": "tuple()" } }, - "id": 2397, + "id": 2394, "nodeType": "ExpressionStatement", "src": "10628:68:10" }, { "expression": { - "id": 2404, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -14131,24 +14131,24 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2398, + "id": 2395, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, + "referencedDeclaration": 1911, "src": "10707:11:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2401, + "id": 2398, "indexExpression": { - "id": 2399, + "id": 2396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10719:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14166,13 +14166,13 @@ "typeString": "mapping(address => uint256)" } }, - "id": 2402, + "id": 2399, "indexExpression": { - "id": 2400, + "id": 2397, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10726:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14193,11 +14193,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2403, + "id": 2400, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10737:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14210,7 +14210,7 @@ "typeString": "uint256" } }, - "id": 2405, + "id": 2402, "nodeType": "ExpressionStatement", "src": "10707:36:10" }, @@ -14218,11 +14218,11 @@ "eventCall": { "arguments": [ { - "id": 2407, + "id": 2404, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2371, + "referencedDeclaration": 2368, "src": "10767:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14230,11 +14230,11 @@ } }, { - "id": 2408, + "id": 2405, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2370, "src": "10774:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14242,11 +14242,11 @@ } }, { - "id": 2409, + "id": 2406, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, + "referencedDeclaration": 2372, "src": "10783:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14269,18 +14269,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2403, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, + "referencedDeclaration": 2497, "src": "10758:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2410, + "id": 2407, "isConstant": false, "isLValue": false, "isPure": false, @@ -14296,19 +14296,19 @@ "typeString": "tuple()" } }, - "id": 2411, + "id": 2408, "nodeType": "EmitStatement", "src": "10753:37:10" } ] }, "documentation": { - "id": 2369, + "id": 2366, "nodeType": "StructuredDocumentation", "src": "10040:412:10", "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." }, - "id": 2413, + "id": 2410, "implemented": true, "kind": "function", "modifiers": [], @@ -14316,17 +14316,17 @@ "nameLocation": "10466:8:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2376, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2371, + "id": 2368, "mutability": "mutable", "name": "owner", "nameLocation": "10483:5:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10475:13:10", "stateVariable": false, "storageLocation": "default", @@ -14335,7 +14335,7 @@ "typeString": "address" }, "typeName": { - "id": 2370, + "id": 2367, "name": "address", "nodeType": "ElementaryTypeName", "src": "10475:7:10", @@ -14349,12 +14349,12 @@ }, { "constant": false, - "id": 2373, + "id": 2370, "mutability": "mutable", "name": "spender", "nameLocation": "10498:7:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10490:15:10", "stateVariable": false, "storageLocation": "default", @@ -14363,7 +14363,7 @@ "typeString": "address" }, "typeName": { - "id": 2372, + "id": 2369, "name": "address", "nodeType": "ElementaryTypeName", "src": "10490:7:10", @@ -14377,12 +14377,12 @@ }, { "constant": false, - "id": 2375, + "id": 2372, "mutability": "mutable", "name": "amount", "nameLocation": "10515:6:10", "nodeType": "VariableDeclaration", - "scope": 2413, + "scope": 2410, "src": "10507:14:10", "stateVariable": false, "storageLocation": "default", @@ -14391,7 +14391,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2374, + "id": 2371, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10507:7:10", @@ -14406,12 +14406,12 @@ "src": "10474:48:10" }, "returnParameters": { - "id": 2377, + "id": 2374, "nodeType": "ParameterList", "parameters": [], "src": "10540:0:10" }, - "scope": 2479, + "scope": 2476, "src": "10457:340:10", "stateMutability": "nonpayable", "virtual": true, @@ -14419,23 +14419,23 @@ }, { "body": { - "id": 2455, + "id": 2452, "nodeType": "Block", "src": "11168:321:10", "statements": [ { "assignments": [ - 2424 + 2421 ], "declarations": [ { "constant": false, - "id": 2424, + "id": 2421, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "11186:16:10", "nodeType": "VariableDeclaration", - "scope": 2455, + "scope": 2452, "src": "11178:24:10", "stateVariable": false, "storageLocation": "default", @@ -14444,7 +14444,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2423, + "id": 2420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11178:7:10", @@ -14456,15 +14456,15 @@ "visibility": "internal" } ], - "id": 2429, + "id": 2426, "initialValue": { "arguments": [ { - "id": 2426, + "id": 2423, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11215:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14472,11 +14472,11 @@ } }, { - "id": 2427, + "id": 2424, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11222:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14495,18 +14495,18 @@ "typeString": "address" } ], - "id": 2425, + "id": 2422, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2031, "src": "11205:9:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, - "id": 2428, + "id": 2425, "isConstant": false, "isLValue": false, "isPure": false, @@ -14531,17 +14531,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2430, + "id": 2427, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11244:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14554,7 +14554,7 @@ "expression": { "arguments": [ { - "id": 2433, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, @@ -14566,7 +14566,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 2432, + "id": 2429, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11269:7:10", @@ -14581,7 +14581,7 @@ "typeString": "type(uint256)" } ], - "id": 2431, + "id": 2428, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -14592,7 +14592,7 @@ "typeString": "function () pure" } }, - "id": 2434, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": true, @@ -14608,7 +14608,7 @@ "typeString": "type(uint256)" } }, - "id": 2435, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -14628,11 +14628,11 @@ "typeString": "bool" } }, - "id": 2454, + "id": 2451, "nodeType": "IfStatement", "src": "11240:243:10", "trueBody": { - "id": 2453, + "id": 2450, "nodeType": "Block", "src": "11283:200:10", "statements": [ @@ -14644,17 +14644,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2440, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2438, + "id": 2435, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11305:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14664,11 +14664,11 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 2439, + "id": 2436, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11325:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14683,7 +14683,7 @@ }, { "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", - "id": 2441, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, @@ -14709,7 +14709,7 @@ "typeString": "literal_string \"ERC20: insufficient allowance\"" } ], - "id": 2437, + "id": 2434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14723,7 +14723,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2442, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -14739,12 +14739,12 @@ "typeString": "tuple()" } }, - "id": 2443, + "id": 2440, "nodeType": "ExpressionStatement", "src": "11297:68:10" }, { - "id": 2452, + "id": 2449, "nodeType": "UncheckedBlock", "src": "11379:94:10", "statements": [ @@ -14752,11 +14752,11 @@ "expression": { "arguments": [ { - "id": 2445, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, + "referencedDeclaration": 2413, "src": "11416:5:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14764,11 +14764,11 @@ } }, { - "id": 2446, + "id": 2443, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, + "referencedDeclaration": 2415, "src": "11423:7:10", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14780,17 +14780,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2449, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2447, + "id": 2444, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2424, + "referencedDeclaration": 2421, "src": "11432:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14800,11 +14800,11 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2448, + "id": 2445, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2420, + "referencedDeclaration": 2417, "src": "11451:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14833,18 +14833,18 @@ "typeString": "uint256" } ], - "id": 2444, + "id": 2441, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, + "referencedDeclaration": 2410, "src": "11407:8:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2450, + "id": 2447, "isConstant": false, "isLValue": false, "isPure": false, @@ -14860,7 +14860,7 @@ "typeString": "tuple()" } }, - "id": 2451, + "id": 2448, "nodeType": "ExpressionStatement", "src": "11407:51:10" } @@ -14872,12 +14872,12 @@ ] }, "documentation": { - "id": 2414, + "id": 2411, "nodeType": "StructuredDocumentation", "src": "10803:270:10", "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." }, - "id": 2456, + "id": 2453, "implemented": true, "kind": "function", "modifiers": [], @@ -14885,17 +14885,17 @@ "nameLocation": "11087:15:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2421, + "id": 2418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2416, + "id": 2413, "mutability": "mutable", "name": "owner", "nameLocation": "11111:5:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11103:13:10", "stateVariable": false, "storageLocation": "default", @@ -14904,7 +14904,7 @@ "typeString": "address" }, "typeName": { - "id": 2415, + "id": 2412, "name": "address", "nodeType": "ElementaryTypeName", "src": "11103:7:10", @@ -14918,12 +14918,12 @@ }, { "constant": false, - "id": 2418, + "id": 2415, "mutability": "mutable", "name": "spender", "nameLocation": "11126:7:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11118:15:10", "stateVariable": false, "storageLocation": "default", @@ -14932,7 +14932,7 @@ "typeString": "address" }, "typeName": { - "id": 2417, + "id": 2414, "name": "address", "nodeType": "ElementaryTypeName", "src": "11118:7:10", @@ -14946,12 +14946,12 @@ }, { "constant": false, - "id": 2420, + "id": 2417, "mutability": "mutable", "name": "amount", "nameLocation": "11143:6:10", "nodeType": "VariableDeclaration", - "scope": 2456, + "scope": 2453, "src": "11135:14:10", "stateVariable": false, "storageLocation": "default", @@ -14960,7 +14960,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2419, + "id": 2416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11135:7:10", @@ -14975,12 +14975,12 @@ "src": "11102:48:10" }, "returnParameters": { - "id": 2422, + "id": 2419, "nodeType": "ParameterList", "parameters": [], "src": "11168:0:10" }, - "scope": 2479, + "scope": 2476, "src": "11078:411:10", "stateMutability": "nonpayable", "virtual": true, @@ -14988,18 +14988,18 @@ }, { "body": { - "id": 2466, + "id": 2463, "nodeType": "Block", "src": "12162:2:10", "statements": [] }, "documentation": { - "id": 2457, + "id": 2454, "nodeType": "StructuredDocumentation", "src": "11495:573:10", "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2467, + "id": 2464, "implemented": true, "kind": "function", "modifiers": [], @@ -15007,17 +15007,17 @@ "nameLocation": "12082:20:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2464, + "id": 2461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2459, + "id": 2456, "mutability": "mutable", "name": "from", "nameLocation": "12111:4:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12103:12:10", "stateVariable": false, "storageLocation": "default", @@ -15026,7 +15026,7 @@ "typeString": "address" }, "typeName": { - "id": 2458, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", "src": "12103:7:10", @@ -15040,12 +15040,12 @@ }, { "constant": false, - "id": 2461, + "id": 2458, "mutability": "mutable", "name": "to", "nameLocation": "12125:2:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12117:10:10", "stateVariable": false, "storageLocation": "default", @@ -15054,7 +15054,7 @@ "typeString": "address" }, "typeName": { - "id": 2460, + "id": 2457, "name": "address", "nodeType": "ElementaryTypeName", "src": "12117:7:10", @@ -15068,12 +15068,12 @@ }, { "constant": false, - "id": 2463, + "id": 2460, "mutability": "mutable", "name": "amount", "nameLocation": "12137:6:10", "nodeType": "VariableDeclaration", - "scope": 2467, + "scope": 2464, "src": "12129:14:10", "stateVariable": false, "storageLocation": "default", @@ -15082,7 +15082,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2462, + "id": 2459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12129:7:10", @@ -15097,12 +15097,12 @@ "src": "12102:42:10" }, "returnParameters": { - "id": 2465, + "id": 2462, "nodeType": "ParameterList", "parameters": [], "src": "12162:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12073:91:10", "stateMutability": "nonpayable", "virtual": true, @@ -15110,18 +15110,18 @@ }, { "body": { - "id": 2477, + "id": 2474, "nodeType": "Block", "src": "12840:2:10", "statements": [] }, "documentation": { - "id": 2468, + "id": 2465, "nodeType": "StructuredDocumentation", "src": "12170:577:10", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2478, + "id": 2475, "implemented": true, "kind": "function", "modifiers": [], @@ -15129,17 +15129,17 @@ "nameLocation": "12761:19:10", "nodeType": "FunctionDefinition", "parameters": { - "id": 2475, + "id": 2472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2470, + "id": 2467, "mutability": "mutable", "name": "from", "nameLocation": "12789:4:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12781:12:10", "stateVariable": false, "storageLocation": "default", @@ -15148,7 +15148,7 @@ "typeString": "address" }, "typeName": { - "id": 2469, + "id": 2466, "name": "address", "nodeType": "ElementaryTypeName", "src": "12781:7:10", @@ -15162,12 +15162,12 @@ }, { "constant": false, - "id": 2472, + "id": 2469, "mutability": "mutable", "name": "to", "nameLocation": "12803:2:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12795:10:10", "stateVariable": false, "storageLocation": "default", @@ -15176,7 +15176,7 @@ "typeString": "address" }, "typeName": { - "id": 2471, + "id": 2468, "name": "address", "nodeType": "ElementaryTypeName", "src": "12795:7:10", @@ -15190,12 +15190,12 @@ }, { "constant": false, - "id": 2474, + "id": 2471, "mutability": "mutable", "name": "amount", "nameLocation": "12815:6:10", "nodeType": "VariableDeclaration", - "scope": 2478, + "scope": 2475, "src": "12807:14:10", "stateVariable": false, "storageLocation": "default", @@ -15204,7 +15204,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2473, + "id": 2470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12807:7:10", @@ -15219,19 +15219,19 @@ "src": "12780:42:10" }, "returnParameters": { - "id": 2476, + "id": 2473, "nodeType": "ParameterList", "parameters": [], "src": "12840:0:10" }, - "scope": 2479, + "scope": 2476, "src": "12752:90:10", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2480, + "scope": 2477, "src": "1532:11312:10", "usedErrors": [] } @@ -15244,5 +15244,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.579Z" + "updatedAt": "2024-06-27T12:24:25.269Z" } \ No newline at end of file diff --git a/build/contracts/Gateway.json b/build/contracts/Gateway.json index 6524ab8..078fa58 100644 --- a/build/contracts/Gateway.json +++ b/build/contracts/Gateway.json @@ -628,38 +628,38 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61389f80620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b610159600480360381019061015491906125bc565b610352565b005b6101756004803603810190610170919061263c565b61061a565b005b61017f610685565b60405161018c9190612684565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126d5565b6106b0565b6040516101c69190612684565b60405180910390f35b6101e960048036038101906101e49190612715565b610b45565b6040516101f69190612684565b60405180910390f35b61021960048036038101906102149190612742565b610ba1565b604051610226919061288f565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061293c565b610e46565b6040516102609190612a0d565b60405180910390f35b6102716113b1565b005b61027b611501565b005b610285611513565b6040516102929190612a37565b60405180910390f35b6102a361153d565b6040516102b1929190612a70565b60405180910390f35b6102d460048036038101906102cf9190612a99565b611562565b005b6102de6116e7565b6040516102eb9190612a37565b60405180910390f35b61030e60048036038101906103099190612aec565b611711565b60405161031b9190612684565b60405180910390f35b61033e60048036038101906103399190612715565b611d5d565b005b610348611e0a565b610350611e88565b565b61035a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612bb0565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c42565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cd4565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611e0a565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cf4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611e0a565b6106ae6000611eeb565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d5b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612dc7565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e33565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e9f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ebf565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612f14565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f70565b6109f49190612fa4565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f70565b6040518363ffffffff1660e01b8152600401610abe929190612ebf565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612f14565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fd8565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612435565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611f1c565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613065565b60405180910390fd5b610e4381611eeb565b50565b6000610e50611f24565b610e5d8989868989611f6e565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130d1565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f70565b6040518463ffffffff1660e01b8152600401610eeb939291906130f1565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612f14565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613128565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ebf565b6040516020818303038152906040528051906020012090506000609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff166097546110209190612f70565b609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a61104c9190613170565b61105691906131e1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff168152602001828b61111e9190612fa4565b81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161139c95949392919061329a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113e25750600160008054906101000a900460ff1660ff16105b8061140f57506113f130612121565b15801561140e5750600160008054906101000a900460ff1660ff16145b5b61144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061335a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561148b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061149d612144565b6114a561219d565b80156114fe5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114f591906133c2565b60405180910390a15b50565b611509611e0a565b6115116121f6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61156a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612bb0565b60405180910390fd5b60018114806115e85750600281145b611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613429565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116e25780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116d99190612fd8565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612d5b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612dc7565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561186b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186290612e33565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118ed9190613449565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611c1557600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b3e5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a69929190612ebf565b6020604051808303816000875af1158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac9190612f14565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b600060ff60008781526020019081526020016000206004015414611c14578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600401546040518363ffffffff1660e01b8152600401611bcf929190612ebf565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190612f14565b505b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611c469190613170565b611c5091906131e1565b90508060ff60008881526020019081526020016000206007016000828254611c789190612fa4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cba929190612ebf565b6020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612f14565b508473ffffffffffffffffffffffffffffffffffffffff16867f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8987604051611d479291906134ba565b60405180910390a3600192505050949350505050565b611d65611e0a565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611dc5611513565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611e12611f1c565b73ffffffffffffffffffffffffffffffffffffffff16611e30611513565b73ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061352f565b60405180910390fd5b565b611e90612259565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed4611f1c565b604051611ee19190612a37565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611f19816122a2565b50565b600033905090565b611f2c610685565b15611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f639061359b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613607565b60405180910390fd5b60008403612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906136df565b60405180910390fd5b6000811461211a57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121109061374b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218a906137dd565b60405180910390fd5b61219b612368565b565b600060019054906101000a900460ff166121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e3906137dd565b60405180910390fd5b6121f46123c9565b565b6121fe611f24565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612242611f1c565b60405161224f9190612a37565b60405180910390a1565b612261610685565b6122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790613849565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff166123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae906137dd565b60405180910390fd5b6123c76123c2611f1c565b611eeb565b565b600060019054906101000a900460ff16612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906137dd565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61255c81612532565b811461256757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125958261256a565b9050919050565b6000813590506125ab81612553565b6125b48161258a565b905092915050565b600080604083850312156125d3576125d26124f2565b5b60006125e18582860161251d565b92505060206125f28582860161259c565b9150509250929050565b600067ffffffffffffffff82169050919050565b612619816125fc565b811461262457600080fd5b50565b60008135905061263681612610565b92915050565b600060208284031215612652576126516124f2565b5b600061266084828501612627565b91505092915050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6000819050919050565b6126b28161269f565b81146126bd57600080fd5b50565b6000813590506126cf816126a9565b92915050565b600080604083850312156126ec576126eb6124f2565b5b60006126fa858286016126c0565b925050602061270b8582860161251d565b9150509250929050565b60006020828403121561272b5761272a6124f2565b5b60006127398482850161259c565b91505092915050565b600060208284031215612758576127576124f2565b5b60006127668482850161251d565b91505092915050565b6127788161258a565b82525050565b6127878161269f565b82525050565b61279681612669565b82525050565b60006bffffffffffffffffffffffff82169050919050565b6127bd8161279c565b82525050565b610140820160008201516127da600085018261276f565b5060208201516127ed602085018261276f565b506040820151612800604085018261276f565b506060820151612813606085018261277e565b506080820151612826608085018261277e565b5060a082015161283960a085018261278d565b5060c082015161284c60c085018261278d565b5060e082015161285f60e085018261276f565b506101008201516128746101008501826127b4565b5061012082015161288961012085018261277e565b50505050565b6000610140820190506128a560008301846127c3565b92915050565b6128b48161279c565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128fc576128fb6128d7565b5b8235905067ffffffffffffffff811115612919576129186128dc565b5b602083019150836001820283011115612935576129346128e1565b5b9250929050565b60008060008060008060008060e0898b03121561295c5761295b6124f2565b5b600061296a8b828c0161259c565b985050602061297b8b828c016126c0565b975050604061298c8b828c016128c2565b965050606061299d8b828c0161259c565b95505060806129ae8b828c016126c0565b94505060a06129bf8b828c0161259c565b93505060c089013567ffffffffffffffff8111156129e0576129df6124f7565b5b6129ec8b828c016128e6565b92509250509295985092959890939650565b612a07816124fc565b82525050565b6000602082019050612a2260008301846129fe565b92915050565b612a318161258a565b82525050565b6000602082019050612a4c6000830184612a28565b92915050565b612a5b816125fc565b82525050565b612a6a8161269f565b82525050565b6000604082019050612a856000830185612a52565b612a926020830184612a61565b9392505050565b600080600060608486031215612ab257612ab16124f2565b5b6000612ac08682870161251d565b9350506020612ad18682870161259c565b9250506040612ae2868287016126c0565b9150509250925092565b60008060008060808587031215612b0657612b056124f2565b5b6000612b148782880161251d565b9450506020612b258782880161251d565b9350506040612b368782880161259c565b9250506060612b4787828801612627565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b9a601583612b53565b9150612ba582612b64565b602082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602583612b53565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612cbe602783612b53565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b6000602082019050612d096000830184612a52565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d45600e83612b53565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612db1600e83612b53565b9150612dbc82612d7b565b602082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612e1d600d83612b53565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e89601583612b53565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000604082019050612ed46000830185612a28565b612ee16020830184612a61565b9392505050565b612ef181612669565b8114612efc57600080fd5b50565b600081519050612f0e81612ee8565b92915050565b600060208284031215612f2a57612f296124f2565b5b6000612f3884828501612eff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f7b8261269f565b9150612f868361269f565b9250828201905080821115612f9e57612f9d612f41565b5b92915050565b6000612faf8261269f565b9150612fba8361269f565b9250828203905081811115612fd257612fd1612f41565b5b92915050565b6000602082019050612fed6000830184612a61565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061304f602983612b53565b915061305a82612ff3565b604082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b60006130bb601283612b53565b91506130c682613085565b602082019050919050565b600060208201905081810360008301526130ea816130ae565b9050919050565b60006060820190506131066000830186612a28565b6131136020830185612a28565b6131206040830184612a61565b949350505050565b60006131338261269f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361316557613164612f41565b5b600182019050919050565b600061317b8261269f565b91506131868361269f565b92508282026131948161269f565b915082820484148315176131ab576131aa612f41565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ec8261269f565b91506131f78361269f565b925082613207576132066131b2565b5b828204905092915050565b6000819050919050565b600061323761323261322d8461279c565b613212565b61269f565b9050919050565b6132478161321c565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132798385612b53565b935061328683858461324d565b61328f8361325c565b840190509392505050565b60006080820190506132af6000830188612a61565b6132bc60208301876129fe565b6132c9604083018661323e565b81810360608301526132dc81848661326d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613344602e83612b53565b915061334f826132e8565b604082019050919050565b6000602082019050818103600083015261337381613337565b9050919050565b6000819050919050565b600060ff82169050919050565b60006133ac6133a76133a28461337a565b613212565b613384565b9050919050565b6133bc81613391565b82525050565b60006020820190506133d760008301846133b3565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000613413601783612b53565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b60006134548261279c565b915061345f8361279c565b925082820390506bffffffffffffffffffffffff81111561348357613482612f41565b5b92915050565b60006134a461349f61349a846125fc565b613212565b61279c565b9050919050565b6134b481613489565b82525050565b60006040820190506134cf60008301856129fe565b6134dc60208301846134ab565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613519602083612b53565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613585601083612b53565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135f1601183612b53565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061365d600c83612b53565b915061366882613627565b602082019050919050565b6000602082019050818103600083015261368c81613650565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136c9601083612b53565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613735601983612b53565b9150613740826136ff565b602082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137c7602b83612b53565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613833601483612b53565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b905091905056fea26474726f6e58221220a0b5d1d23c5807c0b800878d8b512f00901dabc450a8ba5180118337893af2a464736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b610159600480360381019061015491906125bc565b610352565b005b6101756004803603810190610170919061263c565b61061a565b005b61017f610685565b60405161018c9190612684565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126d5565b6106b0565b6040516101c69190612684565b60405180910390f35b6101e960048036038101906101e49190612715565b610b45565b6040516101f69190612684565b60405180910390f35b61021960048036038101906102149190612742565b610ba1565b604051610226919061288f565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061293c565b610e46565b6040516102609190612a0d565b60405180910390f35b6102716113b1565b005b61027b611501565b005b610285611513565b6040516102929190612a37565b60405180910390f35b6102a361153d565b6040516102b1929190612a70565b60405180910390f35b6102d460048036038101906102cf9190612a99565b611562565b005b6102de6116e7565b6040516102eb9190612a37565b60405180910390f35b61030e60048036038101906103099190612aec565b611711565b60405161031b9190612684565b60405180910390f35b61033e60048036038101906103399190612715565b611d5d565b005b610348611e0a565b610350611e88565b565b61035a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612bb0565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c42565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cd4565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611e0a565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cf4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611e0a565b6106ae6000611eeb565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d5b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612dc7565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e33565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e9f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ebf565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612f14565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f70565b6109f49190612fa4565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f70565b6040518363ffffffff1660e01b8152600401610abe929190612ebf565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612f14565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fd8565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612435565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611f1c565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613065565b60405180910390fd5b610e4381611eeb565b50565b6000610e50611f24565b610e5d8989868989611f6e565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130d1565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f70565b6040518463ffffffff1660e01b8152600401610eeb939291906130f1565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612f14565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613128565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ebf565b6040516020818303038152906040528051906020012090506000609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff166097546110209190612f70565b609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a61104c9190613170565b61105691906131e1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff168152602001828b61111e9190612fa4565b81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161139c95949392919061329a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113e25750600160008054906101000a900460ff1660ff16105b8061140f57506113f130612121565b15801561140e5750600160008054906101000a900460ff1660ff16145b5b61144e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114459061335a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561148b576001600060016101000a81548160ff0219169083151502179055505b620186a060978190555061149d612144565b6114a561219d565b80156114fe5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114f591906133c2565b60405180910390a15b50565b611509611e0a565b6115116121f6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b61156a611e0a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612bb0565b60405180910390fd5b60018114806115e85750600281145b611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613429565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116e25780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116d99190612fd8565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612d5b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff1615611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612dc7565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff161561186b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186290612e33565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118ed9190613449565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611c1557600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b3e5760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a69929190612ebf565b6020604051808303816000875af1158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac9190612f14565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b600060ff60008781526020019081526020016000206004015414611c14578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600401546040518363ffffffff1660e01b8152600401611bcf929190612ebf565b6020604051808303816000875af1158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c129190612f14565b505b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611c469190613170565b611c5091906131e1565b90508060ff60008881526020019081526020016000206007016000828254611c789190612fa4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cba929190612ebf565b6020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612f14565b508473ffffffffffffffffffffffffffffffffffffffff16867f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8987604051611d479291906134ba565b60405180910390a3600192505050949350505050565b611d65611e0a565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611dc5611513565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611e12611f1c565b73ffffffffffffffffffffffffffffffffffffffff16611e30611513565b73ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061352f565b60405180910390fd5b565b611e90612259565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed4611f1c565b604051611ee19190612a37565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611f19816122a2565b50565b600033905090565b611f2c610685565b15611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f639061359b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613607565b60405180910390fd5b60008403612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906136df565b60405180910390fd5b6000811461211a57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121109061374b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218a906137dd565b60405180910390fd5b61219b612368565b565b600060019054906101000a900460ff166121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e3906137dd565b60405180910390fd5b6121f46123c9565b565b6121fe611f24565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612242611f1c565b60405161224f9190612a37565b60405180910390a1565b612261610685565b6122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790613849565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff166123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae906137dd565b60405180910390fd5b6123c76123c2611f1c565b611eeb565b565b600060019054906101000a900460ff16612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906137dd565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61255c81612532565b811461256757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125958261256a565b9050919050565b6000813590506125ab81612553565b6125b48161258a565b905092915050565b600080604083850312156125d3576125d26124f2565b5b60006125e18582860161251d565b92505060206125f28582860161259c565b9150509250929050565b600067ffffffffffffffff82169050919050565b612619816125fc565b811461262457600080fd5b50565b60008135905061263681612610565b92915050565b600060208284031215612652576126516124f2565b5b600061266084828501612627565b91505092915050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6000819050919050565b6126b28161269f565b81146126bd57600080fd5b50565b6000813590506126cf816126a9565b92915050565b600080604083850312156126ec576126eb6124f2565b5b60006126fa858286016126c0565b925050602061270b8582860161251d565b9150509250929050565b60006020828403121561272b5761272a6124f2565b5b60006127398482850161259c565b91505092915050565b600060208284031215612758576127576124f2565b5b60006127668482850161251d565b91505092915050565b6127788161258a565b82525050565b6127878161269f565b82525050565b61279681612669565b82525050565b60006bffffffffffffffffffffffff82169050919050565b6127bd8161279c565b82525050565b610140820160008201516127da600085018261276f565b5060208201516127ed602085018261276f565b506040820151612800604085018261276f565b506060820151612813606085018261277e565b506080820151612826608085018261277e565b5060a082015161283960a085018261278d565b5060c082015161284c60c085018261278d565b5060e082015161285f60e085018261276f565b506101008201516128746101008501826127b4565b5061012082015161288961012085018261277e565b50505050565b6000610140820190506128a560008301846127c3565b92915050565b6128b48161279c565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128fc576128fb6128d7565b5b8235905067ffffffffffffffff811115612919576129186128dc565b5b602083019150836001820283011115612935576129346128e1565b5b9250929050565b60008060008060008060008060e0898b03121561295c5761295b6124f2565b5b600061296a8b828c0161259c565b985050602061297b8b828c016126c0565b975050604061298c8b828c016128c2565b965050606061299d8b828c0161259c565b95505060806129ae8b828c016126c0565b94505060a06129bf8b828c0161259c565b93505060c089013567ffffffffffffffff8111156129e0576129df6124f7565b5b6129ec8b828c016128e6565b92509250509295985092959890939650565b612a07816124fc565b82525050565b6000602082019050612a2260008301846129fe565b92915050565b612a318161258a565b82525050565b6000602082019050612a4c6000830184612a28565b92915050565b612a5b816125fc565b82525050565b612a6a8161269f565b82525050565b6000604082019050612a856000830185612a52565b612a926020830184612a61565b9392505050565b600080600060608486031215612ab257612ab16124f2565b5b6000612ac08682870161251d565b9350506020612ad18682870161259c565b9250506040612ae2868287016126c0565b9150509250925092565b60008060008060808587031215612b0657612b056124f2565b5b6000612b148782880161251d565b9450506020612b258782880161251d565b9350506040612b368782880161259c565b9250506060612b4787828801612627565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b9a601583612b53565b9150612ba582612b64565b602082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602583612b53565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612cbe602783612b53565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b6000602082019050612d096000830184612a52565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d45600e83612b53565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612db1600e83612b53565b9150612dbc82612d7b565b602082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612e1d600d83612b53565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e89601583612b53565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000604082019050612ed46000830185612a28565b612ee16020830184612a61565b9392505050565b612ef181612669565b8114612efc57600080fd5b50565b600081519050612f0e81612ee8565b92915050565b600060208284031215612f2a57612f296124f2565b5b6000612f3884828501612eff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f7b8261269f565b9150612f868361269f565b9250828201905080821115612f9e57612f9d612f41565b5b92915050565b6000612faf8261269f565b9150612fba8361269f565b9250828203905081811115612fd257612fd1612f41565b5b92915050565b6000602082019050612fed6000830184612a61565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061304f602983612b53565b915061305a82612ff3565b604082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b60006130bb601283612b53565b91506130c682613085565b602082019050919050565b600060208201905081810360008301526130ea816130ae565b9050919050565b60006060820190506131066000830186612a28565b6131136020830185612a28565b6131206040830184612a61565b949350505050565b60006131338261269f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361316557613164612f41565b5b600182019050919050565b600061317b8261269f565b91506131868361269f565b92508282026131948161269f565b915082820484148315176131ab576131aa612f41565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ec8261269f565b91506131f78361269f565b925082613207576132066131b2565b5b828204905092915050565b6000819050919050565b600061323761323261322d8461279c565b613212565b61269f565b9050919050565b6132478161321c565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132798385612b53565b935061328683858461324d565b61328f8361325c565b840190509392505050565b60006080820190506132af6000830188612a61565b6132bc60208301876129fe565b6132c9604083018661323e565b81810360608301526132dc81848661326d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613344602e83612b53565b915061334f826132e8565b604082019050919050565b6000602082019050818103600083015261337381613337565b9050919050565b6000819050919050565b600060ff82169050919050565b60006133ac6133a76133a28461337a565b613212565b613384565b9050919050565b6133bc81613391565b82525050565b60006020820190506133d760008301846133b3565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000613413601783612b53565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b60006134548261279c565b915061345f8361279c565b925082820390506bffffffffffffffffffffffff81111561348357613482612f41565b5b92915050565b60006134a461349f61349a846125fc565b613212565b61279c565b9050919050565b6134b481613489565b82525050565b60006040820190506134cf60008301856129fe565b6134dc60208301846134ab565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613519602083612b53565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613585601083612b53565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135f1601183612b53565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061365d600c83612b53565b915061366882613627565b602082019050919050565b6000602082019050818103600083015261368c81613650565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136c9601083612b53565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613735601983612b53565b9150613740826136ff565b602082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137c7602b83612b53565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613833601483612b53565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b905091905056fea26474726f6e58221220a0b5d1d23c5807c0b800878d8b512f00901dabc450a8ba5180118337893af2a464736f6c63430008120033", - "sourceMap": "390:6893:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6893;;5939:280:6;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:14:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6893:0:-;;;;;;;", - "deployedSourceMap": "390:6893:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:5;;;:::i;:::-;;5669:926:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6984:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6828:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:4;;;:::i;:::-;;1709:1369:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7172:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4135:1495:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:5;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:7:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5669:926:0:-;5750:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5820:5:::1;:15;5826:8;5820:15;;;;;;;;;;;:27;;;;;;;;;;;;5819:28;5811:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5879:5;:15;5885:8;5879:15;;;;;;;;;;;:26;;;;;;;;;;;;5878:27;5870:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5966:4;5935:5;:15;5941:8;5935:15;;;;;;;;;;;:27;;;:35;;5927:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6049:5;:15;6055:8;6049:15;;;;;;;;;;;:21;;;;;;;;;;;;6042:38;;;6081:15;;;;;;;;;;;6098:4;6042:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6161:4;6132:5;:15;6138:8;6132:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6198:1;6169:5;:15;6175:8;6169:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6238:20;6316:4;6286:5;:15;6292:8;6286:15;;;;;;;;;;;:27;;;6261:5;:15;6267:8;6261:15;;;;;;;;;;;:22;;;:52;;;;:::i;:::-;:59;;;;:::i;:::-;6238:82;;6397:5;:15;6403:8;6397:15;;;;;;;;;;;:21;;;;;;;;;;;;6390:38;;;6433:5;:15;6439:8;6433:15;;;;;;;;;;;:29;;;;;;;;;;;;6482:5;:15;6488:8;6482:15;;;;;;;;;;;:25;;;6467:12;:40;;;;:::i;:::-;6390:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6566:8;6546:29;6560:4;6546:29;;;;;;:::i;:::-;;;;;;;;6587:4;6580:11;;;5669:926:::0;;;;:::o;6984:142::-;7049:4;7092:1;7063:17;:25;7081:6;7063:25;;;;;;;;;;;;;;;;:30;7059:47;;7102:4;7095:11;;;;7059:47;7117:5;7110:12;;6984:142;;;;:::o;6828:107::-;6891:12;;:::i;:::-;6916:5;:15;6922:8;6916:15;;;;;;;;;;;6909:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:107;;;:::o;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1369:0:-;1928:15;1503:19:7;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2562:18;;;;;;;;;;;2552:28;;:7;;:28;;;;:::i;:::-;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:63;;;;:::i;:::-;2495:86;;2602:298;;;;;;;;2621:10;2602:298;;;;;;2643:6;2602:298;;;;;;2674:19;2602:298;;;;;;2709:10;2602:298;;;;2737:12;2602:298;;;;2767:5;2602:298;;;;;;2789:5;2602:298;;;;;;2814:14;2602:298;;;;;;2852:7;;2602:298;;;;;;;;2883:12;2873:7;:22;;;;:::i;:::-;2602:298;;::::0;2585:5:::1;:14;2591:7;2585:14;;;;;;;;;;;:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2994:5;:14;3000:7;2994:14;;;;;;;;;;;:21;;;2983:6;2940:134;;2957:5;:14;2963:7;2957:14;;;;;;;;;;;:21;;;;;;;;;;;;2940:134;;;3020:12;3037:7;3049:5;3059:11;;2940:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1133;1709:1369:::0;;;;;;;;;;:::o;795:114::-;3279:19:6;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:5;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7172:109:0:-;7220:6;7228:7;7249:18;;;;;;;;;;;7269:7;;7241:36;;;;7172:109;;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4135:1495:0:-;4287:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4357:5:::1;:15;4363:8;4357:15;;;;;;;;;;;:27;;;;;;;;;;;;4356:28;4348:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4416:5;:15;4422:8;4416:15;;;;;;;;;;;:26;;;;;;;;;;;;4415:27;4407:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4497:13;4513:5;:15;4519:8;4513:15;;;;;;;;;;;:21;;;;;;;;;;;;4497:37;;4631:14;4601:44;;:5;:15;4607:8;4601:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4684:1;4654:5;:15;4660:8;4654:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4650:604:::1;;4767:4;4737:5;:15;4743:8;4737:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4810:1;4781:5;:15;4787:8;4781:15;;;;;;;;;;;:25;;;:30;4777:321;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:21;;;;;;;;;;;;4846:38;;;4891:5;:15;4897:8;4891:15;;;;;;;;;;;:34;;;;;;;;;;;;4932:5;:15;4938:8;4932:15;;;;;;;;;;;:25;;;4846:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5061:5;:15;5067:8;5061:15;;;;;;;;;;;:25;;;5020:5;:15;5026:8;5020:15;;;;;;;;;;;:34;;;;;;;;;;;;4993:99;;;;;;;;;;;;4777:321;5138:1;5107:5;:15;5113:8;5107:15;;;;;;;;;;;:27;;;:32;5103:147;;5183:5;5176:22;;;5199:15;;;;;;;;;;;5216:5;:15;5222:8;5216:15;;;;;;;;;;;:27;;;5176:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5103:147;4650:604;5294:31;5372:7;;5354:14;5329:39;;:5;:15;5335:8;5329:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5328:51;;;;:::i;:::-;5294:85;;5409:23;5383:5;:15;5389:8;5383:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5443:5;5436:22;;;5459:18;5479:23;5436:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5575:18;5537:73;;5565:8;5537:73;5550:13;5595:14;5537:73;;;;;;;:::i;:::-;;;;;;;;5622:4;5615:11;;;;4135:1495:::0;;;;;;:::o;1436:178:4:-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:7:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2031:106:7:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3471:427:0:-;3663:1;3634:17;:25;3652:6;3634:25;;;;;;;;;;;;;;;;:30;3626:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3709:1;3698:7;:12;3690:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3765:1;3739:28;;:14;:28;;;3731:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3811:1;3797:10;:15;3793:102;;3858:1;3827:33;;:19;:33;;;3819:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3793:102;3471:427;;;;;:::o;1423:320:8:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:4:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:4::1;:24;:26::i;:::-;889:100::o:0;1084:97:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:7::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:5::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:7::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:14:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:191;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21253:1;21250;21246:9;21239:16;;21274:3;21271:1;21268:10;21265:36;;;21281:18;;:::i;:::-;21265:36;21117:191;;;;:::o;21314:194::-;21354:4;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21408:20;21426:1;21408:20;:::i;:::-;21403:25;;21452:1;21449;21445:9;21437:17;;21476:1;21470:4;21467:11;21464:37;;;21481:18;;:::i;:::-;21464:37;21314:194;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", - "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / (MAX_BPS + protocolFeePercent);\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount - _protocolFee\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (order[_orderId].protocolFee != 0) {\n\t\t\t\t// transfer protocol fee\n\t\t\t\tIERC20(token).transfer(treasuryAddress, order[_orderId].protocolFee);\n\t\t\t}\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61388080620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", + "sourceMap": "390:6914:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6914;;5939:280:6;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:14:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6914:0:-;;;;;;;", + "deployedSourceMap": "390:6914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:5;;;:::i;:::-;;5690:926:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7005:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6849:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:4;;;:::i;:::-;;1709:1331:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7193:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:1554:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:5;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:7:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5690:926:0:-;5771:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:5:::1;:15;5847:8;5841:15;;;;;;;;;;;:27;;;;;;;;;;;;5840:28;5832:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:5;:15;5906:8;5900:15;;;;;;;;;;;:26;;;;;;;;;;;;5899:27;5891:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5987:4;5956:5;:15;5962:8;5956:15;;;;;;;;;;;:27;;;:35;;5948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:5;:15;6076:8;6070:15;;;;;;;;;;;:21;;;;;;;;;;;;6063:38;;;6102:15;;;;;;;;;;;6119:4;6063:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6182:4;6153:5;:15;6159:8;6153:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6219:1;6190:5;:15;6196:8;6190:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6259:20;6337:4;6307:5;:15;6313:8;6307:15;;;;;;;;;;;:27;;;6282:5;:15;6288:8;6282:15;;;;;;;;;;;:22;;;:52;;;;:::i;:::-;:59;;;;:::i;:::-;6259:82;;6418:5;:15;6424:8;6418:15;;;;;;;;;;;:21;;;;;;;;;;;;6411:38;;;6454:5;:15;6460:8;6454:15;;;;;;;;;;;:29;;;;;;;;;;;;6503:5;:15;6509:8;6503:15;;;;;;;;;;;:25;;;6488:12;:40;;;;:::i;:::-;6411:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6587:8;6567:29;6581:4;6567:29;;;;;;:::i;:::-;;;;;;;;6608:4;6601:11;;;5690:926:::0;;;;:::o;7005:142::-;7070:4;7113:1;7084:17;:25;7102:6;7084:25;;;;;;;;;;;;;;;;:30;7080:47;;7123:4;7116:11;;;;7080:47;7138:5;7131:12;;7005:142;;;;:::o;6849:107::-;6912:12;;:::i;:::-;6937:5;:15;6943:8;6937:15;;;;;;;;;;;6930:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:107;;;:::o;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1331:0:-;1928:15;1503:19:7;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2551:7;;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:40;;;;:::i;:::-;2495:63;;2579:283;;;;;;;;2598:10;2579:283;;;;;;2620:6;2579:283;;;;;;2651:19;2579:283;;;;;;2686:10;2579:283;;;;2714:12;2579:283;;;;2744:5;2579:283;;;;;;2766:5;2579:283;;;;;;2791:14;2579:283;;;;;;2829:7;;2579:283;;;;;;;;2850:7;2579:283;;::::0;2562:5:::1;:14;2568:7;2562:14;;;;;;;;;;;:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;:14;2962:7;2956:14;;;;;;;;;;;:21;;;2945:6;2902:134;;2919:5;:14;2925:7;2919:14;;;;;;;;;;;:21;;;;;;;;;;;;2902:134;;;2982:12;2999:7;3011:5;3021:11;;2902:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1095;1709:1331:::0;;;;;;;;;;:::o;795:114::-;3279:19:6;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:5;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7193:109:0:-;7241:6;7249:7;7270:18;;;;;;;;;;;7290:7;;7262:36;;;;7193:109;;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4097:1554:0:-;4249:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:5:::1;:15;4325:8;4319:15;;;;;;;;;;;:27;;;;;;;;;;;;4318:28;4310:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:5;:15;4384:8;4378:15;;;;;;;;;;;:26;;;;;;;;;;;;4377:27;4369:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:13;4475:5;:15;4481:8;4475:15;;;;;;;;;;;:21;;;;;;;;;;;;4459:37;;4593:14;4563:44;;:5;:15;4569:8;4563:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4646:1;4616:5;:15;4622:8;4616:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4612:453:::1;;4729:4;4699:5;:15;4705:8;4699:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4772:1;4743:5;:15;4749:8;4743:15;;;;;;;;;;;:25;;;:30;4739:321;;4815:5;:15;4821:8;4815:15;;;;;;;;;;;:21;;;;;;;;;;;;4808:38;;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:34;;;;;;;;;;;;4894:5;:15;4900:8;4894:15;;;;;;;;;;;:25;;;4808:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5023:5;:15;5029:8;5023:15;;;;;;;;;;;:25;;;4982:5;:15;4988:8;4982:15;;;;;;;;;;;:34;;;;;;;;;;;;4955:99;;;;;;;;;;;;4739:321;4612:453;5105:31;5183:7;;5165:14;5140:39;;:5;:15;5146:8;5140:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5139:51;;;;:::i;:::-;5105:85;;5220:23;5194:5;:15;5200:8;5194:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5248:19;5319:7;;5297:18;;;;;;;;;;;5271:44;;:23;:44;;;;:::i;:::-;5270:56;;;;:::i;:::-;5248:78;;5357:11;5330:38;;;;;:::i;:::-;;;5407:5;5400:22;;;5423:15;;;;;;;;;;;5440:11;5400:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5464:5;5457:22;;;5480:18;5500:23;5457:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5596:18;5558:73;;5586:8;5558:73;5571:13;5616:14;5558:73;;;;;;;:::i;:::-;;;;;;;;5643:4;5636:11;;;;;4097:1554:::0;;;;;;:::o;1436:178:4:-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:7:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2031:106:7:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3433:427:0:-;3625:1;3596:17;:25;3614:6;3596:25;;;;;;;;;;;;;;;;:30;3588:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:1;3660:7;:12;3652:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:1;3701:28;;:14;:28;;;3693:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3773:1;3759:10;:15;3755:102;;3820:1;3789:33;;:19;:33;;;3781:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3755:102;3433:427;;;;;:::o;1423:320:8:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:4:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:4::1;:24;:26::i;:::-;889:100::o:0;1084:97:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:7::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:5::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:7::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:14:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:191;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21253:1;21250;21246:9;21239:16;;21274:3;21271:1;21268:10;21265:36;;;21281:18;;:::i;:::-;21265:36;21117:191;;;;:::o;21314:194::-;21354:4;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21408:20;21426:1;21408:20;:::i;:::-;21403:25;;21452:1;21449;21445:9;21437:17;;21476:1;21470:4;21467:11;21464:37;;;21481:18;;:::i;:::-;21464:37;21314:194;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\n\t\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\n\t\tliquidityProviderAmount -= protocolFee;\n\n\t\t// transfer protocol fee\n\t\tIERC20(token).transfer(treasuryAddress, protocolFee);\n\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Gateway": [ - 582 + 579 ], "GatewaySettingManager": [ - 766 + 763 ], "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 583, + "id": 580, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -680,20 +680,20 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 1512, + "scope": 580, + "sourceUnit": 1509, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "file": "./GatewaySettingManager.sol", "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 767, + "scope": 580, + "sourceUnit": 764, "src": "145:66:0", "symbolAliases": [ { @@ -702,7 +702,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "153:21:0", "typeDescriptions": {} }, @@ -712,13 +712,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "file": "./interfaces/IGateway.sol", "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 905, + "scope": 580, + "sourceUnit": 902, "src": "212:59:0", "symbolAliases": [ { @@ -727,7 +727,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "220:8:0", "typeDescriptions": {} }, @@ -739,7 +739,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "230:6:0", "typeDescriptions": {} }, @@ -759,7 +759,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "410:8:0" }, "id": 10, @@ -774,7 +774,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "420:21:0" }, "id": 12, @@ -789,7 +789,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1511, + "referencedDeclaration": 1508, "src": "443:19:0" }, "id": 14, @@ -807,16 +807,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 582, + "id": 579, "linearizedBaseContracts": [ - 582, - 1511, - 766, - 1081, - 1214, - 1892, - 1383, - 904 + 579, + 1508, + 763, + 1078, + 1211, + 1889, + 1380, + 901 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -884,7 +884,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 582, + "scope": 579, "src": "466:73:0", "visibility": "public" }, @@ -895,12 +895,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -920,7 +920,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -935,13 +935,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -955,7 +955,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -1005,7 +1005,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -1065,7 +1065,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1364, + "referencedDeclaration": 1361, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1119,7 +1119,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 582, + "scope": 579, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -1143,7 +1143,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, + "referencedDeclaration": 586, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1187,7 +1187,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, + "referencedDeclaration": 998, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1223,7 +1223,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1415, + "referencedDeclaration": 1412, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1273,7 +1273,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1285, + "referencedDeclaration": 1282, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -1295,7 +1295,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 582, + "scope": 579, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -1354,7 +1354,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1471,7 +1471,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, + "referencedDeclaration": 1486, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1521,7 +1521,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -1543,7 +1543,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 582, + "scope": 579, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -1564,7 +1564,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1505, + "referencedDeclaration": 1502, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1614,7 +1614,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -1636,7 +1636,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 582, + "scope": 579, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -1644,12 +1644,12 @@ }, { "baseFunctions": [ - 854 + 851 ], "body": { - "id": 217, + "id": 212, "nodeType": "Block", - "src": "1945:1133:0", + "src": "1945:1095:0", "statements": [ { "expression": { @@ -1742,7 +1742,7 @@ "name": "_handler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 274, + "referencedDeclaration": 269, "src": "1979:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -1980,7 +1980,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } } @@ -1988,7 +1988,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } ], @@ -2111,10 +2111,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, @@ -2130,7 +2130,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, @@ -2142,7 +2142,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2556, + "referencedDeclaration": 2553, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -2456,7 +2456,7 @@ "name": "_protocolFee", "nameLocation": "2503:12:0", "nodeType": "VariableDeclaration", - "scope": 217, + "scope": 212, "src": "2495:20:0", "stateVariable": false, "storageLocation": "default", @@ -2477,13 +2477,13 @@ "visibility": "internal" } ], - "id": 177, + "id": 174, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -2519,7 +2519,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -2549,100 +2549,54 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 172, - "name": "MAX_BPS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2552:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 173, - "name": "protocolFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2562:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2552:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 175, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2551:30:0", + "id": 172, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2518:63:0", + "src": "2518:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2495:86:0" + "src": "2495:63:0" }, { "expression": { - "id": 199, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 178, + "id": 175, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2585:5:0", + "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 180, + "id": 177, "indexExpression": { - "id": 179, + "id": 176, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2591:7:0", + "src": "2568:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2653,9 +2607,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2585:14:0", + "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -2665,74 +2619,74 @@ "arguments": [ { "expression": { - "id": 182, + "id": 179, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2621:3:0", + "src": "2598:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2625:6:0", + "memberLocation": "2602:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2621:10:0", + "src": "2598:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 184, + "id": 181, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2643:6:0", + "src": "2620:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 185, + "id": 182, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99, - "src": "2674:19:0", + "src": "2651:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 186, + "id": 183, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, - "src": "2709:10:0", + "src": "2686:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 187, + "id": 184, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "2737:12:0", + "src": "2714:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2740,14 +2694,14 @@ }, { "hexValue": "66616c7365", - "id": 188, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:5:0", + "src": "2744:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2756,14 +2710,14 @@ }, { "hexValue": "66616c7365", - "id": 189, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2789:5:0", + "src": "2766:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2771,12 +2725,12 @@ "value": "false" }, { - "id": 190, + "id": 187, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, - "src": "2814:14:0", + "src": "2791:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2785,12 +2739,12 @@ { "arguments": [ { - "id": 193, + "id": 190, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2852:7:0", + "referencedDeclaration": 586, + "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2804,26 +2758,26 @@ "typeString": "uint256" } ], - "id": 192, + "id": 189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 191, + "id": 188, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": {} } }, - "id": 194, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -2832,7 +2786,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2845:15:0", + "src": "2822:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -2840,42 +2794,12 @@ } }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 195, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2873:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 196, - "name": "_protocolFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2883:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2873:22:0", + "id": 192, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2850:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2925,34 +2849,34 @@ "typeString": "uint256" } ], - "id": 181, + "id": 178, "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "2602:5:0", + "referencedDeclaration": 831, + "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$834_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, - "id": 198, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2613:6:0", - "2636:5:0", - "2654:18:0", - "2698:9:0", - "2724:11:0", - "2754:11:0", - "2777:10:0", - "2799:13:0", - "2833:10:0", - "2865:6:0" + "2590:6:0", + "2613:5:0", + "2631:18:0", + "2675:9:0", + "2701:11:0", + "2731:11:0", + "2754:10:0", + "2776:13:0", + "2810:10:0", + "2842:6:0" ], "names": [ "sender", @@ -2967,22 +2891,22 @@ "amount" ], "nodeType": "FunctionCall", - "src": "2602:298:0", + "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order memory" } }, - "src": "2585:315:0", + "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 200, + "id": 195, "nodeType": "ExpressionStatement", - "src": "2585:315:0" + "src": "2562:300:0" }, { "eventCall": { @@ -2990,25 +2914,25 @@ { "expression": { "baseExpression": { - "id": 202, + "id": 197, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2957:5:0", + "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 204, + "id": 199, "indexExpression": { - "id": 203, + "id": 198, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2963:7:0", + "src": "2925:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3019,34 +2943,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2957:14:0", + "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 205, + "id": 200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2972:6:0", + "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "2957:21:0", + "referencedDeclaration": 812, + "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 206, + "id": 201, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2983:6:0", + "src": "2945:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3055,25 +2979,25 @@ { "expression": { "baseExpression": { - "id": 207, + "id": 202, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2994:5:0", + "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 209, + "id": 204, "indexExpression": { - "id": 208, + "id": 203, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3000:7:0", + "src": "2962:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3084,70 +3008,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2994:14:0", + "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 210, + "id": 205, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3009:6:0", + "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "2994:21:0", + "referencedDeclaration": 830, + "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 211, + "id": 206, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "3020:12:0", + "src": "2982:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 212, + "id": 207, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3037:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 213, + "id": 208, "name": "_rate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, - "src": "3049:5:0", + "src": "3011:5:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, { - "id": 214, + "id": 209, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, - "src": "3059:11:0", + "src": "3021:11:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -3185,18 +3109,18 @@ "typeString": "string calldata" } ], - "id": 201, + "id": 196, "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "2940:12:0", + "referencedDeclaration": 785, + "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes32,uint256,string memory)" } }, - "id": 215, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -3205,16 +3129,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2940:134:0", + "src": "2902:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 216, + "id": 211, "nodeType": "EmitStatement", - "src": "2935:139:0" + "src": "2897:139:0" } ] }, @@ -3225,7 +3149,7 @@ "text": "@dev See {createOrder-IGateway}. " }, "functionSelector": "809804f7", - "id": 218, + "id": 213, "implemented": true, "kind": "function", "modifiers": [ @@ -3239,7 +3163,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -3260,7 +3184,7 @@ "name": "_token", "nameLocation": "1741:6:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1733:14:0", "stateVariable": false, "storageLocation": "default", @@ -3288,7 +3212,7 @@ "name": "_amount", "nameLocation": "1759:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1751:15:0", "stateVariable": false, "storageLocation": "default", @@ -3315,7 +3239,7 @@ "name": "_rate", "nameLocation": "1777:5:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1770:12:0", "stateVariable": false, "storageLocation": "default", @@ -3342,7 +3266,7 @@ "name": "_senderFeeRecipient", "nameLocation": "1794:19:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1786:27:0", "stateVariable": false, "storageLocation": "default", @@ -3370,7 +3294,7 @@ "name": "_senderFee", "nameLocation": "1825:10:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1817:18:0", "stateVariable": false, "storageLocation": "default", @@ -3397,7 +3321,7 @@ "name": "_refundAddress", "nameLocation": "1847:14:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1839:22:0", "stateVariable": false, "storageLocation": "default", @@ -3425,7 +3349,7 @@ "name": "messageHash", "nameLocation": "1881:11:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1865:27:0", "stateVariable": false, "storageLocation": "calldata", @@ -3459,7 +3383,7 @@ "name": "orderId", "nameLocation": "1936:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1928:15:0", "stateVariable": false, "storageLocation": "default", @@ -3482,17 +3406,17 @@ ], "src": "1927:17:0" }, - "scope": 582, - "src": "1709:1369:0", + "scope": 579, + "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 273, + "id": 268, "nodeType": "Block", - "src": "3622:276:0", + "src": "3584:276:0", "statements": [ { "expression": { @@ -3502,32 +3426,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 237, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 233, + "id": 228, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "3634:17:0", + "referencedDeclaration": 596, + "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 235, + "id": 230, "indexExpression": { - "id": 234, + "id": 229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3652:6:0", + "referencedDeclaration": 216, + "src": "3614:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3538,7 +3462,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3634:25:0", + "src": "3596:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3548,21 +3472,21 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 236, + "id": 231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:1:0", + "src": "3625:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3634:30:0", + "src": "3596:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3570,14 +3494,14 @@ }, { "hexValue": "546f6b656e4e6f74537570706f72746564", - "id": 238, + "id": 233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3666:19:0", + "src": "3628:19:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1", "typeString": "literal_string \"TokenNotSupported\"" @@ -3596,7 +3520,7 @@ "typeString": "literal_string \"TokenNotSupported\"" } ], - "id": 232, + "id": 227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3604,13 +3528,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3626:7:0", + "src": "3588:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 239, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -3619,16 +3543,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3626:60:0", + "src": "3588:60:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 240, + "id": 235, "nodeType": "ExpressionStatement", - "src": "3626:60:0" + "src": "3588:60:0" }, { "expression": { @@ -3638,18 +3562,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 244, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 242, + "id": 237, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "3698:7:0", + "referencedDeclaration": 218, + "src": "3660:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3659,21 +3583,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 243, + "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:1:0", + "src": "3671:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3698:12:0", + "src": "3660:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3681,14 +3605,14 @@ }, { "hexValue": "416d6f756e7449735a65726f", - "id": 245, + "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:14:0", + "src": "3674:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2", "typeString": "literal_string \"AmountIsZero\"" @@ -3707,7 +3631,7 @@ "typeString": "literal_string \"AmountIsZero\"" } ], - "id": 241, + "id": 236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3715,13 +3639,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3690:7:0", + "src": "3652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 246, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,16 +3654,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3690:37:0", + "src": "3652:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 247, + "id": 242, "nodeType": "ExpressionStatement", - "src": "3690:37:0" + "src": "3652:37:0" }, { "expression": { @@ -3749,18 +3673,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 254, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 249, + "id": 244, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3739:14:0", + "referencedDeclaration": 220, + "src": "3701:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3772,14 +3696,14 @@ "arguments": [ { "hexValue": "30", - "id": 252, + "id": 247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3765:1:0", + "src": "3727:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3794,26 +3718,26 @@ "typeString": "int_const 0" } ], - "id": 251, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 250, + "id": 245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": {} } }, - "id": 253, + "id": 248, "isConstant": false, "isLValue": false, "isPure": true, @@ -3822,14 +3746,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3757:10:0", + "src": "3719:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3739:28:0", + "src": "3701:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3837,14 +3761,14 @@ }, { "hexValue": "5468726f775a65726f41646472657373", - "id": 255, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3769:18:0", + "src": "3731:18:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7", "typeString": "literal_string \"ThrowZeroAddress\"" @@ -3863,7 +3787,7 @@ "typeString": "literal_string \"ThrowZeroAddress\"" } ], - "id": 248, + "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3871,13 +3795,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3731:7:0", + "src": "3693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 256, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -3886,16 +3810,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3731:57:0", + "src": "3693:57:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 257, + "id": 252, "nodeType": "ExpressionStatement", - "src": "3731:57:0" + "src": "3693:57:0" }, { "condition": { @@ -3903,18 +3827,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 258, + "id": 253, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "3797:10:0", + "referencedDeclaration": 224, + "src": "3759:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3924,33 +3848,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 259, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3811:1:0", + "src": "3773:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3797:15:0", + "src": "3759:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 272, + "id": 267, "nodeType": "IfStatement", - "src": "3793:102:0", + "src": "3755:102:0", "trueBody": { - "id": 271, + "id": 266, "nodeType": "Block", - "src": "3814:81:0", + "src": "3776:81:0", "statements": [ { "expression": { @@ -3960,18 +3884,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 262, + "id": 257, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3827:19:0", + "referencedDeclaration": 222, + "src": "3789:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3983,14 +3907,14 @@ "arguments": [ { "hexValue": "30", - "id": 265, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:1:0", + "src": "3820:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4005,26 +3929,26 @@ "typeString": "int_const 0" } ], - "id": 264, + "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 263, + "id": 258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": {} } }, - "id": 266, + "id": 261, "isConstant": false, "isLValue": false, "isPure": true, @@ -4033,14 +3957,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3850:10:0", + "src": "3812:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3827:33:0", + "src": "3789:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4048,14 +3972,14 @@ }, { "hexValue": "496e76616c696453656e646572466565526563697069656e74", - "id": 268, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3862:27:0", + "src": "3824:27:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8", "typeString": "literal_string \"InvalidSenderFeeRecipient\"" @@ -4074,7 +3998,7 @@ "typeString": "literal_string \"InvalidSenderFeeRecipient\"" } ], - "id": 261, + "id": 256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4082,13 +4006,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3819:7:0", + "src": "3781:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 269, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -4097,16 +4021,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3819:71:0", + "src": "3781:71:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 270, + "id": 265, "nodeType": "ExpressionStatement", - "src": "3819:71:0" + "src": "3781:71:0" } ] } @@ -4114,31 +4038,31 @@ ] }, "documentation": { - "id": 219, + "id": 214, "nodeType": "StructuredDocumentation", - "src": "3081:388:0", + "src": "3043:388:0", "text": " @dev Internal function to handle order creation.\n @param _token The address of the token being traded.\n @param _amount The amount of tokens being traded.\n @param _refundAddress The address to refund the tokens in case of cancellation.\n @param _senderFeeRecipient The address of the recipient for the sender fee.\n @param _senderFee The amount of the sender fee." }, - "id": 274, + "id": 269, "implemented": true, "kind": "function", "modifiers": [], "name": "_handler", - "nameLocation": "3480:8:0", + "nameLocation": "3442:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 221, + "id": 216, "mutability": "mutable", "name": "_token", - "nameLocation": "3500:6:0", + "nameLocation": "3462:6:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3492:14:0", + "scope": 269, + "src": "3454:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4146,10 +4070,10 @@ "typeString": "address" }, "typeName": { - "id": 220, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3492:7:0", + "src": "3454:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4160,13 +4084,13 @@ }, { "constant": false, - "id": 223, + "id": 218, "mutability": "mutable", "name": "_amount", - "nameLocation": "3518:7:0", + "nameLocation": "3480:7:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3510:15:0", + "scope": 269, + "src": "3472:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4174,10 +4098,10 @@ "typeString": "uint256" }, "typeName": { - "id": 222, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3510:7:0", + "src": "3472:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4187,13 +4111,13 @@ }, { "constant": false, - "id": 225, + "id": 220, "mutability": "mutable", "name": "_refundAddress", - "nameLocation": "3537:14:0", + "nameLocation": "3499:14:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3529:22:0", + "scope": 269, + "src": "3491:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4201,10 +4125,10 @@ "typeString": "address" }, "typeName": { - "id": 224, + "id": 219, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3529:7:0", + "src": "3491:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4215,13 +4139,13 @@ }, { "constant": false, - "id": 227, + "id": 222, "mutability": "mutable", "name": "_senderFeeRecipient", - "nameLocation": "3563:19:0", + "nameLocation": "3525:19:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3555:27:0", + "scope": 269, + "src": "3517:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4229,10 +4153,10 @@ "typeString": "address" }, "typeName": { - "id": 226, + "id": 221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3555:7:0", + "src": "3517:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4243,13 +4167,13 @@ }, { "constant": false, - "id": 229, + "id": 224, "mutability": "mutable", "name": "_senderFee", - "nameLocation": "3594:10:0", + "nameLocation": "3556:10:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3586:18:0", + "scope": 269, + "src": "3548:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4257,10 +4181,10 @@ "typeString": "uint256" }, "typeName": { - "id": 228, + "id": 223, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3586:7:0", + "src": "3548:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4269,34 +4193,34 @@ "visibility": "internal" } ], - "src": "3488:119:0" + "src": "3450:119:0" }, "returnParameters": { - "id": 231, + "id": 226, "nodeType": "ParameterList", "parameters": [], - "src": "3622:0:0" + "src": "3584:0:0" }, - "scope": 582, - "src": "3471:427:0", + "scope": 579, + "src": "3433:427:0", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ - 868 + 865 ], "body": { - "id": 428, + "id": 425, "nodeType": "Block", - "src": "4293:1337:0", + "src": "4255:1396:0", "statements": [ { "expression": { "arguments": [ { - "id": 295, + "id": 290, "isConstant": false, "isLValue": false, "isPure": false, @@ -4304,29 +4228,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4356:28:0", + "src": "4318:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 291, + "id": 286, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4357:5:0", + "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 293, + "id": 288, "indexExpression": { - "id": 292, + "id": 287, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4363:8:0", + "referencedDeclaration": 274, + "src": "4325:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4337,22 +4261,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4357:15:0", + "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 294, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4373:11:0", + "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4357:27:0", + "referencedDeclaration": 822, + "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4365,14 +4289,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 296, + "id": 291, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4386:16:0", + "src": "4348:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -4391,7 +4315,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 290, + "id": 285, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4399,13 +4323,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4348:7:0", + "src": "4310:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 297, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -4414,22 +4338,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4348:55:0", + "src": "4310:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 298, + "id": 293, "nodeType": "ExpressionStatement", - "src": "4348:55:0" + "src": "4310:55:0" }, { "expression": { "arguments": [ { - "id": 304, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -4437,29 +4361,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4415:27:0", + "src": "4377:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 300, + "id": 295, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4416:5:0", + "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 302, + "id": 297, "indexExpression": { - "id": 301, + "id": 296, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4422:8:0", + "referencedDeclaration": 274, + "src": "4384:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4470,22 +4394,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4416:15:0", + "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 303, + "id": 298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4432:10:0", + "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "4416:26:0", + "referencedDeclaration": 824, + "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4498,14 +4422,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 305, + "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4444:15:0", + "src": "4406:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -4524,7 +4448,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 299, + "id": 294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4532,13 +4456,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4407:7:0", + "src": "4369:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 301, "isConstant": false, "isLValue": false, "isPure": false, @@ -4547,31 +4471,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4407:53:0", + "src": "4369:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 302, "nodeType": "ExpressionStatement", - "src": "4407:53:0" + "src": "4369:53:0" }, { "assignments": [ - 309 + 304 ], "declarations": [ { "constant": false, - "id": 309, + "id": 304, "mutability": "mutable", "name": "token", - "nameLocation": "4505:5:0", + "nameLocation": "4467:5:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "4497:13:0", + "scope": 425, + "src": "4459:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4579,10 +4503,10 @@ "typeString": "address" }, "typeName": { - "id": 308, + "id": 303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4497:7:0", + "src": "4459:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4592,29 +4516,29 @@ "visibility": "internal" } ], - "id": 314, + "id": 309, "initialValue": { "expression": { "baseExpression": { - "id": 310, + "id": 305, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4513:5:0", + "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 312, + "id": 307, "indexExpression": { - "id": 311, + "id": 306, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4519:8:0", + "referencedDeclaration": 274, + "src": "4481:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4625,33 +4549,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4513:15:0", + "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 313, + "id": 308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4529:5:0", + "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4513:21:0", + "referencedDeclaration": 814, + "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4497:37:0" + "src": "4459:37:0" }, { "expression": { - "id": 320, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, @@ -4659,25 +4583,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 315, + "id": 310, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4601:5:0", + "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 317, + "id": 312, "indexExpression": { - "id": 316, + "id": 311, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4607:8:0", + "referencedDeclaration": 274, + "src": "4569:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4688,22 +4612,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4601:15:0", + "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 318, + "id": 313, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4617:10:0", + "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4601:26:0", + "referencedDeclaration": 828, + "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -4712,26 +4636,26 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 319, + "id": 314, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4631:14:0", + "referencedDeclaration": 278, + "src": "4593:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "4601:44:0", + "src": "4563:44:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 321, + "id": 316, "nodeType": "ExpressionStatement", - "src": "4601:44:0" + "src": "4563:44:0" }, { "condition": { @@ -4739,7 +4663,7 @@ "typeIdentifier": "t_uint96", "typeString": "uint96" }, - "id": 327, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -4747,25 +4671,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 322, + "id": 317, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4654:5:0", + "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 324, + "id": 319, "indexExpression": { - "id": 323, + "id": 318, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4660:8:0", + "referencedDeclaration": 274, + "src": "4622:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4776,22 +4700,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4654:15:0", + "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 325, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4670:10:0", + "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4654:26:0", + "referencedDeclaration": 828, + "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -4801,37 +4725,37 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 326, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4684:1:0", + "src": "4646:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4654:31:0", + "src": "4616:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 391, + "id": 367, "nodeType": "IfStatement", - "src": "4650:604:0", + "src": "4612:453:0", "trueBody": { - "id": 390, + "id": 366, "nodeType": "Block", - "src": "4687:567:0", + "src": "4649:416:0", "statements": [ { "expression": { - "id": 333, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, @@ -4839,25 +4763,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 328, + "id": 323, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4737:5:0", + "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 330, + "id": 325, "indexExpression": { - "id": 329, + "id": 324, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4743:8:0", + "referencedDeclaration": 274, + "src": "4705:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4868,22 +4792,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4737:15:0", + "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 331, + "id": 326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4753:11:0", + "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4737:27:0", + "referencedDeclaration": 822, + "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4893,29 +4817,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 332, + "id": 327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4767:4:0", + "src": "4729:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4737:34:0", + "src": "4699:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 334, + "id": 329, "nodeType": "ExpressionStatement", - "src": "4737:34:0" + "src": "4699:34:0" }, { "condition": { @@ -4923,7 +4847,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 340, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -4931,25 +4855,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 335, + "id": 330, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4781:5:0", + "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 337, + "id": 332, "indexExpression": { - "id": 336, + "id": 331, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4787:8:0", + "referencedDeclaration": 274, + "src": "4749:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4960,22 +4884,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4781:15:0", + "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 338, + "id": 333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4797:9:0", + "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4781:25:0", + "referencedDeclaration": 818, + "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4985,33 +4909,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 339, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4810:1:0", + "src": "4772:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4781:30:0", + "src": "4743:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 370, + "id": 365, "nodeType": "IfStatement", - "src": "4777:321:0", + "src": "4739:321:0", "trueBody": { - "id": 369, + "id": 364, "nodeType": "Block", - "src": "4813:285:0", + "src": "4775:285:0", "statements": [ { "expression": { @@ -5019,25 +4943,25 @@ { "expression": { "baseExpression": { - "id": 348, + "id": 343, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4891:5:0", + "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 350, + "id": 345, "indexExpression": { - "id": 349, + "id": 344, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4897:8:0", + "referencedDeclaration": 274, + "src": "4859:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5048,22 +4972,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4891:15:0", + "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 351, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4907:18:0", + "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "4891:34:0", + "referencedDeclaration": 816, + "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5072,25 +4996,25 @@ { "expression": { "baseExpression": { - "id": 352, + "id": 347, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4932:5:0", + "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 354, + "id": 349, "indexExpression": { - "id": 353, + "id": 348, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4938:8:0", + "referencedDeclaration": 274, + "src": "4900:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5101,22 +5025,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4932:15:0", + "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 355, + "id": 350, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4948:9:0", + "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4932:25:0", + "referencedDeclaration": 818, + "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5139,25 +5063,25 @@ { "expression": { "baseExpression": { - "id": 342, + "id": 337, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4853:5:0", + "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 344, + "id": 339, "indexExpression": { - "id": 343, + "id": 338, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4859:8:0", + "referencedDeclaration": 274, + "src": "4821:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5168,22 +5092,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4853:15:0", + "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 345, + "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4869:5:0", + "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4853:21:0", + "referencedDeclaration": 814, + "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5197,18 +5121,18 @@ "typeString": "address" } ], - "id": 341, + "id": 336, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "4846:6:0", + "referencedDeclaration": 2554, + "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 346, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -5217,29 +5141,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:29:0", + "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 347, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4876:8:0", + "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "4846:38:0", + "referencedDeclaration": 2521, + "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 356, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5248,16 +5172,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:117:0", + "src": "4808:117:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 357, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4846:117:0" + "src": "4808:117:0" }, { "eventCall": { @@ -5265,25 +5189,25 @@ { "expression": { "baseExpression": { - "id": 359, + "id": 354, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5020:5:0", + "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 361, + "id": 356, "indexExpression": { - "id": 360, + "id": 355, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5026:8:0", + "referencedDeclaration": 274, + "src": "4988:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5294,22 +5218,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5020:15:0", + "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 362, + "id": 357, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5036:18:0", + "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "5020:34:0", + "referencedDeclaration": 816, + "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5318,25 +5242,25 @@ { "expression": { "baseExpression": { - "id": 363, + "id": 358, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5061:5:0", + "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 365, + "id": 360, "indexExpression": { - "id": 364, + "id": 359, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5067:8:0", + "referencedDeclaration": 274, + "src": "5029:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5347,22 +5271,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5061:15:0", + "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 366, + "id": 361, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5077:9:0", + "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "5061:25:0", + "referencedDeclaration": 818, + "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5380,18 +5304,18 @@ "typeString": "uint256" } ], - "id": 358, + "id": 353, "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "4993:20:0", + "referencedDeclaration": 810, + "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 367, + "id": 362, "isConstant": false, "isLValue": false, "isPure": false, @@ -5400,27 +5324,75 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4993:99:0", + "src": "4955:99:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 368, + "id": 363, "nodeType": "EmitStatement", - "src": "4988:104:0" + "src": "4950:104:0" } ] } + } + ] + } + }, + { + "assignments": [ + 369 + ], + "declarations": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "liquidityProviderAmount", + "nameLocation": "5113:23:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "5105:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "condition": { + "visibility": "internal" + } + ], + "id": 379, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 376, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -5428,25 +5400,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 371, + "id": 370, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5107:5:0", + "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 373, + "id": 372, "indexExpression": { - "id": 372, + "id": 371, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5113:8:0", + "referencedDeclaration": 274, + "src": "5146:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5457,243 +5429,182 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5107:15:0", + "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 374, + "id": 373, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5123:11:0", - "memberName": "protocolFee", + "memberLocation": "5156:6:0", + "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5107:27:0", + "referencedDeclaration": 830, + "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "*", "rightExpression": { - "hexValue": "30", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5138:1:0", + "id": 374, + "name": "_settlePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "5165:14:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } }, - "src": "5107:32:0", + "src": "5140:39:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5139:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 377, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "5183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5105:85:0" + }, + { + "expression": { + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 380, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5194:5:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 389, - "nodeType": "IfStatement", - "src": "5103:147:0", - "trueBody": { - "id": 388, - "nodeType": "Block", - "src": "5141:109:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 381, - "name": "treasuryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "5199:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "id": 382, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5216:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 384, - "indexExpression": { - "id": 383, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5222:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5216:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5232:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5216:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 378, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5183:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 377, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", - "typeString": "contract IERC20" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5190:8:0", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5176:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "5176:68:0" - } - ] + "id": 382, + "indexExpression": { + "id": 381, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 274, + "src": "5200:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5194:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$831_storage", + "typeString": "struct IGateway.Order storage ref" } + }, + "id": 383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5210:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "5194:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 384, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5220:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 386, + "nodeType": "ExpressionStatement", + "src": "5194:49:0" }, { "assignments": [ - 393 + 388 ], "declarations": [ { "constant": false, - "id": 393, + "id": 388, "mutability": "mutable", - "name": "liquidityProviderAmount", - "nameLocation": "5302:23:0", + "name": "protocolFee", + "nameLocation": "5256:11:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "5294:31:0", + "scope": 425, + "src": "5248:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5701,10 +5612,10 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5294:7:0", + "src": "5248:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5713,13 +5624,13 @@ "visibility": "internal" } ], - "id": 403, + "id": 395, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 402, + "id": 394, "isConstant": false, "isLValue": false, "isPure": false, @@ -5731,59 +5642,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 399, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "expression": { - "baseExpression": { - "id": 394, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5329:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 396, - "indexExpression": { - "id": 395, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5335:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5329:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5345:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5329:22:0", + "id": 389, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5271:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5792,32 +5662,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 398, - "name": "_settlePercent", + "id": 390, + "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5354:14:0", + "referencedDeclaration": 588, + "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "5329:39:0", + "src": "5271:44:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 392, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5328:41:0", + "src": "5270:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5826,132 +5696,214 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 401, + "id": 393, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "5372:7:0", + "referencedDeclaration": 586, + "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5328:51:0", + "src": "5270:56:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5294:85:0" + "src": "5248:78:0" }, { "expression": { - "id": 409, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "id": 396, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5330:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 397, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5357:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5330:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5330:38:0" + }, + { + "expression": { + "arguments": [ + { + "id": 404, + "name": "treasuryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5423:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 405, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5440:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { - "baseExpression": { - "id": 404, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5383:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + "arguments": [ + { + "id": 401, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "5407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 406, - "indexExpression": { - "id": 405, - "name": "_orderId", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 400, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5389:8:0", + "referencedDeclaration": 2554, + "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeString": "type(contract IERC20)" } }, + "id": 402, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5383:15:0", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:13:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_contract$_IERC20_$2554", + "typeString": "contract IERC20" } }, - "id": 407, + "id": 403, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberLocation": "5399:6:0", - "memberName": "amount", + "lValueRequested": false, + "memberLocation": "5414:8:0", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5383:22:0", + "referencedDeclaration": 2521, + "src": "5400:22:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 408, - "name": "liquidityProviderAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5409:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "src": "5383:49:0", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:52:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 410, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5383:49:0" + "src": "5400:52:0" }, { "expression": { "arguments": [ { - "id": 415, + "id": 412, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5459:18:0", + "referencedDeclaration": 276, + "src": "5480:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 416, + "id": 413, "name": "liquidityProviderAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5479:23:0", + "referencedDeclaration": 369, + "src": "5500:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5972,12 +5924,12 @@ "expression": { "arguments": [ { - "id": 412, + "id": 409, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5443:5:0", + "referencedDeclaration": 304, + "src": "5464:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5991,18 +5943,18 @@ "typeString": "address" } ], - "id": 411, + "id": 408, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5436:6:0", + "referencedDeclaration": 2554, + "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 413, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, @@ -6011,29 +5963,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:13:0", + "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 414, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5450:8:0", + "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5436:22:0", + "referencedDeclaration": 2521, + "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 417, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -6042,63 +5994,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:67:0", + "src": "5457:67:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 418, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5436:67:0" + "src": "5457:67:0" }, { "eventCall": { "arguments": [ { - "id": 420, + "id": 417, "name": "_splitOrderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5550:13:0", + "referencedDeclaration": 272, + "src": "5571:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 421, + "id": 418, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5565:8:0", + "referencedDeclaration": 274, + "src": "5586:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 422, + "id": 419, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5575:18:0", + "referencedDeclaration": 276, + "src": "5596:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 423, + "id": 420, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5595:14:0", + "referencedDeclaration": 278, + "src": "5616:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6124,18 +6076,18 @@ "typeString": "uint64" } ], - "id": 419, + "id": 416, "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "5537:12:0", + "referencedDeclaration": 796, + "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint96)" } }, - "id": 424, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -6144,85 +6096,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5537:73:0", + "src": "5558:73:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 425, + "id": 422, "nodeType": "EmitStatement", - "src": "5532:78:0" + "src": "5553:78:0" }, { "expression": { "hexValue": "74727565", - "id": 426, + "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:4:0", + "src": "5643:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 289, - "id": 427, + "functionReturnParameters": 284, + "id": 424, "nodeType": "Return", - "src": "5615:11:0" + "src": "5636:11:0" } ] }, "documentation": { - "id": 275, + "id": 270, "nodeType": "StructuredDocumentation", - "src": "4099:34:0", + "src": "4061:34:0", "text": "@dev See {settle-IGateway}. " }, "functionSelector": "f22ee704", - "id": 429, + "id": 426, "implemented": true, "kind": "function", "modifiers": [ { - "id": 286, + "id": 281, "kind": "modifierInvocation", "modifierName": { - "id": 285, + "id": 280, "name": "onlyAggregator", "nameLocations": [ - "4263:14:0" + "4225:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "4263:14:0" + "src": "4225:14:0" }, "nodeType": "ModifierInvocation", - "src": "4263:14:0" + "src": "4225:14:0" } ], "name": "settle", - "nameLocation": "4144:6:0", + "nameLocation": "4106:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 284, + "id": 279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 272, "mutability": "mutable", "name": "_splitOrderId", - "nameLocation": "4162:13:0", + "nameLocation": "4124:13:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4154:21:0", + "scope": 426, + "src": "4116:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6230,10 +6182,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 276, + "id": 271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4154:7:0", + "src": "4116:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6243,13 +6195,13 @@ }, { "constant": false, - "id": 279, + "id": 274, "mutability": "mutable", "name": "_orderId", - "nameLocation": "4187:8:0", + "nameLocation": "4149:8:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4179:16:0", + "scope": 426, + "src": "4141:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6257,10 +6209,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 278, + "id": 273, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4179:7:0", + "src": "4141:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6270,13 +6222,13 @@ }, { "constant": false, - "id": 281, + "id": 276, "mutability": "mutable", "name": "_liquidityProvider", - "nameLocation": "4207:18:0", + "nameLocation": "4169:18:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4199:26:0", + "scope": 426, + "src": "4161:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6284,10 +6236,10 @@ "typeString": "address" }, "typeName": { - "id": 280, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4199:7:0", + "src": "4161:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6298,13 +6250,13 @@ }, { "constant": false, - "id": 283, + "id": 278, "mutability": "mutable", "name": "_settlePercent", - "nameLocation": "4236:14:0", + "nameLocation": "4198:14:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4229:21:0", + "scope": 426, + "src": "4191:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6312,10 +6264,10 @@ "typeString": "uint64" }, "typeName": { - "id": 282, + "id": 277, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4229:6:0", + "src": "4191:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6324,21 +6276,21 @@ "visibility": "internal" } ], - "src": "4150:103:0" + "src": "4112:103:0" }, "returnParameters": { - "id": 289, + "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 288, + "id": 283, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4287:4:0", + "scope": 426, + "src": "4249:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6346,10 +6298,10 @@ "typeString": "bool" }, "typeName": { - "id": 287, + "id": 282, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4287:4:0", + "src": "4249:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6358,28 +6310,28 @@ "visibility": "internal" } ], - "src": "4286:6:0" + "src": "4248:6:0" }, - "scope": 582, - "src": "4135:1495:0", + "scope": 579, + "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 878 + 875 ], "body": { - "id": 534, + "id": 531, "nodeType": "Block", - "src": "5756:839:0", + "src": "5777:839:0", "statements": [ { "expression": { "arguments": [ { - "id": 446, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -6387,29 +6339,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5819:28:0", + "src": "5840:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 442, + "id": 439, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5820:5:0", + "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 444, + "id": 441, "indexExpression": { - "id": 443, + "id": 440, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5826:8:0", + "referencedDeclaration": 431, + "src": "5847:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6420,22 +6372,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5820:15:0", + "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 445, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5836:11:0", + "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "5820:27:0", + "referencedDeclaration": 822, + "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6448,14 +6400,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 447, + "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5849:16:0", + "src": "5870:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -6474,7 +6426,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 441, + "id": 438, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6482,13 +6434,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5811:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 448, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -6497,22 +6449,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5811:55:0", + "src": "5832:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 449, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5811:55:0" + "src": "5832:55:0" }, { "expression": { "arguments": [ { - "id": 455, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -6520,29 +6472,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5878:27:0", + "src": "5899:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 451, + "id": 448, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5879:5:0", + "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 453, + "id": 450, "indexExpression": { - "id": 452, + "id": 449, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5885:8:0", + "referencedDeclaration": 431, + "src": "5906:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6553,22 +6505,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5879:15:0", + "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 454, + "id": 451, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5895:10:0", + "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "5879:26:0", + "referencedDeclaration": 824, + "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6581,14 +6533,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 456, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5907:15:0", + "src": "5928:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -6607,7 +6559,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 450, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6615,13 +6567,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5870:7:0", + "src": "5891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 457, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -6630,16 +6582,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5870:53:0", + "src": "5891:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5870:53:0" + "src": "5891:53:0" }, { "expression": { @@ -6649,7 +6601,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 465, + "id": 462, "isConstant": false, "isLValue": false, "isPure": false, @@ -6657,25 +6609,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 460, + "id": 457, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5935:5:0", + "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 462, + "id": 459, "indexExpression": { - "id": 461, + "id": 458, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5941:8:0", + "referencedDeclaration": 431, + "src": "5962:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6686,22 +6638,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5935:15:0", + "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 463, + "id": 460, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5951:11:0", + "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5935:27:0", + "referencedDeclaration": 820, + "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6710,18 +6662,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 464, + "id": 461, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5966:4:0", + "referencedDeclaration": 429, + "src": "5987:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5935:35:0", + "src": "5956:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6729,14 +6681,14 @@ }, { "hexValue": "4665654578636565647350726f746f636f6c466565", - "id": 466, + "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5972:23:0", + "src": "5993:23:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de", "typeString": "literal_string \"FeeExceedsProtocolFee\"" @@ -6755,7 +6707,7 @@ "typeString": "literal_string \"FeeExceedsProtocolFee\"" } ], - "id": 459, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6763,13 +6715,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5927:7:0", + "src": "5948:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 467, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -6778,39 +6730,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5927:69:0", + "src": "5948:69:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 468, + "id": 465, "nodeType": "ExpressionStatement", - "src": "5927:69:0" + "src": "5948:69:0" }, { "expression": { "arguments": [ { - "id": 476, + "id": 473, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "6081:15:0", + "referencedDeclaration": 590, + "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 477, + "id": 474, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6098:4:0", + "referencedDeclaration": 429, + "src": "6119:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6833,25 +6785,25 @@ { "expression": { "baseExpression": { - "id": 470, + "id": 467, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6049:5:0", + "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 472, + "id": 469, "indexExpression": { - "id": 471, + "id": 468, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6055:8:0", + "referencedDeclaration": 431, + "src": "6076:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6862,22 +6814,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6049:15:0", + "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 473, + "id": 470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6065:5:0", + "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6049:21:0", + "referencedDeclaration": 814, + "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6891,18 +6843,18 @@ "typeString": "address" } ], - "id": 469, + "id": 466, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6042:6:0", + "referencedDeclaration": 2554, + "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 474, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -6911,29 +6863,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:29:0", + "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 475, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6072:8:0", + "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6042:38:0", + "referencedDeclaration": 2521, + "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 478, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -6942,20 +6894,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:61:0", + "src": "6063:61:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 476, "nodeType": "ExpressionStatement", - "src": "6042:61:0" + "src": "6063:61:0" }, { "expression": { - "id": 485, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -6963,25 +6915,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 480, + "id": 477, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6132:5:0", + "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 482, + "id": 479, "indexExpression": { - "id": 481, + "id": 478, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6138:8:0", + "referencedDeclaration": 431, + "src": "6159:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6992,22 +6944,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6132:15:0", + "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 483, + "id": 480, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6148:10:0", + "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "6132:26:0", + "referencedDeclaration": 824, + "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7017,33 +6969,33 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 484, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6161:4:0", + "src": "6182:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6132:33:0", + "src": "6153:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 486, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6132:33:0" + "src": "6153:33:0" }, { "expression": { - "id": 492, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, @@ -7051,25 +7003,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 487, + "id": 484, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6169:5:0", + "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 489, + "id": 486, "indexExpression": { - "id": 488, + "id": 485, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6175:8:0", + "referencedDeclaration": 431, + "src": "6196:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7080,22 +7032,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6169:15:0", + "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 490, + "id": 487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6185:10:0", + "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "6169:26:0", + "referencedDeclaration": 828, + "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -7105,44 +7057,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 491, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6198:1:0", + "src": "6219:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6169:30:0", + "src": "6190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 493, + "id": 490, "nodeType": "ExpressionStatement", - "src": "6169:30:0" + "src": "6190:30:0" }, { "assignments": [ - 495 + 492 ], "declarations": [ { "constant": false, - "id": 495, + "id": 492, "mutability": "mutable", "name": "refundAmount", - "nameLocation": "6246:12:0", + "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "6238:20:0", + "scope": 531, + "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7150,10 +7102,10 @@ "typeString": "uint256" }, "typeName": { - "id": 494, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6238:7:0", + "src": "6259:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7162,13 +7114,13 @@ "visibility": "internal" } ], - "id": 507, + "id": 504, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -7178,7 +7130,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 501, "isConstant": false, "isLValue": false, "isPure": false, @@ -7186,25 +7138,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 496, + "id": 493, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6261:5:0", + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 498, + "id": 495, "indexExpression": { - "id": 497, + "id": 494, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6267:8:0", + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7215,22 +7167,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6261:15:0", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 499, + "id": 496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6277:6:0", + "memberLocation": "6298:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "6261:22:0", + "referencedDeclaration": 830, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7241,25 +7193,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 500, + "id": 497, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6286:5:0", + "src": "6307:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 502, + "id": 499, "indexExpression": { - "id": 501, + "id": 498, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6292:8:0", + "referencedDeclaration": 431, + "src": "6313:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7270,28 +7222,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6286:15:0", + "src": "6307:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 503, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6302:11:0", + "memberLocation": "6323:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "6286:27:0", + "referencedDeclaration": 820, + "src": "6307:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:52:0", + "src": "6282:52:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7300,25 +7252,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 505, + "id": 502, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6316:4:0", + "referencedDeclaration": 429, + "src": "6337:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:59:0", + "src": "6282:59:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6238:82:0" + "src": "6259:82:0" }, { "expression": { @@ -7326,25 +7278,25 @@ { "expression": { "baseExpression": { - "id": 515, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6433:5:0", + "src": "6454:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 517, + "id": 514, "indexExpression": { - "id": 516, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6439:8:0", + "referencedDeclaration": 431, + "src": "6460:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7355,22 +7307,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6433:15:0", + "src": "6454:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 518, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6449:13:0", + "memberLocation": "6470:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 829, - "src": "6433:29:0", + "referencedDeclaration": 826, + "src": "6454:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7381,18 +7333,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 524, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 519, + "id": 516, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6467:12:0", + "referencedDeclaration": 492, + "src": "6488:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7403,25 +7355,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 520, + "id": 517, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6482:5:0", + "src": "6503:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 522, + "id": 519, "indexExpression": { - "id": 521, + "id": 518, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6488:8:0", + "referencedDeclaration": 431, + "src": "6509:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7432,28 +7384,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6482:15:0", + "src": "6503:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 523, + "id": 520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6498:9:0", + "memberLocation": "6519:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "6482:25:0", + "referencedDeclaration": 818, + "src": "6503:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:40:0", + "src": "6488:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7476,25 +7428,25 @@ { "expression": { "baseExpression": { - "id": 509, + "id": 506, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6397:5:0", + "src": "6418:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 511, + "id": 508, "indexExpression": { - "id": 510, + "id": 507, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6403:8:0", + "referencedDeclaration": 431, + "src": "6424:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7505,22 +7457,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6397:15:0", + "src": "6418:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 512, + "id": 509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6413:5:0", + "memberLocation": "6434:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6397:21:0", + "referencedDeclaration": 814, + "src": "6418:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7534,18 +7486,18 @@ "typeString": "address" } ], - "id": 508, + "id": 505, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6390:6:0", + "referencedDeclaration": 2554, + "src": "6411:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 513, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -7554,29 +7506,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:29:0", + "src": "6411:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 514, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6420:8:0", + "memberLocation": "6441:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6390:38:0", + "referencedDeclaration": 2521, + "src": "6411:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 525, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -7585,39 +7537,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:121:0", + "src": "6411:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 526, + "id": 523, "nodeType": "ExpressionStatement", - "src": "6390:121:0" + "src": "6411:121:0" }, { "eventCall": { "arguments": [ { - "id": 528, + "id": 525, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6560:4:0", + "referencedDeclaration": 429, + "src": "6581:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 529, + "id": 526, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6566:8:0", + "referencedDeclaration": 431, + "src": "6587:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7635,18 +7587,18 @@ "typeString": "bytes32" } ], - "id": 527, + "id": 524, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "6546:13:0", + "referencedDeclaration": 803, + "src": "6567:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 530, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -7655,85 +7607,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6546:29:0", + "src": "6567:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 531, + "id": 528, "nodeType": "EmitStatement", - "src": "6541:34:0" + "src": "6562:34:0" }, { "expression": { "hexValue": "74727565", - "id": 532, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6587:4:0", + "src": "6608:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 440, - "id": 533, + "functionReturnParameters": 437, + "id": 530, "nodeType": "Return", - "src": "6580:11:0" + "src": "6601:11:0" } ] }, "documentation": { - "id": 430, + "id": 427, "nodeType": "StructuredDocumentation", - "src": "5633:34:0", + "src": "5654:34:0", "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 535, + "id": 532, "implemented": true, "kind": "function", "modifiers": [ { - "id": 437, + "id": 434, "kind": "modifierInvocation", "modifierName": { - "id": 436, + "id": 433, "name": "onlyAggregator", "nameLocations": [ - "5726:14:0" + "5747:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "5726:14:0" + "src": "5747:14:0" }, "nodeType": "ModifierInvocation", - "src": "5726:14:0" + "src": "5747:14:0" } ], "name": "refund", - "nameLocation": "5678:6:0", + "nameLocation": "5699:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 435, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 432, + "id": 429, "mutability": "mutable", "name": "_fee", - "nameLocation": "5693:4:0", + "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5685:12:0", + "scope": 532, + "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7741,10 +7693,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5685:7:0", + "src": "5706:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7754,13 +7706,13 @@ }, { "constant": false, - "id": 434, + "id": 431, "mutability": "mutable", "name": "_orderId", - "nameLocation": "5707:8:0", + "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5699:16:0", + "scope": 532, + "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7768,10 +7720,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 433, + "id": 430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5699:7:0", + "src": "5720:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7780,21 +7732,21 @@ "visibility": "internal" } ], - "src": "5684:32:0" + "src": "5705:32:0" }, "returnParameters": { - "id": 440, + "id": 437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 439, + "id": 436, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5750:4:0", + "scope": 532, + "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7802,10 +7754,10 @@ "typeString": "bool" }, "typeName": { - "id": 438, + "id": 435, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5750:4:0", + "src": "5771:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7814,45 +7766,45 @@ "visibility": "internal" } ], - "src": "5749:6:0" + "src": "5770:6:0" }, - "scope": 582, - "src": "5669:926:0", + "scope": 579, + "src": "5690:926:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 895 + 892 ], "body": { - "id": 548, + "id": 545, "nodeType": "Block", - "src": "6905:30:0", + "src": "6926:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 544, + "id": 541, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6916:5:0", + "src": "6937:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 546, + "id": 543, "indexExpression": { - "id": 545, + "id": 542, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "6922:8:0", + "referencedDeclaration": 535, + "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7863,46 +7815,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6916:15:0", + "src": "6937:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 543, - "id": 547, + "functionReturnParameters": 540, + "id": 544, "nodeType": "Return", - "src": "6909:22:0" + "src": "6930:22:0" } ] }, "documentation": { - "id": 536, + "id": 533, "nodeType": "StructuredDocumentation", - "src": "6786:40:0", + "src": "6807:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 549, + "id": 546, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6837:12:0", + "nameLocation": "6858:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 539, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 535, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6858:8:0", + "nameLocation": "6879:8:0", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6850:16:0", + "scope": 546, + "src": "6871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7910,10 +7862,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 537, + "id": 534, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6850:7:0", + "src": "6871:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7922,66 +7874,66 @@ "visibility": "internal" } ], - "src": "6849:18:0" + "src": "6870:18:0" }, "returnParameters": { - "id": 543, + "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 542, + "id": 539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6891:12:0", + "scope": 546, + "src": "6912:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 541, + "id": 538, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 540, + "id": 537, "name": "Order", "nameLocations": [ - "6891:5:0" + "6912:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, - "src": "6891:5:0" + "referencedDeclaration": 831, + "src": "6912:5:0" }, - "referencedDeclaration": 834, - "src": "6891:5:0", + "referencedDeclaration": 831, + "src": "6912:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6890:14:0" + "src": "6911:14:0" }, - "scope": 582, - "src": "6828:107:0", + "scope": 579, + "src": "6849:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 886 + 883 ], "body": { - "id": 567, + "id": 564, "nodeType": "Block", - "src": "7055:71:0", + "src": "7076:71:0", "statements": [ { "condition": { @@ -7989,32 +7941,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 561, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 557, + "id": 554, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "7063:17:0", + "referencedDeclaration": 596, + "src": "7084:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 559, + "id": 556, "indexExpression": { - "id": 558, + "id": 555, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "7081:6:0", + "referencedDeclaration": 549, + "src": "7102:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8025,7 +7977,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7063:25:0", + "src": "7084:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8035,103 +7987,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 560, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7092:1:0", + "src": "7113:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7063:30:0", + "src": "7084:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 564, + "id": 561, "nodeType": "IfStatement", - "src": "7059:47:0", + "src": "7080:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 562, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7102:4:0", + "src": "7123:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 556, - "id": 563, + "functionReturnParameters": 553, + "id": 560, "nodeType": "Return", - "src": "7095:11:0" + "src": "7116:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 565, + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7117:5:0", + "src": "7138:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 556, - "id": 566, + "functionReturnParameters": 553, + "id": 563, "nodeType": "Return", - "src": "7110:12:0" + "src": "7131:12:0" } ] }, "documentation": { - "id": 550, + "id": 547, "nodeType": "StructuredDocumentation", - "src": "6938:44:0", + "src": "6959:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 568, + "id": 565, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "6993:16:0", + "nameLocation": "7014:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 553, + "id": 550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 549, "mutability": "mutable", "name": "_token", - "nameLocation": "7018:6:0", + "nameLocation": "7039:6:0", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7010:14:0", + "scope": 565, + "src": "7031:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8139,10 +8091,10 @@ "typeString": "address" }, "typeName": { - "id": 551, + "id": 548, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7010:7:0", + "src": "7031:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8152,21 +8104,21 @@ "visibility": "internal" } ], - "src": "7009:16:0" + "src": "7030:16:0" }, "returnParameters": { - "id": 556, + "id": 553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 555, + "id": 552, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7049:4:0", + "scope": 565, + "src": "7070:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8174,10 +8126,10 @@ "typeString": "bool" }, "typeName": { - "id": 554, + "id": 551, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7049:4:0", + "src": "7070:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8186,104 +8138,104 @@ "visibility": "internal" } ], - "src": "7048:6:0" + "src": "7069:6:0" }, - "scope": 582, - "src": "6984:142:0", + "scope": 579, + "src": "7005:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 903 + 900 ], "body": { - "id": 580, + "id": 577, "nodeType": "Block", - "src": "7237:44:0", + "src": "7258:44:0", "statements": [ { "expression": { "components": [ { - "id": 576, + "id": 573, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "7249:18:0", + "referencedDeclaration": 588, + "src": "7270:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 577, + "id": 574, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7269:7:0", + "referencedDeclaration": 586, + "src": "7290:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 578, + "id": 575, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7248:29:0", + "src": "7269:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 575, - "id": 579, + "functionReturnParameters": 572, + "id": 576, "nodeType": "Return", - "src": "7241:36:0" + "src": "7262:36:0" } ] }, "documentation": { - "id": 569, + "id": 566, "nodeType": "StructuredDocumentation", - "src": "7129:41:0", + "src": "7150:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 581, + "id": 578, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7181:13:0", + "nameLocation": "7202:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 567, "nodeType": "ParameterList", "parameters": [], - "src": "7194:2:0" + "src": "7215:2:0" }, "returnParameters": { - "id": 575, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 569, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7220:6:0", + "scope": 578, + "src": "7241:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8291,10 +8243,10 @@ "typeString": "uint64" }, "typeName": { - "id": 571, + "id": 568, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7220:6:0", + "src": "7241:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8304,13 +8256,13 @@ }, { "constant": false, - "id": 574, + "id": 571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7228:7:0", + "scope": 578, + "src": "7249:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8318,10 +8270,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7228:7:0", + "src": "7249:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8330,48 +8282,48 @@ "visibility": "internal" } ], - "src": "7219:17:0" + "src": "7240:17:0" }, - "scope": 582, - "src": "7172:109:0", + "scope": 579, + "src": "7193:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 583, - "src": "390:6893:0", + "scope": 580, + "src": "390:6914:0", "usedErrors": [] } ], - "src": "39:7245:0" + "src": "39:7266:0" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/Gateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Gateway": [ - 582 + 579 ], "GatewaySettingManager": [ - 766 + 763 ], "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 583, + "id": 580, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -8392,20 +8344,20 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 1512, + "scope": 580, + "sourceUnit": 1509, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "file": "./GatewaySettingManager.sol", "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 767, + "scope": 580, + "sourceUnit": 764, "src": "145:66:0", "symbolAliases": [ { @@ -8414,7 +8366,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "153:21:0", "typeDescriptions": {} }, @@ -8424,13 +8376,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "file": "./interfaces/IGateway.sol", "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 583, - "sourceUnit": 905, + "scope": 580, + "sourceUnit": 902, "src": "212:59:0", "symbolAliases": [ { @@ -8439,7 +8391,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "220:8:0", "typeDescriptions": {} }, @@ -8451,7 +8403,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "230:6:0", "typeDescriptions": {} }, @@ -8471,7 +8423,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 904, + "referencedDeclaration": 901, "src": "410:8:0" }, "id": 10, @@ -8486,7 +8438,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 766, + "referencedDeclaration": 763, "src": "420:21:0" }, "id": 12, @@ -8501,7 +8453,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1511, + "referencedDeclaration": 1508, "src": "443:19:0" }, "id": 14, @@ -8519,16 +8471,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 582, + "id": 579, "linearizedBaseContracts": [ - 582, - 1511, - 766, - 1081, - 1214, - 1892, - 1383, - 904 + 579, + 1508, + 763, + 1078, + 1211, + 1889, + 1380, + 901 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -8596,7 +8548,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 582, + "scope": 579, "src": "466:73:0", "visibility": "public" }, @@ -8607,12 +8559,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -8632,7 +8584,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -8647,13 +8599,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -8667,7 +8619,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -8717,7 +8669,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 582, + "scope": 579, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -8777,7 +8729,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1364, + "referencedDeclaration": 1361, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8831,7 +8783,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 582, + "scope": 579, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -8855,7 +8807,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, + "referencedDeclaration": 586, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8899,7 +8851,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, + "referencedDeclaration": 998, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8935,7 +8887,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1415, + "referencedDeclaration": 1412, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8985,7 +8937,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1285, + "referencedDeclaration": 1282, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -9007,7 +8959,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 582, + "scope": 579, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -9066,7 +9018,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9183,7 +9135,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, + "referencedDeclaration": 1486, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9233,7 +9185,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -9255,7 +9207,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 582, + "scope": 579, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -9276,7 +9228,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1505, + "referencedDeclaration": 1502, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9326,7 +9278,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -9348,7 +9300,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 582, + "scope": 579, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -9356,12 +9308,12 @@ }, { "baseFunctions": [ - 854 + 851 ], "body": { - "id": 217, + "id": 212, "nodeType": "Block", - "src": "1945:1133:0", + "src": "1945:1095:0", "statements": [ { "expression": { @@ -9454,7 +9406,7 @@ "name": "_handler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 274, + "referencedDeclaration": 269, "src": "1979:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -9692,7 +9644,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } } @@ -9700,7 +9652,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$582", + "typeIdentifier": "t_contract$_Gateway_$579", "typeString": "contract Gateway" } ], @@ -9823,10 +9775,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, @@ -9842,7 +9794,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, @@ -9854,7 +9806,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2556, + "referencedDeclaration": 2553, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -10168,7 +10120,7 @@ "name": "_protocolFee", "nameLocation": "2503:12:0", "nodeType": "VariableDeclaration", - "scope": 217, + "scope": 212, "src": "2495:20:0", "stateVariable": false, "storageLocation": "default", @@ -10189,13 +10141,13 @@ "visibility": "internal" } ], - "id": 177, + "id": 174, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -10231,7 +10183,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -10261,100 +10213,54 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 172, - "name": "MAX_BPS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2552:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 173, - "name": "protocolFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2562:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2552:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 175, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2551:30:0", + "id": 172, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2518:63:0", + "src": "2518:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2495:86:0" + "src": "2495:63:0" }, { "expression": { - "id": 199, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 178, + "id": 175, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2585:5:0", + "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 180, + "id": 177, "indexExpression": { - "id": 179, + "id": 176, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2591:7:0", + "src": "2568:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10365,9 +10271,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2585:14:0", + "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10377,74 +10283,74 @@ "arguments": [ { "expression": { - "id": 182, + "id": 179, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2621:3:0", + "src": "2598:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2625:6:0", + "memberLocation": "2602:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2621:10:0", + "src": "2598:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 184, + "id": 181, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2643:6:0", + "src": "2620:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 185, + "id": 182, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99, - "src": "2674:19:0", + "src": "2651:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 186, + "id": 183, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, - "src": "2709:10:0", + "src": "2686:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 187, + "id": 184, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "2737:12:0", + "src": "2714:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10452,14 +10358,14 @@ }, { "hexValue": "66616c7365", - "id": 188, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:5:0", + "src": "2744:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10468,14 +10374,14 @@ }, { "hexValue": "66616c7365", - "id": 189, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2789:5:0", + "src": "2766:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10483,12 +10389,12 @@ "value": "false" }, { - "id": 190, + "id": 187, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, - "src": "2814:14:0", + "src": "2791:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10497,12 +10403,12 @@ { "arguments": [ { - "id": 193, + "id": 190, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "2852:7:0", + "referencedDeclaration": 586, + "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10516,26 +10422,26 @@ "typeString": "uint256" } ], - "id": 192, + "id": 189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 191, + "id": 188, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2845:6:0", + "src": "2822:6:0", "typeDescriptions": {} } }, - "id": 194, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -10544,7 +10450,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2845:15:0", + "src": "2822:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -10552,42 +10458,12 @@ } }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 195, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2873:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 196, - "name": "_protocolFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2883:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2873:22:0", + "id": 192, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2850:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10637,34 +10513,34 @@ "typeString": "uint256" } ], - "id": 181, + "id": 178, "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "2602:5:0", + "referencedDeclaration": 831, + "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$834_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, - "id": 198, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2613:6:0", - "2636:5:0", - "2654:18:0", - "2698:9:0", - "2724:11:0", - "2754:11:0", - "2777:10:0", - "2799:13:0", - "2833:10:0", - "2865:6:0" + "2590:6:0", + "2613:5:0", + "2631:18:0", + "2675:9:0", + "2701:11:0", + "2731:11:0", + "2754:10:0", + "2776:13:0", + "2810:10:0", + "2842:6:0" ], "names": [ "sender", @@ -10679,22 +10555,22 @@ "amount" ], "nodeType": "FunctionCall", - "src": "2602:298:0", + "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order memory" } }, - "src": "2585:315:0", + "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 200, + "id": 195, "nodeType": "ExpressionStatement", - "src": "2585:315:0" + "src": "2562:300:0" }, { "eventCall": { @@ -10702,25 +10578,25 @@ { "expression": { "baseExpression": { - "id": 202, + "id": 197, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2957:5:0", + "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 204, + "id": 199, "indexExpression": { - "id": 203, + "id": 198, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "2963:7:0", + "src": "2925:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10731,34 +10607,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2957:14:0", + "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 205, + "id": 200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2972:6:0", + "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "2957:21:0", + "referencedDeclaration": 812, + "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 206, + "id": 201, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 93, - "src": "2983:6:0", + "src": "2945:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10767,25 +10643,25 @@ { "expression": { "baseExpression": { - "id": 207, + "id": 202, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "2994:5:0", + "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 209, + "id": 204, "indexExpression": { - "id": 208, + "id": 203, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3000:7:0", + "src": "2962:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10796,70 +10672,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2994:14:0", + "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 210, + "id": 205, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3009:6:0", + "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "2994:21:0", + "referencedDeclaration": 830, + "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 211, + "id": 206, "name": "_protocolFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 167, - "src": "3020:12:0", + "src": "2982:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 212, + "id": 207, "name": "orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 110, - "src": "3037:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 213, + "id": 208, "name": "_rate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, - "src": "3049:5:0", + "src": "3011:5:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, { - "id": 214, + "id": 209, "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, - "src": "3059:11:0", + "src": "3021:11:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -10897,18 +10773,18 @@ "typeString": "string calldata" } ], - "id": 201, + "id": 196, "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "2940:12:0", + "referencedDeclaration": 785, + "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes32,uint256,string memory)" } }, - "id": 215, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,16 +10793,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2940:134:0", + "src": "2902:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 216, + "id": 211, "nodeType": "EmitStatement", - "src": "2935:139:0" + "src": "2897:139:0" } ] }, @@ -10937,7 +10813,7 @@ "text": "@dev See {createOrder-IGateway}. " }, "functionSelector": "809804f7", - "id": 218, + "id": 213, "implemented": true, "kind": "function", "modifiers": [ @@ -10951,7 +10827,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -10972,7 +10848,7 @@ "name": "_token", "nameLocation": "1741:6:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1733:14:0", "stateVariable": false, "storageLocation": "default", @@ -11000,7 +10876,7 @@ "name": "_amount", "nameLocation": "1759:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1751:15:0", "stateVariable": false, "storageLocation": "default", @@ -11027,7 +10903,7 @@ "name": "_rate", "nameLocation": "1777:5:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1770:12:0", "stateVariable": false, "storageLocation": "default", @@ -11054,7 +10930,7 @@ "name": "_senderFeeRecipient", "nameLocation": "1794:19:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1786:27:0", "stateVariable": false, "storageLocation": "default", @@ -11082,7 +10958,7 @@ "name": "_senderFee", "nameLocation": "1825:10:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1817:18:0", "stateVariable": false, "storageLocation": "default", @@ -11109,7 +10985,7 @@ "name": "_refundAddress", "nameLocation": "1847:14:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1839:22:0", "stateVariable": false, "storageLocation": "default", @@ -11137,7 +11013,7 @@ "name": "messageHash", "nameLocation": "1881:11:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1865:27:0", "stateVariable": false, "storageLocation": "calldata", @@ -11171,7 +11047,7 @@ "name": "orderId", "nameLocation": "1936:7:0", "nodeType": "VariableDeclaration", - "scope": 218, + "scope": 213, "src": "1928:15:0", "stateVariable": false, "storageLocation": "default", @@ -11194,17 +11070,17 @@ ], "src": "1927:17:0" }, - "scope": 582, - "src": "1709:1369:0", + "scope": 579, + "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 273, + "id": 268, "nodeType": "Block", - "src": "3622:276:0", + "src": "3584:276:0", "statements": [ { "expression": { @@ -11214,32 +11090,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 237, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 233, + "id": 228, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "3634:17:0", + "referencedDeclaration": 596, + "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 235, + "id": 230, "indexExpression": { - "id": 234, + "id": 229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3652:6:0", + "referencedDeclaration": 216, + "src": "3614:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11250,7 +11126,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3634:25:0", + "src": "3596:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11260,21 +11136,21 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 236, + "id": 231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:1:0", + "src": "3625:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3634:30:0", + "src": "3596:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11282,14 +11158,14 @@ }, { "hexValue": "546f6b656e4e6f74537570706f72746564", - "id": 238, + "id": 233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3666:19:0", + "src": "3628:19:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2f8e8f0a3132d85392dd42596f134395b200d03cc73cebaef0c903d898657e1", "typeString": "literal_string \"TokenNotSupported\"" @@ -11308,7 +11184,7 @@ "typeString": "literal_string \"TokenNotSupported\"" } ], - "id": 232, + "id": 227, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11316,13 +11192,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3626:7:0", + "src": "3588:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 239, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -11331,16 +11207,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3626:60:0", + "src": "3588:60:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 240, + "id": 235, "nodeType": "ExpressionStatement", - "src": "3626:60:0" + "src": "3588:60:0" }, { "expression": { @@ -11350,18 +11226,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 244, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 242, + "id": 237, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "3698:7:0", + "referencedDeclaration": 218, + "src": "3660:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11371,21 +11247,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 243, + "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:1:0", + "src": "3671:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3698:12:0", + "src": "3660:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11393,14 +11269,14 @@ }, { "hexValue": "416d6f756e7449735a65726f", - "id": 245, + "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:14:0", + "src": "3674:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_41a3c7da6a405d0b582130b233ab9373122491f5044da88c4622af2417f2b5d2", "typeString": "literal_string \"AmountIsZero\"" @@ -11419,7 +11295,7 @@ "typeString": "literal_string \"AmountIsZero\"" } ], - "id": 241, + "id": 236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11427,13 +11303,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3690:7:0", + "src": "3652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 246, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -11442,16 +11318,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3690:37:0", + "src": "3652:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 247, + "id": 242, "nodeType": "ExpressionStatement", - "src": "3690:37:0" + "src": "3652:37:0" }, { "expression": { @@ -11461,18 +11337,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 254, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 249, + "id": 244, "name": "_refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3739:14:0", + "referencedDeclaration": 220, + "src": "3701:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11484,14 +11360,14 @@ "arguments": [ { "hexValue": "30", - "id": 252, + "id": 247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3765:1:0", + "src": "3727:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11506,26 +11382,26 @@ "typeString": "int_const 0" } ], - "id": 251, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 250, + "id": 245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3757:7:0", + "src": "3719:7:0", "typeDescriptions": {} } }, - "id": 253, + "id": 248, "isConstant": false, "isLValue": false, "isPure": true, @@ -11534,14 +11410,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3757:10:0", + "src": "3719:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3739:28:0", + "src": "3701:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11549,14 +11425,14 @@ }, { "hexValue": "5468726f775a65726f41646472657373", - "id": 255, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3769:18:0", + "src": "3731:18:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c69ddfb7ac12bc88a1972db6046dbf646efc1690dd81423d8eb86a59fbc59dd7", "typeString": "literal_string \"ThrowZeroAddress\"" @@ -11575,7 +11451,7 @@ "typeString": "literal_string \"ThrowZeroAddress\"" } ], - "id": 248, + "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11583,13 +11459,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3731:7:0", + "src": "3693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 256, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -11598,16 +11474,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3731:57:0", + "src": "3693:57:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 257, + "id": 252, "nodeType": "ExpressionStatement", - "src": "3731:57:0" + "src": "3693:57:0" }, { "condition": { @@ -11615,18 +11491,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 258, + "id": 253, "name": "_senderFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "3797:10:0", + "referencedDeclaration": 224, + "src": "3759:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11636,33 +11512,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 259, + "id": 254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3811:1:0", + "src": "3773:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3797:15:0", + "src": "3759:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 272, + "id": 267, "nodeType": "IfStatement", - "src": "3793:102:0", + "src": "3755:102:0", "trueBody": { - "id": 271, + "id": 266, "nodeType": "Block", - "src": "3814:81:0", + "src": "3776:81:0", "statements": [ { "expression": { @@ -11672,18 +11548,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 262, + "id": 257, "name": "_senderFeeRecipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3827:19:0", + "referencedDeclaration": 222, + "src": "3789:19:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11695,14 +11571,14 @@ "arguments": [ { "hexValue": "30", - "id": 265, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:1:0", + "src": "3820:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11717,26 +11593,26 @@ "typeString": "int_const 0" } ], - "id": 264, + "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 263, + "id": 258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3850:7:0", + "src": "3812:7:0", "typeDescriptions": {} } }, - "id": 266, + "id": 261, "isConstant": false, "isLValue": false, "isPure": true, @@ -11745,14 +11621,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3850:10:0", + "src": "3812:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3827:33:0", + "src": "3789:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11760,14 +11636,14 @@ }, { "hexValue": "496e76616c696453656e646572466565526563697069656e74", - "id": 268, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3862:27:0", + "src": "3824:27:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffb69afb32cdb1c7026bbd5bf2be167eb8b698d96a6fa0abd73b70c43ca464b8", "typeString": "literal_string \"InvalidSenderFeeRecipient\"" @@ -11786,7 +11662,7 @@ "typeString": "literal_string \"InvalidSenderFeeRecipient\"" } ], - "id": 261, + "id": 256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11794,13 +11670,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3819:7:0", + "src": "3781:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 269, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -11809,16 +11685,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3819:71:0", + "src": "3781:71:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 270, + "id": 265, "nodeType": "ExpressionStatement", - "src": "3819:71:0" + "src": "3781:71:0" } ] } @@ -11826,31 +11702,31 @@ ] }, "documentation": { - "id": 219, + "id": 214, "nodeType": "StructuredDocumentation", - "src": "3081:388:0", + "src": "3043:388:0", "text": " @dev Internal function to handle order creation.\n @param _token The address of the token being traded.\n @param _amount The amount of tokens being traded.\n @param _refundAddress The address to refund the tokens in case of cancellation.\n @param _senderFeeRecipient The address of the recipient for the sender fee.\n @param _senderFee The amount of the sender fee." }, - "id": 274, + "id": 269, "implemented": true, "kind": "function", "modifiers": [], "name": "_handler", - "nameLocation": "3480:8:0", + "nameLocation": "3442:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 221, + "id": 216, "mutability": "mutable", "name": "_token", - "nameLocation": "3500:6:0", + "nameLocation": "3462:6:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3492:14:0", + "scope": 269, + "src": "3454:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11858,10 +11734,10 @@ "typeString": "address" }, "typeName": { - "id": 220, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3492:7:0", + "src": "3454:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11872,13 +11748,13 @@ }, { "constant": false, - "id": 223, + "id": 218, "mutability": "mutable", "name": "_amount", - "nameLocation": "3518:7:0", + "nameLocation": "3480:7:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3510:15:0", + "scope": 269, + "src": "3472:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11886,10 +11762,10 @@ "typeString": "uint256" }, "typeName": { - "id": 222, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3510:7:0", + "src": "3472:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11899,13 +11775,13 @@ }, { "constant": false, - "id": 225, + "id": 220, "mutability": "mutable", "name": "_refundAddress", - "nameLocation": "3537:14:0", + "nameLocation": "3499:14:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3529:22:0", + "scope": 269, + "src": "3491:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11913,10 +11789,10 @@ "typeString": "address" }, "typeName": { - "id": 224, + "id": 219, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3529:7:0", + "src": "3491:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11927,13 +11803,13 @@ }, { "constant": false, - "id": 227, + "id": 222, "mutability": "mutable", "name": "_senderFeeRecipient", - "nameLocation": "3563:19:0", + "nameLocation": "3525:19:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3555:27:0", + "scope": 269, + "src": "3517:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11941,10 +11817,10 @@ "typeString": "address" }, "typeName": { - "id": 226, + "id": 221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3555:7:0", + "src": "3517:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11955,13 +11831,13 @@ }, { "constant": false, - "id": 229, + "id": 224, "mutability": "mutable", "name": "_senderFee", - "nameLocation": "3594:10:0", + "nameLocation": "3556:10:0", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3586:18:0", + "scope": 269, + "src": "3548:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11969,10 +11845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 228, + "id": 223, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3586:7:0", + "src": "3548:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11981,34 +11857,34 @@ "visibility": "internal" } ], - "src": "3488:119:0" + "src": "3450:119:0" }, "returnParameters": { - "id": 231, + "id": 226, "nodeType": "ParameterList", "parameters": [], - "src": "3622:0:0" + "src": "3584:0:0" }, - "scope": 582, - "src": "3471:427:0", + "scope": 579, + "src": "3433:427:0", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ - 868 + 865 ], "body": { - "id": 428, + "id": 425, "nodeType": "Block", - "src": "4293:1337:0", + "src": "4255:1396:0", "statements": [ { "expression": { "arguments": [ { - "id": 295, + "id": 290, "isConstant": false, "isLValue": false, "isPure": false, @@ -12016,29 +11892,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4356:28:0", + "src": "4318:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 291, + "id": 286, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4357:5:0", + "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 293, + "id": 288, "indexExpression": { - "id": 292, + "id": 287, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4363:8:0", + "referencedDeclaration": 274, + "src": "4325:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12049,22 +11925,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4357:15:0", + "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 294, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4373:11:0", + "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4357:27:0", + "referencedDeclaration": 822, + "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12077,14 +11953,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 296, + "id": 291, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4386:16:0", + "src": "4348:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -12103,7 +11979,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 290, + "id": 285, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12111,13 +11987,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4348:7:0", + "src": "4310:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 297, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -12126,22 +12002,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4348:55:0", + "src": "4310:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 298, + "id": 293, "nodeType": "ExpressionStatement", - "src": "4348:55:0" + "src": "4310:55:0" }, { "expression": { "arguments": [ { - "id": 304, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -12149,29 +12025,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4415:27:0", + "src": "4377:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 300, + "id": 295, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4416:5:0", + "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 302, + "id": 297, "indexExpression": { - "id": 301, + "id": 296, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4422:8:0", + "referencedDeclaration": 274, + "src": "4384:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12182,22 +12058,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4416:15:0", + "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 303, + "id": 298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4432:10:0", + "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "4416:26:0", + "referencedDeclaration": 824, + "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12210,14 +12086,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 305, + "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4444:15:0", + "src": "4406:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -12236,7 +12112,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 299, + "id": 294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12244,13 +12120,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4407:7:0", + "src": "4369:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 301, "isConstant": false, "isLValue": false, "isPure": false, @@ -12259,31 +12135,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4407:53:0", + "src": "4369:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 302, "nodeType": "ExpressionStatement", - "src": "4407:53:0" + "src": "4369:53:0" }, { "assignments": [ - 309 + 304 ], "declarations": [ { "constant": false, - "id": 309, + "id": 304, "mutability": "mutable", "name": "token", - "nameLocation": "4505:5:0", + "nameLocation": "4467:5:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "4497:13:0", + "scope": 425, + "src": "4459:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12291,10 +12167,10 @@ "typeString": "address" }, "typeName": { - "id": 308, + "id": 303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4497:7:0", + "src": "4459:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12304,29 +12180,29 @@ "visibility": "internal" } ], - "id": 314, + "id": 309, "initialValue": { "expression": { "baseExpression": { - "id": 310, + "id": 305, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4513:5:0", + "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 312, + "id": 307, "indexExpression": { - "id": 311, + "id": 306, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4519:8:0", + "referencedDeclaration": 274, + "src": "4481:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12337,33 +12213,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4513:15:0", + "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 313, + "id": 308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4529:5:0", + "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4513:21:0", + "referencedDeclaration": 814, + "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4497:37:0" + "src": "4459:37:0" }, { "expression": { - "id": 320, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, @@ -12371,25 +12247,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 315, + "id": 310, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4601:5:0", + "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 317, + "id": 312, "indexExpression": { - "id": 316, + "id": 311, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4607:8:0", + "referencedDeclaration": 274, + "src": "4569:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12400,22 +12276,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4601:15:0", + "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 318, + "id": 313, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4617:10:0", + "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4601:26:0", + "referencedDeclaration": 828, + "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -12424,26 +12300,26 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 319, + "id": 314, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4631:14:0", + "referencedDeclaration": 278, + "src": "4593:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "4601:44:0", + "src": "4563:44:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 321, + "id": 316, "nodeType": "ExpressionStatement", - "src": "4601:44:0" + "src": "4563:44:0" }, { "condition": { @@ -12451,7 +12327,7 @@ "typeIdentifier": "t_uint96", "typeString": "uint96" }, - "id": 327, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -12459,25 +12335,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 322, + "id": 317, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4654:5:0", + "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 324, + "id": 319, "indexExpression": { - "id": 323, + "id": 318, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4660:8:0", + "referencedDeclaration": 274, + "src": "4622:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12488,22 +12364,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4654:15:0", + "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 325, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4670:10:0", + "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "4654:26:0", + "referencedDeclaration": 828, + "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -12513,37 +12389,37 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 326, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4684:1:0", + "src": "4646:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4654:31:0", + "src": "4616:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 391, + "id": 367, "nodeType": "IfStatement", - "src": "4650:604:0", + "src": "4612:453:0", "trueBody": { - "id": 390, + "id": 366, "nodeType": "Block", - "src": "4687:567:0", + "src": "4649:416:0", "statements": [ { "expression": { - "id": 333, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, @@ -12551,25 +12427,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 328, + "id": 323, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4737:5:0", + "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 330, + "id": 325, "indexExpression": { - "id": 329, + "id": 324, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4743:8:0", + "referencedDeclaration": 274, + "src": "4705:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12580,22 +12456,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4737:15:0", + "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 331, + "id": 326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4753:11:0", + "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "4737:27:0", + "referencedDeclaration": 822, + "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12605,29 +12481,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 332, + "id": 327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4767:4:0", + "src": "4729:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4737:34:0", + "src": "4699:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 334, + "id": 329, "nodeType": "ExpressionStatement", - "src": "4737:34:0" + "src": "4699:34:0" }, { "condition": { @@ -12635,7 +12511,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 340, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -12643,25 +12519,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 335, + "id": 330, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4781:5:0", + "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 337, + "id": 332, "indexExpression": { - "id": 336, + "id": 331, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4787:8:0", + "referencedDeclaration": 274, + "src": "4749:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12672,22 +12548,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4781:15:0", + "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 338, + "id": 333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4797:9:0", + "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4781:25:0", + "referencedDeclaration": 818, + "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12697,33 +12573,33 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 339, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4810:1:0", + "src": "4772:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4781:30:0", + "src": "4743:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 370, + "id": 365, "nodeType": "IfStatement", - "src": "4777:321:0", + "src": "4739:321:0", "trueBody": { - "id": 369, + "id": 364, "nodeType": "Block", - "src": "4813:285:0", + "src": "4775:285:0", "statements": [ { "expression": { @@ -12731,25 +12607,25 @@ { "expression": { "baseExpression": { - "id": 348, + "id": 343, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4891:5:0", + "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 350, + "id": 345, "indexExpression": { - "id": 349, + "id": 344, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4897:8:0", + "referencedDeclaration": 274, + "src": "4859:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12760,22 +12636,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4891:15:0", + "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 351, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4907:18:0", + "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "4891:34:0", + "referencedDeclaration": 816, + "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12784,25 +12660,25 @@ { "expression": { "baseExpression": { - "id": 352, + "id": 347, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4932:5:0", + "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 354, + "id": 349, "indexExpression": { - "id": 353, + "id": 348, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4938:8:0", + "referencedDeclaration": 274, + "src": "4900:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12813,22 +12689,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4932:15:0", + "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 355, + "id": 350, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4948:9:0", + "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "4932:25:0", + "referencedDeclaration": 818, + "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12851,25 +12727,25 @@ { "expression": { "baseExpression": { - "id": 342, + "id": 337, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "4853:5:0", + "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 344, + "id": 339, "indexExpression": { - "id": 343, + "id": 338, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4859:8:0", + "referencedDeclaration": 274, + "src": "4821:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12880,22 +12756,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4853:15:0", + "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 345, + "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4869:5:0", + "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "4853:21:0", + "referencedDeclaration": 814, + "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12909,18 +12785,18 @@ "typeString": "address" } ], - "id": 341, + "id": 336, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "4846:6:0", + "referencedDeclaration": 2554, + "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 346, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -12929,29 +12805,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:29:0", + "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 347, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4876:8:0", + "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "4846:38:0", + "referencedDeclaration": 2521, + "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 356, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -12960,16 +12836,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4846:117:0", + "src": "4808:117:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 357, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4846:117:0" + "src": "4808:117:0" }, { "eventCall": { @@ -12977,25 +12853,25 @@ { "expression": { "baseExpression": { - "id": 359, + "id": 354, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5020:5:0", + "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 361, + "id": 356, "indexExpression": { - "id": 360, + "id": 355, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5026:8:0", + "referencedDeclaration": 274, + "src": "4988:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13006,22 +12882,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5020:15:0", + "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 362, + "id": 357, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5036:18:0", + "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 819, - "src": "5020:34:0", + "referencedDeclaration": 816, + "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13030,25 +12906,25 @@ { "expression": { "baseExpression": { - "id": 363, + "id": 358, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5061:5:0", + "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 365, + "id": 360, "indexExpression": { - "id": 364, + "id": 359, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5067:8:0", + "referencedDeclaration": 274, + "src": "5029:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13059,22 +12935,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5061:15:0", + "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 366, + "id": 361, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5077:9:0", + "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "5061:25:0", + "referencedDeclaration": 818, + "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13092,18 +12968,18 @@ "typeString": "uint256" } ], - "id": 358, + "id": 353, "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "4993:20:0", + "referencedDeclaration": 810, + "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 367, + "id": 362, "isConstant": false, "isLValue": false, "isPure": false, @@ -13112,27 +12988,75 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4993:99:0", + "src": "4955:99:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 368, + "id": 363, "nodeType": "EmitStatement", - "src": "4988:104:0" + "src": "4950:104:0" } ] } + } + ] + } + }, + { + "assignments": [ + 369 + ], + "declarations": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "liquidityProviderAmount", + "nameLocation": "5113:23:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "5105:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "condition": { + "typeName": { + "id": 368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 379, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 376, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -13140,25 +13064,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 371, + "id": 370, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5107:5:0", + "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 373, + "id": 372, "indexExpression": { - "id": 372, + "id": 371, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5113:8:0", + "referencedDeclaration": 274, + "src": "5146:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13169,243 +13093,182 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5107:15:0", + "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 374, + "id": 373, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5123:11:0", - "memberName": "protocolFee", + "memberLocation": "5156:6:0", + "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5107:27:0", + "referencedDeclaration": 830, + "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "*", "rightExpression": { - "hexValue": "30", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5138:1:0", + "id": 374, + "name": "_settlePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "5165:14:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } }, - "src": "5107:32:0", + "src": "5140:39:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 389, - "nodeType": "IfStatement", - "src": "5103:147:0", - "trueBody": { - "id": 388, - "nodeType": "Block", - "src": "5141:109:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 381, - "name": "treasuryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "5199:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "id": 382, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5216:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 384, - "indexExpression": { - "id": 383, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5222:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5216:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5232:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5216:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 378, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5183:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 377, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", - "typeString": "contract IERC20" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5190:8:0", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5176:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5176:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "5176:68:0" - } - ] } + ], + "id": 376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5139:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 377, + "name": "MAX_BPS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "5183:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5139:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5105:85:0" + }, + { + "expression": { + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 380, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5194:5:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + } + }, + "id": 382, + "indexExpression": { + "id": 381, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 274, + "src": "5200:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5194:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$831_storage", + "typeString": "struct IGateway.Order storage ref" + } + }, + "id": 383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5210:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "5194:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 384, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5220:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 386, + "nodeType": "ExpressionStatement", + "src": "5194:49:0" }, { "assignments": [ - 393 + 388 ], "declarations": [ { "constant": false, - "id": 393, + "id": 388, "mutability": "mutable", - "name": "liquidityProviderAmount", - "nameLocation": "5302:23:0", + "name": "protocolFee", + "nameLocation": "5256:11:0", "nodeType": "VariableDeclaration", - "scope": 428, - "src": "5294:31:0", + "scope": 425, + "src": "5248:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13413,10 +13276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5294:7:0", + "src": "5248:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13425,13 +13288,13 @@ "visibility": "internal" } ], - "id": 403, + "id": 395, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 402, + "id": 394, "isConstant": false, "isLValue": false, "isPure": false, @@ -13443,59 +13306,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 399, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "expression": { - "baseExpression": { - "id": 394, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5329:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 396, - "indexExpression": { - "id": 395, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5335:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5329:15:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" - } - }, - "id": 397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5345:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5329:22:0", + "id": 389, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5271:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13504,32 +13326,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 398, - "name": "_settlePercent", + "id": 390, + "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5354:14:0", + "referencedDeclaration": 588, + "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "5329:39:0", + "src": "5271:44:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 392, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5328:41:0", + "src": "5270:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13538,132 +13360,214 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 401, + "id": 393, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "5372:7:0", + "referencedDeclaration": 586, + "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5328:51:0", + "src": "5270:56:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5294:85:0" + "src": "5248:78:0" }, { "expression": { - "id": 409, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "id": 396, + "name": "liquidityProviderAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "5330:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 397, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5357:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5330:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5330:38:0" + }, + { + "expression": { + "arguments": [ + { + "id": 404, + "name": "treasuryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5423:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 405, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "5440:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { - "baseExpression": { - "id": 404, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "5383:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" + "arguments": [ + { + "id": 401, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "5407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "id": 406, - "indexExpression": { - "id": 405, - "name": "_orderId", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 400, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5389:8:0", + "referencedDeclaration": 2554, + "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeString": "type(contract IERC20)" } }, + "id": 402, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5383:15:0", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:13:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_contract$_IERC20_$2554", + "typeString": "contract IERC20" } }, - "id": 407, + "id": 403, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberLocation": "5399:6:0", - "memberName": "amount", + "lValueRequested": false, + "memberLocation": "5414:8:0", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "5383:22:0", + "referencedDeclaration": 2521, + "src": "5400:22:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 408, - "name": "liquidityProviderAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5409:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "src": "5383:49:0", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5400:52:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 410, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5383:49:0" + "src": "5400:52:0" }, { "expression": { "arguments": [ { - "id": 415, + "id": 412, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5459:18:0", + "referencedDeclaration": 276, + "src": "5480:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 416, + "id": 413, "name": "liquidityProviderAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5479:23:0", + "referencedDeclaration": 369, + "src": "5500:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13684,12 +13588,12 @@ "expression": { "arguments": [ { - "id": 412, + "id": 409, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "5443:5:0", + "referencedDeclaration": 304, + "src": "5464:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13703,18 +13607,18 @@ "typeString": "address" } ], - "id": 411, + "id": 408, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "5436:6:0", + "referencedDeclaration": 2554, + "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 413, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, @@ -13723,29 +13627,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:13:0", + "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 414, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5450:8:0", + "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "5436:22:0", + "referencedDeclaration": 2521, + "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 417, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -13754,63 +13658,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5436:67:0", + "src": "5457:67:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 418, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5436:67:0" + "src": "5457:67:0" }, { "eventCall": { "arguments": [ { - "id": 420, + "id": 417, "name": "_splitOrderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5550:13:0", + "referencedDeclaration": 272, + "src": "5571:13:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 421, + "id": 418, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5565:8:0", + "referencedDeclaration": 274, + "src": "5586:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 422, + "id": 419, "name": "_liquidityProvider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "5575:18:0", + "referencedDeclaration": 276, + "src": "5596:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 423, + "id": 420, "name": "_settlePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "5595:14:0", + "referencedDeclaration": 278, + "src": "5616:14:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13836,18 +13740,18 @@ "typeString": "uint64" } ], - "id": 419, + "id": 416, "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "5537:12:0", + "referencedDeclaration": 796, + "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint96)" } }, - "id": 424, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -13856,85 +13760,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5537:73:0", + "src": "5558:73:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 425, + "id": 422, "nodeType": "EmitStatement", - "src": "5532:78:0" + "src": "5553:78:0" }, { "expression": { "hexValue": "74727565", - "id": 426, + "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:4:0", + "src": "5643:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 289, - "id": 427, + "functionReturnParameters": 284, + "id": 424, "nodeType": "Return", - "src": "5615:11:0" + "src": "5636:11:0" } ] }, "documentation": { - "id": 275, + "id": 270, "nodeType": "StructuredDocumentation", - "src": "4099:34:0", + "src": "4061:34:0", "text": "@dev See {settle-IGateway}. " }, "functionSelector": "f22ee704", - "id": 429, + "id": 426, "implemented": true, "kind": "function", "modifiers": [ { - "id": 286, + "id": 281, "kind": "modifierInvocation", "modifierName": { - "id": 285, + "id": 280, "name": "onlyAggregator", "nameLocations": [ - "4263:14:0" + "4225:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "4263:14:0" + "src": "4225:14:0" }, "nodeType": "ModifierInvocation", - "src": "4263:14:0" + "src": "4225:14:0" } ], "name": "settle", - "nameLocation": "4144:6:0", + "nameLocation": "4106:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 284, + "id": 279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 272, "mutability": "mutable", "name": "_splitOrderId", - "nameLocation": "4162:13:0", + "nameLocation": "4124:13:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4154:21:0", + "scope": 426, + "src": "4116:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13942,10 +13846,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 276, + "id": 271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4154:7:0", + "src": "4116:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13955,13 +13859,13 @@ }, { "constant": false, - "id": 279, + "id": 274, "mutability": "mutable", "name": "_orderId", - "nameLocation": "4187:8:0", + "nameLocation": "4149:8:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4179:16:0", + "scope": 426, + "src": "4141:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13969,10 +13873,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 278, + "id": 273, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4179:7:0", + "src": "4141:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13982,13 +13886,13 @@ }, { "constant": false, - "id": 281, + "id": 276, "mutability": "mutable", "name": "_liquidityProvider", - "nameLocation": "4207:18:0", + "nameLocation": "4169:18:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4199:26:0", + "scope": 426, + "src": "4161:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13996,10 +13900,10 @@ "typeString": "address" }, "typeName": { - "id": 280, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4199:7:0", + "src": "4161:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14010,13 +13914,13 @@ }, { "constant": false, - "id": 283, + "id": 278, "mutability": "mutable", "name": "_settlePercent", - "nameLocation": "4236:14:0", + "nameLocation": "4198:14:0", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4229:21:0", + "scope": 426, + "src": "4191:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14024,10 +13928,10 @@ "typeString": "uint64" }, "typeName": { - "id": 282, + "id": 277, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4229:6:0", + "src": "4191:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -14036,21 +13940,21 @@ "visibility": "internal" } ], - "src": "4150:103:0" + "src": "4112:103:0" }, "returnParameters": { - "id": 289, + "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 288, + "id": 283, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 429, - "src": "4287:4:0", + "scope": 426, + "src": "4249:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14058,10 +13962,10 @@ "typeString": "bool" }, "typeName": { - "id": 287, + "id": 282, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4287:4:0", + "src": "4249:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14070,28 +13974,28 @@ "visibility": "internal" } ], - "src": "4286:6:0" + "src": "4248:6:0" }, - "scope": 582, - "src": "4135:1495:0", + "scope": 579, + "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 878 + 875 ], "body": { - "id": 534, + "id": 531, "nodeType": "Block", - "src": "5756:839:0", + "src": "5777:839:0", "statements": [ { "expression": { "arguments": [ { - "id": 446, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -14099,29 +14003,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5819:28:0", + "src": "5840:28:0", "subExpression": { "expression": { "baseExpression": { - "id": 442, + "id": 439, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5820:5:0", + "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 444, + "id": 441, "indexExpression": { - "id": 443, + "id": 440, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5826:8:0", + "referencedDeclaration": 431, + "src": "5847:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14132,22 +14036,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5820:15:0", + "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 445, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5836:11:0", + "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 825, - "src": "5820:27:0", + "referencedDeclaration": 822, + "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14160,14 +14064,14 @@ }, { "hexValue": "4f7264657246756c66696c6c6564", - "id": 447, + "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5849:16:0", + "src": "5870:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84045048554d058b8a53b78300214112125a1eccddd735f23a805c1c4be2d6f5", "typeString": "literal_string \"OrderFulfilled\"" @@ -14186,7 +14090,7 @@ "typeString": "literal_string \"OrderFulfilled\"" } ], - "id": 441, + "id": 438, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14194,13 +14098,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5811:7:0", + "src": "5832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 448, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -14209,22 +14113,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5811:55:0", + "src": "5832:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 449, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5811:55:0" + "src": "5832:55:0" }, { "expression": { "arguments": [ { - "id": 455, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -14232,29 +14136,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5878:27:0", + "src": "5899:27:0", "subExpression": { "expression": { "baseExpression": { - "id": 451, + "id": 448, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5879:5:0", + "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 453, + "id": 450, "indexExpression": { - "id": 452, + "id": 449, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5885:8:0", + "referencedDeclaration": 431, + "src": "5906:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14265,22 +14169,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5879:15:0", + "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 454, + "id": 451, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5895:10:0", + "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "5879:26:0", + "referencedDeclaration": 824, + "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14293,14 +14197,14 @@ }, { "hexValue": "4f72646572526566756e646564", - "id": 456, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5907:15:0", + "src": "5928:15:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0ab1527a936433fc64df27b599aa49d8cbaac3a88b1b3888cf4384b9e8bea9cd", "typeString": "literal_string \"OrderRefunded\"" @@ -14319,7 +14223,7 @@ "typeString": "literal_string \"OrderRefunded\"" } ], - "id": 450, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14327,13 +14231,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5870:7:0", + "src": "5891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 457, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -14342,16 +14246,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5870:53:0", + "src": "5891:53:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 458, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5870:53:0" + "src": "5891:53:0" }, { "expression": { @@ -14361,7 +14265,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 465, + "id": 462, "isConstant": false, "isLValue": false, "isPure": false, @@ -14369,25 +14273,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 460, + "id": 457, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "5935:5:0", + "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 462, + "id": 459, "indexExpression": { - "id": 461, + "id": 458, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "5941:8:0", + "referencedDeclaration": 431, + "src": "5962:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14398,22 +14302,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5935:15:0", + "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 463, + "id": 460, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5951:11:0", + "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "5935:27:0", + "referencedDeclaration": 820, + "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14422,18 +14326,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 464, + "id": 461, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5966:4:0", + "referencedDeclaration": 429, + "src": "5987:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5935:35:0", + "src": "5956:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14441,14 +14345,14 @@ }, { "hexValue": "4665654578636565647350726f746f636f6c466565", - "id": 466, + "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5972:23:0", + "src": "5993:23:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c06b87282d804789c7604f19c70a4ed32c29ae2e290ed8b49435ec1484c8a5de", "typeString": "literal_string \"FeeExceedsProtocolFee\"" @@ -14467,7 +14371,7 @@ "typeString": "literal_string \"FeeExceedsProtocolFee\"" } ], - "id": 459, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14475,13 +14379,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5927:7:0", + "src": "5948:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 467, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -14490,39 +14394,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5927:69:0", + "src": "5948:69:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 468, + "id": 465, "nodeType": "ExpressionStatement", - "src": "5927:69:0" + "src": "5948:69:0" }, { "expression": { "arguments": [ { - "id": 476, + "id": 473, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "6081:15:0", + "referencedDeclaration": 590, + "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 477, + "id": 474, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6098:4:0", + "referencedDeclaration": 429, + "src": "6119:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14545,25 +14449,25 @@ { "expression": { "baseExpression": { - "id": 470, + "id": 467, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6049:5:0", + "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 472, + "id": 469, "indexExpression": { - "id": 471, + "id": 468, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6055:8:0", + "referencedDeclaration": 431, + "src": "6076:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14574,22 +14478,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6049:15:0", + "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 473, + "id": 470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6065:5:0", + "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6049:21:0", + "referencedDeclaration": 814, + "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14603,18 +14507,18 @@ "typeString": "address" } ], - "id": 469, + "id": 466, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6042:6:0", + "referencedDeclaration": 2554, + "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 474, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -14623,29 +14527,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:29:0", + "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 475, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6072:8:0", + "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6042:38:0", + "referencedDeclaration": 2521, + "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 478, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -14654,20 +14558,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6042:61:0", + "src": "6063:61:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 476, "nodeType": "ExpressionStatement", - "src": "6042:61:0" + "src": "6063:61:0" }, { "expression": { - "id": 485, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -14675,25 +14579,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 480, + "id": 477, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6132:5:0", + "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 482, + "id": 479, "indexExpression": { - "id": 481, + "id": 478, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6138:8:0", + "referencedDeclaration": 431, + "src": "6159:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14704,22 +14608,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6132:15:0", + "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 483, + "id": 480, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6148:10:0", + "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 827, - "src": "6132:26:0", + "referencedDeclaration": 824, + "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14729,33 +14633,33 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 484, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6161:4:0", + "src": "6182:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6132:33:0", + "src": "6153:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 486, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6132:33:0" + "src": "6153:33:0" }, { "expression": { - "id": 492, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, @@ -14763,25 +14667,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 487, + "id": 484, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6169:5:0", + "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 489, + "id": 486, "indexExpression": { - "id": 488, + "id": 485, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6175:8:0", + "referencedDeclaration": 431, + "src": "6196:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14792,22 +14696,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6169:15:0", + "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 490, + "id": 487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6185:10:0", + "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 831, - "src": "6169:26:0", + "referencedDeclaration": 828, + "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" @@ -14817,44 +14721,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 491, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6198:1:0", + "src": "6219:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6169:30:0", + "src": "6190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint96", "typeString": "uint96" } }, - "id": 493, + "id": 490, "nodeType": "ExpressionStatement", - "src": "6169:30:0" + "src": "6190:30:0" }, { "assignments": [ - 495 + 492 ], "declarations": [ { "constant": false, - "id": 495, + "id": 492, "mutability": "mutable", "name": "refundAmount", - "nameLocation": "6246:12:0", + "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "6238:20:0", + "scope": 531, + "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14862,10 +14766,10 @@ "typeString": "uint256" }, "typeName": { - "id": 494, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6238:7:0", + "src": "6259:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14874,13 +14778,13 @@ "visibility": "internal" } ], - "id": 507, + "id": 504, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -14890,7 +14794,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 501, "isConstant": false, "isLValue": false, "isPure": false, @@ -14898,25 +14802,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 496, + "id": 493, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6261:5:0", + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 498, + "id": 495, "indexExpression": { - "id": 497, + "id": 494, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6267:8:0", + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14927,22 +14831,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6261:15:0", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 499, + "id": 496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6277:6:0", + "memberLocation": "6298:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 833, - "src": "6261:22:0", + "referencedDeclaration": 830, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14953,25 +14857,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 500, + "id": 497, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6286:5:0", + "src": "6307:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 502, + "id": 499, "indexExpression": { - "id": 501, + "id": 498, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6292:8:0", + "referencedDeclaration": 431, + "src": "6313:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14982,28 +14886,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6286:15:0", + "src": "6307:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 503, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6302:11:0", + "memberLocation": "6323:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 823, - "src": "6286:27:0", + "referencedDeclaration": 820, + "src": "6307:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:52:0", + "src": "6282:52:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15012,25 +14916,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 505, + "id": 502, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6316:4:0", + "referencedDeclaration": 429, + "src": "6337:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6261:59:0", + "src": "6282:59:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6238:82:0" + "src": "6259:82:0" }, { "expression": { @@ -15038,25 +14942,25 @@ { "expression": { "baseExpression": { - "id": 515, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6433:5:0", + "src": "6454:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 517, + "id": 514, "indexExpression": { - "id": 516, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6439:8:0", + "referencedDeclaration": 431, + "src": "6460:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15067,22 +14971,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6433:15:0", + "src": "6454:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 518, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6449:13:0", + "memberLocation": "6470:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 829, - "src": "6433:29:0", + "referencedDeclaration": 826, + "src": "6454:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15093,18 +14997,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 524, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 519, + "id": 516, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6467:12:0", + "referencedDeclaration": 492, + "src": "6488:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15115,25 +15019,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 520, + "id": 517, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6482:5:0", + "src": "6503:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 522, + "id": 519, "indexExpression": { - "id": 521, + "id": 518, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6488:8:0", + "referencedDeclaration": 431, + "src": "6509:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15144,28 +15048,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6482:15:0", + "src": "6503:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 523, + "id": 520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6498:9:0", + "memberLocation": "6519:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 821, - "src": "6482:25:0", + "referencedDeclaration": 818, + "src": "6503:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:40:0", + "src": "6488:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15188,25 +15092,25 @@ { "expression": { "baseExpression": { - "id": 509, + "id": 506, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6397:5:0", + "src": "6418:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 511, + "id": 508, "indexExpression": { - "id": 510, + "id": 507, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6403:8:0", + "referencedDeclaration": 431, + "src": "6424:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15217,22 +15121,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6397:15:0", + "src": "6418:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 512, + "id": 509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6413:5:0", + "memberLocation": "6434:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 817, - "src": "6397:21:0", + "referencedDeclaration": 814, + "src": "6418:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15246,18 +15150,18 @@ "typeString": "address" } ], - "id": 508, + "id": 505, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "6390:6:0", + "referencedDeclaration": 2554, + "src": "6411:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2557_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", "typeString": "type(contract IERC20)" } }, - "id": 513, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -15266,29 +15170,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:29:0", + "src": "6411:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2557", + "typeIdentifier": "t_contract$_IERC20_$2554", "typeString": "contract IERC20" } }, - "id": 514, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6420:8:0", + "memberLocation": "6441:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2524, - "src": "6390:38:0", + "referencedDeclaration": 2521, + "src": "6411:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 525, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -15297,39 +15201,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:121:0", + "src": "6411:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 526, + "id": 523, "nodeType": "ExpressionStatement", - "src": "6390:121:0" + "src": "6411:121:0" }, { "eventCall": { "arguments": [ { - "id": 528, + "id": 525, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6560:4:0", + "referencedDeclaration": 429, + "src": "6581:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 529, + "id": 526, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "6566:8:0", + "referencedDeclaration": 431, + "src": "6587:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15347,18 +15251,18 @@ "typeString": "bytes32" } ], - "id": 527, + "id": 524, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "6546:13:0", + "referencedDeclaration": 803, + "src": "6567:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 530, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -15367,85 +15271,85 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6546:29:0", + "src": "6567:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 531, + "id": 528, "nodeType": "EmitStatement", - "src": "6541:34:0" + "src": "6562:34:0" }, { "expression": { "hexValue": "74727565", - "id": 532, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6587:4:0", + "src": "6608:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 440, - "id": 533, + "functionReturnParameters": 437, + "id": 530, "nodeType": "Return", - "src": "6580:11:0" + "src": "6601:11:0" } ] }, "documentation": { - "id": 430, + "id": 427, "nodeType": "StructuredDocumentation", - "src": "5633:34:0", + "src": "5654:34:0", "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 535, + "id": 532, "implemented": true, "kind": "function", "modifiers": [ { - "id": 437, + "id": 434, "kind": "modifierInvocation", "modifierName": { - "id": 436, + "id": 433, "name": "onlyAggregator", "nameLocations": [ - "5726:14:0" + "5747:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 70, - "src": "5726:14:0" + "src": "5747:14:0" }, "nodeType": "ModifierInvocation", - "src": "5726:14:0" + "src": "5747:14:0" } ], "name": "refund", - "nameLocation": "5678:6:0", + "nameLocation": "5699:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 435, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 432, + "id": 429, "mutability": "mutable", "name": "_fee", - "nameLocation": "5693:4:0", + "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5685:12:0", + "scope": 532, + "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15453,10 +15357,10 @@ "typeString": "uint256" }, "typeName": { - "id": 431, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5685:7:0", + "src": "5706:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15466,13 +15370,13 @@ }, { "constant": false, - "id": 434, + "id": 431, "mutability": "mutable", "name": "_orderId", - "nameLocation": "5707:8:0", + "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5699:16:0", + "scope": 532, + "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15480,10 +15384,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 433, + "id": 430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5699:7:0", + "src": "5720:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15492,21 +15396,21 @@ "visibility": "internal" } ], - "src": "5684:32:0" + "src": "5705:32:0" }, "returnParameters": { - "id": 440, + "id": 437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 439, + "id": 436, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 535, - "src": "5750:4:0", + "scope": 532, + "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15514,10 +15418,10 @@ "typeString": "bool" }, "typeName": { - "id": 438, + "id": 435, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5750:4:0", + "src": "5771:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15526,45 +15430,45 @@ "visibility": "internal" } ], - "src": "5749:6:0" + "src": "5770:6:0" }, - "scope": 582, - "src": "5669:926:0", + "scope": 579, + "src": "5690:926:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 895 + 892 ], "body": { - "id": 548, + "id": 545, "nodeType": "Block", - "src": "6905:30:0", + "src": "6926:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 544, + "id": 541, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6916:5:0", + "src": "6937:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$834_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 546, + "id": 543, "indexExpression": { - "id": 545, + "id": 542, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "6922:8:0", + "referencedDeclaration": 535, + "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15575,46 +15479,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6916:15:0", + "src": "6937:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage", + "typeIdentifier": "t_struct$_Order_$831_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 543, - "id": 547, + "functionReturnParameters": 540, + "id": 544, "nodeType": "Return", - "src": "6909:22:0" + "src": "6930:22:0" } ] }, "documentation": { - "id": 536, + "id": 533, "nodeType": "StructuredDocumentation", - "src": "6786:40:0", + "src": "6807:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 549, + "id": 546, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6837:12:0", + "nameLocation": "6858:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 539, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 535, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6858:8:0", + "nameLocation": "6879:8:0", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6850:16:0", + "scope": 546, + "src": "6871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15622,10 +15526,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 537, + "id": 534, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6850:7:0", + "src": "6871:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15634,66 +15538,66 @@ "visibility": "internal" } ], - "src": "6849:18:0" + "src": "6870:18:0" }, "returnParameters": { - "id": 543, + "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 542, + "id": 539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "6891:12:0", + "scope": 546, + "src": "6912:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 541, + "id": 538, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 540, + "id": 537, "name": "Order", "nameLocations": [ - "6891:5:0" + "6912:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, - "src": "6891:5:0" + "referencedDeclaration": 831, + "src": "6912:5:0" }, - "referencedDeclaration": 834, - "src": "6891:5:0", + "referencedDeclaration": 831, + "src": "6912:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6890:14:0" + "src": "6911:14:0" }, - "scope": 582, - "src": "6828:107:0", + "scope": 579, + "src": "6849:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 886 + 883 ], "body": { - "id": 567, + "id": 564, "nodeType": "Block", - "src": "7055:71:0", + "src": "7076:71:0", "statements": [ { "condition": { @@ -15701,32 +15605,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 561, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 557, + "id": 554, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "7063:17:0", + "referencedDeclaration": 596, + "src": "7084:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 559, + "id": 556, "indexExpression": { - "id": 558, + "id": 555, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "7081:6:0", + "referencedDeclaration": 549, + "src": "7102:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15737,7 +15641,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7063:25:0", + "src": "7084:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15747,103 +15651,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 560, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7092:1:0", + "src": "7113:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7063:30:0", + "src": "7084:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 564, + "id": 561, "nodeType": "IfStatement", - "src": "7059:47:0", + "src": "7080:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 562, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7102:4:0", + "src": "7123:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 556, - "id": 563, + "functionReturnParameters": 553, + "id": 560, "nodeType": "Return", - "src": "7095:11:0" + "src": "7116:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 565, + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7117:5:0", + "src": "7138:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 556, - "id": 566, + "functionReturnParameters": 553, + "id": 563, "nodeType": "Return", - "src": "7110:12:0" + "src": "7131:12:0" } ] }, "documentation": { - "id": 550, + "id": 547, "nodeType": "StructuredDocumentation", - "src": "6938:44:0", + "src": "6959:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 568, + "id": 565, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "6993:16:0", + "nameLocation": "7014:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 553, + "id": 550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 549, "mutability": "mutable", "name": "_token", - "nameLocation": "7018:6:0", + "nameLocation": "7039:6:0", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7010:14:0", + "scope": 565, + "src": "7031:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15851,10 +15755,10 @@ "typeString": "address" }, "typeName": { - "id": 551, + "id": 548, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7010:7:0", + "src": "7031:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15864,21 +15768,21 @@ "visibility": "internal" } ], - "src": "7009:16:0" + "src": "7030:16:0" }, "returnParameters": { - "id": 556, + "id": 553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 555, + "id": 552, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 568, - "src": "7049:4:0", + "scope": 565, + "src": "7070:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15886,10 +15790,10 @@ "typeString": "bool" }, "typeName": { - "id": 554, + "id": 551, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7049:4:0", + "src": "7070:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15898,104 +15802,104 @@ "visibility": "internal" } ], - "src": "7048:6:0" + "src": "7069:6:0" }, - "scope": 582, - "src": "6984:142:0", + "scope": 579, + "src": "7005:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 903 + 900 ], "body": { - "id": 580, + "id": 577, "nodeType": "Block", - "src": "7237:44:0", + "src": "7258:44:0", "statements": [ { "expression": { "components": [ { - "id": 576, + "id": 573, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "7249:18:0", + "referencedDeclaration": 588, + "src": "7270:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 577, + "id": 574, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7269:7:0", + "referencedDeclaration": 586, + "src": "7290:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 578, + "id": 575, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7248:29:0", + "src": "7269:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 575, - "id": 579, + "functionReturnParameters": 572, + "id": 576, "nodeType": "Return", - "src": "7241:36:0" + "src": "7262:36:0" } ] }, "documentation": { - "id": 569, + "id": 566, "nodeType": "StructuredDocumentation", - "src": "7129:41:0", + "src": "7150:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 581, + "id": 578, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7181:13:0", + "nameLocation": "7202:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 567, "nodeType": "ParameterList", "parameters": [], - "src": "7194:2:0" + "src": "7215:2:0" }, "returnParameters": { - "id": 575, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 569, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7220:6:0", + "scope": 578, + "src": "7241:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16003,10 +15907,10 @@ "typeString": "uint64" }, "typeName": { - "id": 571, + "id": 568, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7220:6:0", + "src": "7241:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -16016,13 +15920,13 @@ }, { "constant": false, - "id": 574, + "id": 571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "7228:7:0", + "scope": 578, + "src": "7249:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16030,10 +15934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7228:7:0", + "src": "7249:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16042,21 +15946,21 @@ "visibility": "internal" } ], - "src": "7219:17:0" + "src": "7240:17:0" }, - "scope": 582, - "src": "7172:109:0", + "scope": 579, + "src": "7193:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 583, - "src": "390:6893:0", + "scope": 580, + "src": "390:6914:0", "usedErrors": [] } ], - "src": "39:7245:0" + "src": "39:7266:0" }, "compiler": { "name": "solc", @@ -16064,5 +15968,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.564Z" + "updatedAt": "2024-06-27T12:24:25.265Z" } \ No newline at end of file diff --git a/build/contracts/GatewaySettingManager.json b/build/contracts/GatewaySettingManager.json index 435f7b3..88c6b01 100644 --- a/build/contracts/GatewaySettingManager.json +++ b/build/contracts/GatewaySettingManager.json @@ -230,37 +230,37 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50610f258061003a6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e58221220f93d1164af82e7f8e118a8f4bbd75e9722a5d34215580245af85928fdbfa715264736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e58221220f93d1164af82e7f8e118a8f4bbd75e9722a5d34215580245af85928fdbfa715264736f6c63430008120033", + "bytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50610f258061003a6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", "sourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:101:5;;;:::i;:::-;;2031:212:4;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:551:1;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;1436:178::-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;88:117:14:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:118::-;2649:24;2667:5;2649:24;:::i;:::-;2644:3;2637:37;2562:118;;:::o;2686:222::-;2779:4;2817:2;2806:9;2802:18;2794:26;;2830:71;2898:1;2887:9;2883:17;2874:6;2830:71;:::i;:::-;2686:222;;;;:::o;2914:77::-;2951:7;2980:5;2969:16;;2914:77;;;:::o;2997:122::-;3070:24;3088:5;3070:24;:::i;:::-;3063:5;3060:35;3050:63;;3109:1;3106;3099:12;3050:63;2997:122;:::o;3125:139::-;3171:5;3209:6;3196:20;3187:29;;3225:33;3252:5;3225:33;:::i;:::-;3125:139;;;;:::o;3270:619::-;3347:6;3355;3363;3412:2;3400:9;3391:7;3387:23;3383:32;3380:119;;;3418:79;;:::i;:::-;3380:119;3538:1;3563:53;3608:7;3599:6;3588:9;3584:22;3563:53;:::i;:::-;3553:63;;3509:117;3665:2;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3636:118;3793:2;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3764:118;3270:619;;;;;:::o;3895:329::-;3954:6;4003:2;3991:9;3982:7;3978:23;3974:32;3971:119;;;4009:79;;:::i;:::-;3971:119;4129:1;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4100:117;3895:329;;;;:::o;4230:169::-;4314:11;4348:6;4343:3;4336:19;4388:4;4383:3;4379:14;4364:29;;4230:169;;;;:::o;4405:171::-;4545:23;4541:1;4533:6;4529:14;4522:47;4405:171;:::o;4582:366::-;4724:3;4745:67;4809:2;4804:3;4745:67;:::i;:::-;4738:74;;4821:93;4910:3;4821:93;:::i;:::-;4939:2;4934:3;4930:12;4923:19;;4582:366;;;:::o;4954:419::-;5120:4;5158:2;5147:9;5143:18;5135:26;;5207:9;5201:4;5197:20;5193:1;5182:9;5178:17;5171:47;5235:131;5361:4;5235:131;:::i;:::-;5227:139;;4954:419;;;:::o;5379:224::-;5519:34;5515:1;5507:6;5503:14;5496:58;5588:7;5583:2;5575:6;5571:15;5564:32;5379:224;:::o;5609:366::-;5751:3;5772:67;5836:2;5831:3;5772:67;:::i;:::-;5765:74;;5848:93;5937:3;5848:93;:::i;:::-;5966:2;5961:3;5957:12;5950:19;;5609:366;;;:::o;5981:419::-;6147:4;6185:2;6174:9;6170:18;6162:26;;6234:9;6228:4;6224:20;6220:1;6209:9;6205:17;6198:47;6262:131;6388:4;6262:131;:::i;:::-;6254:139;;5981:419;;;:::o;6406:226::-;6546:34;6542:1;6534:6;6530:14;6523:58;6615:9;6610:2;6602:6;6598:15;6591:34;6406:226;:::o;6638:366::-;6780:3;6801:67;6865:2;6860:3;6801:67;:::i;:::-;6794:74;;6877:93;6966:3;6877:93;:::i;:::-;6995:2;6990:3;6986:12;6979:19;;6638:366;;;:::o;7010:419::-;7176:4;7214:2;7203:9;7199:18;7191:26;;7263:9;7257:4;7253:20;7249:1;7238:9;7234:17;7227:47;7291:131;7417:4;7291:131;:::i;:::-;7283:139;;7010:419;;;:::o;7435:115::-;7520:23;7537:5;7520:23;:::i;:::-;7515:3;7508:36;7435:115;;:::o;7556:218::-;7647:4;7685:2;7674:9;7670:18;7662:26;;7698:69;7764:1;7753:9;7749:17;7740:6;7698:69;:::i;:::-;7556:218;;;;:::o;7780:228::-;7920:34;7916:1;7908:6;7904:14;7897:58;7989:11;7984:2;7976:6;7972:15;7965:36;7780:228;:::o;8014:366::-;8156:3;8177:67;8241:2;8236:3;8177:67;:::i;:::-;8170:74;;8253:93;8342:3;8253:93;:::i;:::-;8371:2;8366:3;8362:12;8355:19;;8014:366;;;:::o;8386:419::-;8552:4;8590:2;8579:9;8575:18;8567:26;;8639:9;8633:4;8629:20;8625:1;8614:9;8610:17;8603:47;8667:131;8793:4;8667:131;:::i;:::-;8659:139;;8386:419;;;:::o;8811:173::-;8951:25;8947:1;8939:6;8935:14;8928:49;8811:173;:::o;8990:366::-;9132:3;9153:67;9217:2;9212:3;9153:67;:::i;:::-;9146:74;;9229:93;9318:3;9229:93;:::i;:::-;9347:2;9342:3;9338:12;9331:19;;8990:366;;;:::o;9362:419::-;9528:4;9566:2;9555:9;9551:18;9543:26;;9615:9;9609:4;9605:20;9601:1;9590:9;9586:17;9579:47;9643:131;9769:4;9643:131;:::i;:::-;9635:139;;9362:419;;;:::o;9787:118::-;9874:24;9892:5;9874:24;:::i;:::-;9869:3;9862:37;9787:118;;:::o;9911:222::-;10004:4;10042:2;10031:9;10027:18;10019:26;;10055:71;10123:1;10112:9;10108:17;10099:6;10055:71;:::i;:::-;9911:222;;;;:::o;10139:182::-;10279:34;10275:1;10267:6;10263:14;10256:58;10139:182;:::o;10327:366::-;10469:3;10490:67;10554:2;10549:3;10490:67;:::i;:::-;10483:74;;10566:93;10655:3;10566:93;:::i;:::-;10684:2;10679:3;10675:12;10668:19;;10327:366;;;:::o;10699:419::-;10865:4;10903:2;10892:9;10888:18;10880:26;;10952:9;10946:4;10942:20;10938:1;10927:9;10923:17;10916:47;10980:131;11106:4;10980:131;:::i;:::-;10972:139;;10699:419;;;:::o", "source": "// SPDX-License-Identifier: UNLICENSED\n\n/**\n * @title GatewaySettingManager\n * @dev This contract manages the settings and configurations for the Gateway protocol.\n */\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\n\tuint256 internal MAX_BPS;\n\tuint64 internal protocolFeePercent;\n\taddress internal treasuryAddress;\n\taddress internal _aggregatorAddress;\n\tmapping(address => uint256) internal _isTokenSupported;\n\n\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\n\tuint256[50] private __gap;\n\n\n\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\n\tevent ProtocolFeeUpdated(uint64 protocolFee);\n\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\n\tevent SetFeeRecipient(address indexed treasuryAddress);\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\n\t/**\n\t * @dev Sets the boolean value for a specific setting.\n\t * @param what The setting to be updated.\n\t * @param value The address or value associated with the setting.\n\t * @param status The boolean value to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\trequire(status == 1 || status == 2, 'Gateway: invalid status');\n\t\tif (what == 'token') {\n\t\t\t_isTokenSupported[value] = status;\n\t\t\temit SettingManagerBool(what, value, status);\n\t\t}\n\t}\n\n\t/**\n\t * @dev Updates the protocol fee percentage.\n\t * @param _protocolFeePercent The new protocol fee percentage to be set.\n\t */\n\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\n\t\tprotocolFeePercent = _protocolFeePercent;\n\t\temit ProtocolFeeUpdated(_protocolFeePercent);\n\t}\n\n\t/**\n\t * @dev Updates a protocol address.\n\t * @param what The address type to be updated (treasury or aggregator).\n\t * @param value The new address to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\tbool updated;\n\t\tif (what == 'treasury') {\n\t\t\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\n\t\t\ttreasuryAddress = value;\n\t\t\tupdated = true;\n\t\t} else if (what == 'aggregator') {\n\t\t\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\n\t\t\t_aggregatorAddress = value;\n\t\t\tupdated = true;\n\t\t}\n\t\tif (updated) {\n\t\t\temit ProtocolAddressUpdated(what, value);\n\t\t}\n\t}\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "GatewaySettingManager": [ - 766 + 763 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 767, + "id": 764, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 584, + "id": 581, "literals": [ "solidity", "^", @@ -273,11 +273,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 585, + "id": 582, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 767, - "sourceUnit": 1082, + "scope": 764, + "sourceUnit": 1079, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -287,16 +287,16 @@ "baseContracts": [ { "baseName": { - "id": 586, + "id": 583, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1081, + "referencedDeclaration": 1078, "src": "310:23:1" }, - "id": 587, + "id": 584, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -305,13 +305,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 766, + "id": 763, "linearizedBaseContracts": [ - 766, - 1081, - 1214, - 1892, - 1383 + 763, + 1078, + 1211, + 1889, + 1380 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -319,12 +319,12 @@ "nodes": [ { "constant": false, - "id": 589, + "id": 586, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -333,7 +333,7 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -346,12 +346,12 @@ }, { "constant": false, - "id": 591, + "id": 588, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -360,7 +360,7 @@ "typeString": "uint64" }, "typeName": { - "id": 590, + "id": 587, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -373,12 +373,12 @@ }, { "constant": false, - "id": 593, + "id": 590, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -387,7 +387,7 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 589, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -401,12 +401,12 @@ }, { "constant": false, - "id": 595, + "id": 592, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -415,7 +415,7 @@ "typeString": "address" }, "typeName": { - "id": 594, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -429,12 +429,12 @@ }, { "constant": false, - "id": 599, + "id": 596, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -443,11 +443,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 598, + "id": 595, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 596, + "id": 593, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -465,7 +465,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 597, + "id": 594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -479,12 +479,12 @@ }, { "constant": false, - "id": 603, + "id": 600, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -494,7 +494,7 @@ }, "typeName": { "baseType": { - "id": 600, + "id": 597, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -503,10 +503,10 @@ "typeString": "uint256" } }, - "id": 602, + "id": 599, "length": { "hexValue": "3530", - "id": 601, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,23 +532,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 611, + "id": 608, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 610, + "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 602, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -557,7 +557,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 601, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -570,13 +570,13 @@ }, { "constant": false, - "id": 607, + "id": 604, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -585,7 +585,7 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 603, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -599,13 +599,13 @@ }, { "constant": false, - "id": 609, + "id": 606, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -614,7 +614,7 @@ "typeString": "uint256" }, "typeName": { - "id": 608, + "id": 605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -633,23 +633,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 615, + "id": 612, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 614, + "id": 611, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 610, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 615, + "scope": 612, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -658,7 +658,7 @@ "typeString": "uint64" }, "typeName": { - "id": 612, + "id": 609, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -677,23 +677,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 621, + "id": 618, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 620, + "id": 617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 617, + "id": 614, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -702,7 +702,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 613, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -715,13 +715,13 @@ }, { "constant": false, - "id": 619, + "id": 616, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -730,7 +730,7 @@ "typeString": "address" }, "typeName": { - "id": 618, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -750,23 +750,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 625, + "id": 622, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 624, + "id": 621, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 620, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 625, + "scope": 622, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -775,7 +775,7 @@ "typeString": "address" }, "typeName": { - "id": 622, + "id": 619, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -794,7 +794,7 @@ }, { "body": { - "id": 675, + "id": 672, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -806,17 +806,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 643, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 638, + "id": 635, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -829,7 +829,7 @@ "arguments": [ { "hexValue": "30", - "id": 641, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, @@ -851,7 +851,7 @@ "typeString": "int_const 0" } ], - "id": 640, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, @@ -863,14 +863,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 639, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 642, + "id": 639, "isConstant": false, "isLValue": false, "isPure": true, @@ -894,7 +894,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 644, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -920,7 +920,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 637, + "id": 634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -934,7 +934,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 645, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -950,7 +950,7 @@ "typeString": "tuple()" } }, - "id": 646, + "id": 643, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -962,7 +962,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 654, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -972,17 +972,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 645, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -993,7 +993,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 649, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, @@ -1020,17 +1020,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 653, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 651, + "id": 648, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1041,7 +1041,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 652, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -1069,7 +1069,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 655, + "id": 652, "isConstant": false, "isLValue": false, "isPure": true, @@ -1095,7 +1095,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 647, + "id": 644, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1109,7 +1109,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 656, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -1125,7 +1125,7 @@ "typeString": "tuple()" } }, - "id": 657, + "id": 654, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -1135,17 +1135,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 660, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 658, + "id": 655, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1156,7 +1156,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 659, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -1176,41 +1176,41 @@ "typeString": "bool" } }, - "id": 674, + "id": 671, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 673, + "id": 670, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 665, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 661, + "id": 658, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, + "referencedDeclaration": 596, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 663, + "id": 660, "indexExpression": { - "id": 662, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1231,11 +1231,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 664, + "id": 661, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1248,7 +1248,7 @@ "typeString": "uint256" } }, - "id": 666, + "id": 663, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -1256,11 +1256,11 @@ "eventCall": { "arguments": [ { - "id": 668, + "id": 665, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1268,11 +1268,11 @@ } }, { - "id": 669, + "id": 666, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1280,11 +1280,11 @@ } }, { - "id": 670, + "id": 667, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1307,18 +1307,18 @@ "typeString": "uint256" } ], - "id": 667, + "id": 664, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, + "referencedDeclaration": 608, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 671, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -1334,7 +1334,7 @@ "typeString": "tuple()" } }, - "id": 672, + "id": 669, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -1344,27 +1344,27 @@ ] }, "documentation": { - "id": 626, + "id": 623, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 676, + "id": 673, "implemented": true, "kind": "function", "modifiers": [ { - "id": 635, + "id": 632, "kind": "modifierInvocation", "modifierName": { - "id": 634, + "id": 631, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -1375,17 +1375,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 628, + "id": 625, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -1394,7 +1394,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 627, + "id": 624, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -1407,12 +1407,12 @@ }, { "constant": false, - "id": 630, + "id": 627, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -1421,7 +1421,7 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 626, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -1435,12 +1435,12 @@ }, { "constant": false, - "id": 632, + "id": 629, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -1449,7 +1449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 628, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -1464,12 +1464,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 636, + "id": 633, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 766, + "scope": 763, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -1477,23 +1477,23 @@ }, { "body": { - "id": 692, + "id": 689, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 686, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 684, + "id": 681, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1503,11 +1503,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 685, + "id": 682, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1520,7 +1520,7 @@ "typeString": "uint64" } }, - "id": 687, + "id": 684, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -1528,11 +1528,11 @@ "eventCall": { "arguments": [ { - "id": 689, + "id": 686, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1547,18 +1547,18 @@ "typeString": "uint64" } ], - "id": 688, + "id": 685, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, + "referencedDeclaration": 612, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 690, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -1574,34 +1574,34 @@ "typeString": "tuple()" } }, - "id": 691, + "id": 688, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 677, + "id": 674, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 693, + "id": 690, "implemented": true, "kind": "function", "modifiers": [ { - "id": 682, + "id": 679, "kind": "modifierInvocation", "modifierName": { - "id": 681, + "id": 678, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -1612,17 +1612,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 677, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 676, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 693, + "scope": 690, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -1631,7 +1631,7 @@ "typeString": "uint64" }, "typeName": { - "id": 678, + "id": 675, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -1646,12 +1646,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 683, + "id": 680, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 766, + "scope": 763, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -1659,7 +1659,7 @@ }, { "body": { - "id": 764, + "id": 761, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -1671,17 +1671,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 709, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 704, + "id": 701, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1694,7 +1694,7 @@ "arguments": [ { "hexValue": "30", - "id": 707, + "id": 704, "isConstant": false, "isLValue": false, "isPure": true, @@ -1716,7 +1716,7 @@ "typeString": "int_const 0" } ], - "id": 706, + "id": 703, "isConstant": false, "isLValue": false, "isPure": true, @@ -1728,14 +1728,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 705, + "id": 702, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 708, + "id": 705, "isConstant": false, "isLValue": false, "isPure": true, @@ -1759,7 +1759,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 710, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, @@ -1785,7 +1785,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 703, + "id": 700, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1799,7 +1799,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 711, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -1815,23 +1815,23 @@ "typeString": "tuple()" } }, - "id": 712, + "id": 709, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 714 + 711 ], "declarations": [ { "constant": false, - "id": 714, + "id": 711, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 764, + "scope": 761, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -1840,7 +1840,7 @@ "typeString": "bool" }, "typeName": { - "id": 713, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -1852,7 +1852,7 @@ "visibility": "internal" } ], - "id": 715, + "id": 712, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -1862,17 +1862,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 718, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 716, + "id": 713, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1883,7 +1883,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 717, + "id": 714, "isConstant": false, "isLValue": false, "isPure": true, @@ -1909,17 +1909,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 737, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 735, + "id": 732, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1930,7 +1930,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 736, + "id": 733, "isConstant": false, "isLValue": false, "isPure": true, @@ -1950,11 +1950,11 @@ "typeString": "bool" } }, - "id": 754, + "id": 751, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 753, + "id": 750, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -1966,17 +1966,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 741, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 739, + "id": 736, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1986,11 +1986,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 740, + "id": 737, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2005,7 +2005,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 742, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, @@ -2031,7 +2031,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 738, + "id": 735, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2045,7 +2045,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 743, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -2061,23 +2061,23 @@ "typeString": "tuple()" } }, - "id": 744, + "id": 741, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 747, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 745, + "id": 742, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2087,11 +2087,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 746, + "id": 743, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2104,23 +2104,23 @@ "typeString": "address" } }, - "id": 748, + "id": 745, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 751, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 749, + "id": 746, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2131,7 +2131,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 750, + "id": 747, "isConstant": false, "isLValue": false, "isPure": true, @@ -2151,18 +2151,18 @@ "typeString": "bool" } }, - "id": 752, + "id": 749, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 755, + "id": 752, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 734, + "id": 731, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -2174,17 +2174,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 722, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 720, + "id": 717, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2194,11 +2194,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 721, + "id": 718, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2213,7 +2213,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 723, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, @@ -2239,7 +2239,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 719, + "id": 716, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2253,7 +2253,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 724, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -2269,23 +2269,23 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 722, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 728, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 726, + "id": 723, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2295,11 +2295,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 727, + "id": 724, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2312,23 +2312,23 @@ "typeString": "address" } }, - "id": 729, + "id": 726, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 732, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 730, + "id": 727, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2339,7 +2339,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 731, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -2359,7 +2359,7 @@ "typeString": "bool" } }, - "id": 733, + "id": 730, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -2368,22 +2368,22 @@ }, { "condition": { - "id": 756, + "id": 753, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 763, + "id": 760, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 762, + "id": 759, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -2391,11 +2391,11 @@ "eventCall": { "arguments": [ { - "id": 758, + "id": 755, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2403,11 +2403,11 @@ } }, { - "id": 759, + "id": 756, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2426,18 +2426,18 @@ "typeString": "address" } ], - "id": 757, + "id": 754, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 621, + "referencedDeclaration": 618, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 760, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -2453,7 +2453,7 @@ "typeString": "tuple()" } }, - "id": 761, + "id": 758, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -2463,27 +2463,27 @@ ] }, "documentation": { - "id": 694, + "id": 691, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 765, + "id": 762, "implemented": true, "kind": "function", "modifiers": [ { - "id": 701, + "id": 698, "kind": "modifierInvocation", "modifierName": { - "id": 700, + "id": 697, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -2494,17 +2494,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 699, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 693, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -2513,7 +2513,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 695, + "id": 692, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -2526,12 +2526,12 @@ }, { "constant": false, - "id": 698, + "id": 695, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 694, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -2556,19 +2556,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 702, + "id": 699, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 766, + "scope": 763, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 767, + "scope": 764, "src": "276:2570:1", "usedErrors": [] } @@ -2576,30 +2576,30 @@ "src": "168:2679:1" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/GatewaySettingManager.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "GatewaySettingManager": [ - 766 + 763 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 767, + "id": 764, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 584, + "id": 581, "literals": [ "solidity", "^", @@ -2612,11 +2612,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 585, + "id": 582, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 767, - "sourceUnit": 1082, + "scope": 764, + "sourceUnit": 1079, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -2626,16 +2626,16 @@ "baseContracts": [ { "baseName": { - "id": 586, + "id": 583, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1081, + "referencedDeclaration": 1078, "src": "310:23:1" }, - "id": 587, + "id": 584, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -2644,13 +2644,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 766, + "id": 763, "linearizedBaseContracts": [ - 766, - 1081, - 1214, - 1892, - 1383 + 763, + 1078, + 1211, + 1889, + 1380 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -2658,12 +2658,12 @@ "nodes": [ { "constant": false, - "id": 589, + "id": 586, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -2672,7 +2672,7 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -2685,12 +2685,12 @@ }, { "constant": false, - "id": 591, + "id": 588, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -2699,7 +2699,7 @@ "typeString": "uint64" }, "typeName": { - "id": 590, + "id": 587, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -2712,12 +2712,12 @@ }, { "constant": false, - "id": 593, + "id": 590, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -2726,7 +2726,7 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 589, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -2740,12 +2740,12 @@ }, { "constant": false, - "id": 595, + "id": 592, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -2754,7 +2754,7 @@ "typeString": "address" }, "typeName": { - "id": 594, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -2768,12 +2768,12 @@ }, { "constant": false, - "id": 599, + "id": 596, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -2782,11 +2782,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 598, + "id": 595, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 596, + "id": 593, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -2804,7 +2804,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 597, + "id": 594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -2818,12 +2818,12 @@ }, { "constant": false, - "id": 603, + "id": 600, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 766, + "scope": 763, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -2833,7 +2833,7 @@ }, "typeName": { "baseType": { - "id": 600, + "id": 597, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -2842,10 +2842,10 @@ "typeString": "uint256" } }, - "id": 602, + "id": 599, "length": { "hexValue": "3530", - "id": 601, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, @@ -2871,23 +2871,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 611, + "id": 608, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 610, + "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 602, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -2896,7 +2896,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 601, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -2909,13 +2909,13 @@ }, { "constant": false, - "id": 607, + "id": 604, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "address" }, "typeName": { - "id": 606, + "id": 603, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -2938,13 +2938,13 @@ }, { "constant": false, - "id": 609, + "id": 606, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 611, + "scope": 608, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -2953,7 +2953,7 @@ "typeString": "uint256" }, "typeName": { - "id": 608, + "id": 605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -2972,23 +2972,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 615, + "id": 612, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 614, + "id": 611, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 610, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 615, + "scope": 612, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -2997,7 +2997,7 @@ "typeString": "uint64" }, "typeName": { - "id": 612, + "id": 609, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -3016,23 +3016,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 621, + "id": 618, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 620, + "id": 617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 617, + "id": 614, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -3041,7 +3041,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 616, + "id": 613, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -3054,13 +3054,13 @@ }, { "constant": false, - "id": 619, + "id": 616, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 621, + "scope": 618, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -3069,7 +3069,7 @@ "typeString": "address" }, "typeName": { - "id": 618, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -3089,23 +3089,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 625, + "id": 622, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 624, + "id": 621, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 620, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 625, + "scope": 622, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -3114,7 +3114,7 @@ "typeString": "address" }, "typeName": { - "id": 622, + "id": 619, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -3133,7 +3133,7 @@ }, { "body": { - "id": 675, + "id": 672, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -3145,17 +3145,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 643, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 638, + "id": 635, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3168,7 +3168,7 @@ "arguments": [ { "hexValue": "30", - "id": 641, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, @@ -3190,7 +3190,7 @@ "typeString": "int_const 0" } ], - "id": 640, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, @@ -3202,14 +3202,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 639, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 642, + "id": 639, "isConstant": false, "isLValue": false, "isPure": true, @@ -3233,7 +3233,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 644, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -3259,7 +3259,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 637, + "id": 634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3273,7 +3273,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 645, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -3289,7 +3289,7 @@ "typeString": "tuple()" } }, - "id": 646, + "id": 643, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -3301,7 +3301,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 654, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -3311,17 +3311,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 645, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3332,7 +3332,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 649, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, @@ -3359,17 +3359,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 653, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 651, + "id": 648, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3380,7 +3380,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 652, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, @@ -3408,7 +3408,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 655, + "id": 652, "isConstant": false, "isLValue": false, "isPure": true, @@ -3434,7 +3434,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 647, + "id": 644, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3448,7 +3448,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 656, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -3464,7 +3464,7 @@ "typeString": "tuple()" } }, - "id": 657, + "id": 654, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -3474,17 +3474,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 660, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 658, + "id": 655, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3495,7 +3495,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 659, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -3515,41 +3515,41 @@ "typeString": "bool" } }, - "id": 674, + "id": 671, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 673, + "id": 670, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 665, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 661, + "id": 658, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, + "referencedDeclaration": 596, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 663, + "id": 660, "indexExpression": { - "id": 662, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3570,11 +3570,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 664, + "id": 661, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3587,7 +3587,7 @@ "typeString": "uint256" } }, - "id": 666, + "id": 663, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -3595,11 +3595,11 @@ "eventCall": { "arguments": [ { - "id": 668, + "id": 665, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 628, + "referencedDeclaration": 625, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3607,11 +3607,11 @@ } }, { - "id": 669, + "id": 666, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, + "referencedDeclaration": 627, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3619,11 +3619,11 @@ } }, { - "id": 670, + "id": 667, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, + "referencedDeclaration": 629, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3646,18 +3646,18 @@ "typeString": "uint256" } ], - "id": 667, + "id": 664, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 611, + "referencedDeclaration": 608, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 671, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -3673,7 +3673,7 @@ "typeString": "tuple()" } }, - "id": 672, + "id": 669, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -3683,27 +3683,27 @@ ] }, "documentation": { - "id": 626, + "id": 623, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 676, + "id": 673, "implemented": true, "kind": "function", "modifiers": [ { - "id": 635, + "id": 632, "kind": "modifierInvocation", "modifierName": { - "id": 634, + "id": 631, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -3714,17 +3714,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 628, + "id": 625, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -3733,7 +3733,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 627, + "id": 624, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -3746,12 +3746,12 @@ }, { "constant": false, - "id": 630, + "id": 627, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -3760,7 +3760,7 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 626, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -3774,12 +3774,12 @@ }, { "constant": false, - "id": 632, + "id": 629, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 676, + "scope": 673, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -3788,7 +3788,7 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 628, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -3803,12 +3803,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 636, + "id": 633, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 766, + "scope": 763, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -3816,23 +3816,23 @@ }, { "body": { - "id": 692, + "id": 689, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 686, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 684, + "id": 681, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 591, + "referencedDeclaration": 588, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3842,11 +3842,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 685, + "id": 682, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3859,7 +3859,7 @@ "typeString": "uint64" } }, - "id": 687, + "id": 684, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -3867,11 +3867,11 @@ "eventCall": { "arguments": [ { - "id": 689, + "id": 686, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, + "referencedDeclaration": 676, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3886,18 +3886,18 @@ "typeString": "uint64" } ], - "id": 688, + "id": 685, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, + "referencedDeclaration": 612, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 690, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -3913,34 +3913,34 @@ "typeString": "tuple()" } }, - "id": 691, + "id": 688, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 677, + "id": 674, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 693, + "id": 690, "implemented": true, "kind": "function", "modifiers": [ { - "id": 682, + "id": 679, "kind": "modifierInvocation", "modifierName": { - "id": 681, + "id": 678, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -3951,17 +3951,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 677, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 676, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 693, + "scope": 690, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -3970,7 +3970,7 @@ "typeString": "uint64" }, "typeName": { - "id": 678, + "id": 675, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -3985,12 +3985,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 683, + "id": 680, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 766, + "scope": 763, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -3998,7 +3998,7 @@ }, { "body": { - "id": 764, + "id": 761, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -4010,17 +4010,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 709, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 704, + "id": 701, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4033,7 +4033,7 @@ "arguments": [ { "hexValue": "30", - "id": 707, + "id": 704, "isConstant": false, "isLValue": false, "isPure": true, @@ -4055,7 +4055,7 @@ "typeString": "int_const 0" } ], - "id": 706, + "id": 703, "isConstant": false, "isLValue": false, "isPure": true, @@ -4067,14 +4067,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 705, + "id": 702, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 708, + "id": 705, "isConstant": false, "isLValue": false, "isPure": true, @@ -4098,7 +4098,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 710, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, @@ -4124,7 +4124,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 703, + "id": 700, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4138,7 +4138,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 711, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,23 +4154,23 @@ "typeString": "tuple()" } }, - "id": 712, + "id": 709, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 714 + 711 ], "declarations": [ { "constant": false, - "id": 714, + "id": 711, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 764, + "scope": 761, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -4179,7 +4179,7 @@ "typeString": "bool" }, "typeName": { - "id": 713, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -4191,7 +4191,7 @@ "visibility": "internal" } ], - "id": 715, + "id": 712, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -4201,17 +4201,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 718, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 716, + "id": 713, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4222,7 +4222,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 717, + "id": 714, "isConstant": false, "isLValue": false, "isPure": true, @@ -4248,17 +4248,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 737, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 735, + "id": 732, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4269,7 +4269,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 736, + "id": 733, "isConstant": false, "isLValue": false, "isPure": true, @@ -4289,11 +4289,11 @@ "typeString": "bool" } }, - "id": 754, + "id": 751, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 753, + "id": 750, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -4305,17 +4305,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 741, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 739, + "id": 736, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4325,11 +4325,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 740, + "id": 737, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4344,7 +4344,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 742, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, @@ -4370,7 +4370,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 738, + "id": 735, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4384,7 +4384,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 743, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,23 +4400,23 @@ "typeString": "tuple()" } }, - "id": 744, + "id": 741, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 747, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 745, + "id": 742, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, + "referencedDeclaration": 592, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4426,11 +4426,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 746, + "id": 743, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4443,23 +4443,23 @@ "typeString": "address" } }, - "id": 748, + "id": 745, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 751, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 749, + "id": 746, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4470,7 +4470,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 750, + "id": 747, "isConstant": false, "isLValue": false, "isPure": true, @@ -4490,18 +4490,18 @@ "typeString": "bool" } }, - "id": 752, + "id": 749, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 755, + "id": 752, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 734, + "id": 731, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -4513,17 +4513,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 722, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 720, + "id": 717, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4533,11 +4533,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 721, + "id": 718, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4552,7 +4552,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 723, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, @@ -4578,7 +4578,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 719, + "id": 716, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4592,7 +4592,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 724, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -4608,23 +4608,23 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 722, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 728, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 726, + "id": 723, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, + "referencedDeclaration": 590, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4634,11 +4634,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 727, + "id": 724, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4651,23 +4651,23 @@ "typeString": "address" } }, - "id": 729, + "id": 726, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 732, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 730, + "id": 727, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4678,7 +4678,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 731, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -4698,7 +4698,7 @@ "typeString": "bool" } }, - "id": 733, + "id": 730, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -4707,22 +4707,22 @@ }, { "condition": { - "id": 756, + "id": 753, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, + "referencedDeclaration": 711, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 763, + "id": 760, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 762, + "id": 759, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -4730,11 +4730,11 @@ "eventCall": { "arguments": [ { - "id": 758, + "id": 755, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, + "referencedDeclaration": 693, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4742,11 +4742,11 @@ } }, { - "id": 759, + "id": 756, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, + "referencedDeclaration": 695, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4765,18 +4765,18 @@ "typeString": "address" } ], - "id": 757, + "id": 754, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 621, + "referencedDeclaration": 618, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 760, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -4792,7 +4792,7 @@ "typeString": "tuple()" } }, - "id": 761, + "id": 758, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -4802,27 +4802,27 @@ ] }, "documentation": { - "id": 694, + "id": 691, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 765, + "id": 762, "implemented": true, "kind": "function", "modifiers": [ { - "id": 701, + "id": 698, "kind": "modifierInvocation", "modifierName": { - "id": 700, + "id": 697, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -4833,17 +4833,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 699, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 693, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -4852,7 +4852,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 695, + "id": 692, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -4865,12 +4865,12 @@ }, { "constant": false, - "id": 698, + "id": 695, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 765, + "scope": 762, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -4879,7 +4879,7 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 694, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -4895,19 +4895,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 702, + "id": 699, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 766, + "scope": 763, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 767, + "scope": 764, "src": "276:2570:1", "usedErrors": [] } @@ -4920,5 +4920,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.548Z" + "updatedAt": "2024-06-27T12:24:25.255Z" } \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 65c2a66..645f4a0 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -195,15 +195,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ] }, - "id": 2558, + "id": 2555, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2481, + "id": 2478, "literals": [ "solidity", "^", @@ -220,15 +220,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2482, + "id": 2479, "nodeType": "StructuredDocumentation", "src": "131:70:11", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2557, + "id": 2554, "linearizedBaseContracts": [ - 2557 + 2554 ], "name": "IERC20", "nameLocation": "212:6:11", @@ -237,29 +237,29 @@ { "anonymous": false, "documentation": { - "id": 2483, + "id": 2480, "nodeType": "StructuredDocumentation", "src": "225:158:11", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2491, + "id": 2488, "name": "Transfer", "nameLocation": "394:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2490, + "id": 2487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2485, + "id": 2482, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "419:4:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "403:20:11", "stateVariable": false, "storageLocation": "default", @@ -268,7 +268,7 @@ "typeString": "address" }, "typeName": { - "id": 2484, + "id": 2481, "name": "address", "nodeType": "ElementaryTypeName", "src": "403:7:11", @@ -282,13 +282,13 @@ }, { "constant": false, - "id": 2487, + "id": 2484, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "441:2:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "425:18:11", "stateVariable": false, "storageLocation": "default", @@ -297,7 +297,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 2483, "name": "address", "nodeType": "ElementaryTypeName", "src": "425:7:11", @@ -311,13 +311,13 @@ }, { "constant": false, - "id": 2489, + "id": 2486, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "453:5:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "445:13:11", "stateVariable": false, "storageLocation": "default", @@ -326,7 +326,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 2485, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "445:7:11", @@ -345,29 +345,29 @@ { "anonymous": false, "documentation": { - "id": 2492, + "id": 2489, "nodeType": "StructuredDocumentation", "src": "466:148:11", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2500, + "id": 2497, "name": "Approval", "nameLocation": "625:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2499, + "id": 2496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2494, + "id": 2491, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "650:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "634:21:11", "stateVariable": false, "storageLocation": "default", @@ -376,7 +376,7 @@ "typeString": "address" }, "typeName": { - "id": 2493, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:11", @@ -390,13 +390,13 @@ }, { "constant": false, - "id": 2496, + "id": 2493, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "673:7:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "657:23:11", "stateVariable": false, "storageLocation": "default", @@ -405,7 +405,7 @@ "typeString": "address" }, "typeName": { - "id": 2495, + "id": 2492, "name": "address", "nodeType": "ElementaryTypeName", "src": "657:7:11", @@ -419,13 +419,13 @@ }, { "constant": false, - "id": 2498, + "id": 2495, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "690:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "682:13:11", "stateVariable": false, "storageLocation": "default", @@ -434,7 +434,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 2494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:11", @@ -452,13 +452,13 @@ }, { "documentation": { - "id": 2501, + "id": 2498, "nodeType": "StructuredDocumentation", "src": "703:66:11", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2506, + "id": 2503, "implemented": false, "kind": "function", "modifiers": [], @@ -466,23 +466,23 @@ "nameLocation": "783:11:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2502, + "id": 2499, "nodeType": "ParameterList", "parameters": [], "src": "794:2:11" }, "returnParameters": { - "id": 2505, + "id": 2502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2504, + "id": 2501, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2506, + "scope": 2503, "src": "820:7:11", "stateVariable": false, "storageLocation": "default", @@ -491,7 +491,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "820:7:11", @@ -505,7 +505,7 @@ ], "src": "819:9:11" }, - "scope": 2557, + "scope": 2554, "src": "774:55:11", "stateMutability": "view", "virtual": false, @@ -513,13 +513,13 @@ }, { "documentation": { - "id": 2507, + "id": 2504, "nodeType": "StructuredDocumentation", "src": "835:72:11", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2514, + "id": 2511, "implemented": false, "kind": "function", "modifiers": [], @@ -527,17 +527,17 @@ "nameLocation": "921:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2510, + "id": 2507, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 2506, "mutability": "mutable", "name": "account", "nameLocation": "939:7:11", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "931:15:11", "stateVariable": false, "storageLocation": "default", @@ -546,7 +546,7 @@ "typeString": "address" }, "typeName": { - "id": 2508, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "931:7:11", @@ -562,17 +562,17 @@ "src": "930:17:11" }, "returnParameters": { - "id": 2513, + "id": 2510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2512, + "id": 2509, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "971:7:11", "stateVariable": false, "storageLocation": "default", @@ -581,7 +581,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2508, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:11", @@ -595,7 +595,7 @@ ], "src": "970:9:11" }, - "scope": 2557, + "scope": 2554, "src": "912:68:11", "stateMutability": "view", "virtual": false, @@ -603,13 +603,13 @@ }, { "documentation": { - "id": 2515, + "id": 2512, "nodeType": "StructuredDocumentation", "src": "986:202:11", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2524, + "id": 2521, "implemented": false, "kind": "function", "modifiers": [], @@ -617,17 +617,17 @@ "nameLocation": "1202:8:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2520, + "id": 2517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2517, + "id": 2514, "mutability": "mutable", "name": "to", "nameLocation": "1219:2:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1211:10:11", "stateVariable": false, "storageLocation": "default", @@ -636,7 +636,7 @@ "typeString": "address" }, "typeName": { - "id": 2516, + "id": 2513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:11", @@ -650,12 +650,12 @@ }, { "constant": false, - "id": 2519, + "id": 2516, "mutability": "mutable", "name": "amount", "nameLocation": "1231:6:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1223:14:11", "stateVariable": false, "storageLocation": "default", @@ -664,7 +664,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2518, + "id": 2515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1223:7:11", @@ -679,17 +679,17 @@ "src": "1210:28:11" }, "returnParameters": { - "id": 2523, + "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2522, + "id": 2519, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1257:4:11", "stateVariable": false, "storageLocation": "default", @@ -698,7 +698,7 @@ "typeString": "bool" }, "typeName": { - "id": 2521, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1257:4:11", @@ -712,7 +712,7 @@ ], "src": "1256:6:11" }, - "scope": 2557, + "scope": 2554, "src": "1193:70:11", "stateMutability": "nonpayable", "virtual": false, @@ -720,13 +720,13 @@ }, { "documentation": { - "id": 2525, + "id": 2522, "nodeType": "StructuredDocumentation", "src": "1269:264:11", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2534, + "id": 2531, "implemented": false, "kind": "function", "modifiers": [], @@ -734,17 +734,17 @@ "nameLocation": "1547:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2530, + "id": 2527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2527, + "id": 2524, "mutability": "mutable", "name": "owner", "nameLocation": "1565:5:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1557:13:11", "stateVariable": false, "storageLocation": "default", @@ -753,7 +753,7 @@ "typeString": "address" }, "typeName": { - "id": 2526, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:11", @@ -767,12 +767,12 @@ }, { "constant": false, - "id": 2529, + "id": 2526, "mutability": "mutable", "name": "spender", "nameLocation": "1580:7:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1572:15:11", "stateVariable": false, "storageLocation": "default", @@ -781,7 +781,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2525, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:11", @@ -797,17 +797,17 @@ "src": "1556:32:11" }, "returnParameters": { - "id": 2533, + "id": 2530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2532, + "id": 2529, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1612:7:11", "stateVariable": false, "storageLocation": "default", @@ -816,7 +816,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2531, + "id": 2528, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:11", @@ -830,7 +830,7 @@ ], "src": "1611:9:11" }, - "scope": 2557, + "scope": 2554, "src": "1538:83:11", "stateMutability": "view", "virtual": false, @@ -838,13 +838,13 @@ }, { "documentation": { - "id": 2535, + "id": 2532, "nodeType": "StructuredDocumentation", "src": "1627:642:11", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2544, + "id": 2541, "implemented": false, "kind": "function", "modifiers": [], @@ -852,17 +852,17 @@ "nameLocation": "2283:7:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2540, + "id": 2537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2537, + "id": 2534, "mutability": "mutable", "name": "spender", "nameLocation": "2299:7:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2291:15:11", "stateVariable": false, "storageLocation": "default", @@ -871,7 +871,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2291:7:11", @@ -885,12 +885,12 @@ }, { "constant": false, - "id": 2539, + "id": 2536, "mutability": "mutable", "name": "amount", "nameLocation": "2316:6:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2308:14:11", "stateVariable": false, "storageLocation": "default", @@ -899,7 +899,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2538, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2308:7:11", @@ -914,17 +914,17 @@ "src": "2290:33:11" }, "returnParameters": { - "id": 2543, + "id": 2540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2542, + "id": 2539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2342:4:11", "stateVariable": false, "storageLocation": "default", @@ -933,7 +933,7 @@ "typeString": "bool" }, "typeName": { - "id": 2541, + "id": 2538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2342:4:11", @@ -947,7 +947,7 @@ ], "src": "2341:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2274:74:11", "stateMutability": "nonpayable", "virtual": false, @@ -955,13 +955,13 @@ }, { "documentation": { - "id": 2545, + "id": 2542, "nodeType": "StructuredDocumentation", "src": "2354:287:11", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2556, + "id": 2553, "implemented": false, "kind": "function", "modifiers": [], @@ -969,17 +969,17 @@ "nameLocation": "2655:12:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2552, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2547, + "id": 2544, "mutability": "mutable", "name": "from", "nameLocation": "2676:4:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2668:12:11", "stateVariable": false, "storageLocation": "default", @@ -988,7 +988,7 @@ "typeString": "address" }, "typeName": { - "id": 2546, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", "src": "2668:7:11", @@ -1002,12 +1002,12 @@ }, { "constant": false, - "id": 2549, + "id": 2546, "mutability": "mutable", "name": "to", "nameLocation": "2690:2:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2682:10:11", "stateVariable": false, "storageLocation": "default", @@ -1016,7 +1016,7 @@ "typeString": "address" }, "typeName": { - "id": 2548, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", "src": "2682:7:11", @@ -1030,12 +1030,12 @@ }, { "constant": false, - "id": 2551, + "id": 2548, "mutability": "mutable", "name": "amount", "nameLocation": "2702:6:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2694:14:11", "stateVariable": false, "storageLocation": "default", @@ -1044,7 +1044,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2694:7:11", @@ -1059,17 +1059,17 @@ "src": "2667:42:11" }, "returnParameters": { - "id": 2555, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2554, + "id": 2551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2728:4:11", "stateVariable": false, "storageLocation": "default", @@ -1078,7 +1078,7 @@ "typeString": "bool" }, "typeName": { - "id": 2553, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2728:4:11", @@ -1092,14 +1092,14 @@ ], "src": "2727:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2646:88:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2558, + "scope": 2555, "src": "202:2534:11", "usedErrors": [] } @@ -1110,15 +1110,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ] }, - "id": 2558, + "id": 2555, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2481, + "id": 2478, "literals": [ "solidity", "^", @@ -1135,15 +1135,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2482, + "id": 2479, "nodeType": "StructuredDocumentation", "src": "131:70:11", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2557, + "id": 2554, "linearizedBaseContracts": [ - 2557 + 2554 ], "name": "IERC20", "nameLocation": "212:6:11", @@ -1152,29 +1152,29 @@ { "anonymous": false, "documentation": { - "id": 2483, + "id": 2480, "nodeType": "StructuredDocumentation", "src": "225:158:11", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2491, + "id": 2488, "name": "Transfer", "nameLocation": "394:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2490, + "id": 2487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2485, + "id": 2482, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "419:4:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "403:20:11", "stateVariable": false, "storageLocation": "default", @@ -1183,7 +1183,7 @@ "typeString": "address" }, "typeName": { - "id": 2484, + "id": 2481, "name": "address", "nodeType": "ElementaryTypeName", "src": "403:7:11", @@ -1197,13 +1197,13 @@ }, { "constant": false, - "id": 2487, + "id": 2484, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "441:2:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "425:18:11", "stateVariable": false, "storageLocation": "default", @@ -1212,7 +1212,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 2483, "name": "address", "nodeType": "ElementaryTypeName", "src": "425:7:11", @@ -1226,13 +1226,13 @@ }, { "constant": false, - "id": 2489, + "id": 2486, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "453:5:11", "nodeType": "VariableDeclaration", - "scope": 2491, + "scope": 2488, "src": "445:13:11", "stateVariable": false, "storageLocation": "default", @@ -1241,7 +1241,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 2485, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "445:7:11", @@ -1260,29 +1260,29 @@ { "anonymous": false, "documentation": { - "id": 2492, + "id": 2489, "nodeType": "StructuredDocumentation", "src": "466:148:11", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2500, + "id": 2497, "name": "Approval", "nameLocation": "625:8:11", "nodeType": "EventDefinition", "parameters": { - "id": 2499, + "id": 2496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2494, + "id": 2491, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "650:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "634:21:11", "stateVariable": false, "storageLocation": "default", @@ -1291,7 +1291,7 @@ "typeString": "address" }, "typeName": { - "id": 2493, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:11", @@ -1305,13 +1305,13 @@ }, { "constant": false, - "id": 2496, + "id": 2493, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "673:7:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "657:23:11", "stateVariable": false, "storageLocation": "default", @@ -1320,7 +1320,7 @@ "typeString": "address" }, "typeName": { - "id": 2495, + "id": 2492, "name": "address", "nodeType": "ElementaryTypeName", "src": "657:7:11", @@ -1334,13 +1334,13 @@ }, { "constant": false, - "id": 2498, + "id": 2495, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "690:5:11", "nodeType": "VariableDeclaration", - "scope": 2500, + "scope": 2497, "src": "682:13:11", "stateVariable": false, "storageLocation": "default", @@ -1349,7 +1349,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 2494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:11", @@ -1367,13 +1367,13 @@ }, { "documentation": { - "id": 2501, + "id": 2498, "nodeType": "StructuredDocumentation", "src": "703:66:11", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2506, + "id": 2503, "implemented": false, "kind": "function", "modifiers": [], @@ -1381,23 +1381,23 @@ "nameLocation": "783:11:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2502, + "id": 2499, "nodeType": "ParameterList", "parameters": [], "src": "794:2:11" }, "returnParameters": { - "id": 2505, + "id": 2502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2504, + "id": 2501, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2506, + "scope": 2503, "src": "820:7:11", "stateVariable": false, "storageLocation": "default", @@ -1406,7 +1406,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "820:7:11", @@ -1420,7 +1420,7 @@ ], "src": "819:9:11" }, - "scope": 2557, + "scope": 2554, "src": "774:55:11", "stateMutability": "view", "virtual": false, @@ -1428,13 +1428,13 @@ }, { "documentation": { - "id": 2507, + "id": 2504, "nodeType": "StructuredDocumentation", "src": "835:72:11", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2514, + "id": 2511, "implemented": false, "kind": "function", "modifiers": [], @@ -1442,17 +1442,17 @@ "nameLocation": "921:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2510, + "id": 2507, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 2506, "mutability": "mutable", "name": "account", "nameLocation": "939:7:11", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "931:15:11", "stateVariable": false, "storageLocation": "default", @@ -1461,7 +1461,7 @@ "typeString": "address" }, "typeName": { - "id": 2508, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "931:7:11", @@ -1477,17 +1477,17 @@ "src": "930:17:11" }, "returnParameters": { - "id": 2513, + "id": 2510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2512, + "id": 2509, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2514, + "scope": 2511, "src": "971:7:11", "stateVariable": false, "storageLocation": "default", @@ -1496,7 +1496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2508, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:11", @@ -1510,7 +1510,7 @@ ], "src": "970:9:11" }, - "scope": 2557, + "scope": 2554, "src": "912:68:11", "stateMutability": "view", "virtual": false, @@ -1518,13 +1518,13 @@ }, { "documentation": { - "id": 2515, + "id": 2512, "nodeType": "StructuredDocumentation", "src": "986:202:11", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2524, + "id": 2521, "implemented": false, "kind": "function", "modifiers": [], @@ -1532,17 +1532,17 @@ "nameLocation": "1202:8:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2520, + "id": 2517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2517, + "id": 2514, "mutability": "mutable", "name": "to", "nameLocation": "1219:2:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1211:10:11", "stateVariable": false, "storageLocation": "default", @@ -1551,7 +1551,7 @@ "typeString": "address" }, "typeName": { - "id": 2516, + "id": 2513, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:11", @@ -1565,12 +1565,12 @@ }, { "constant": false, - "id": 2519, + "id": 2516, "mutability": "mutable", "name": "amount", "nameLocation": "1231:6:11", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1223:14:11", "stateVariable": false, "storageLocation": "default", @@ -1579,7 +1579,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2518, + "id": 2515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1223:7:11", @@ -1594,17 +1594,17 @@ "src": "1210:28:11" }, "returnParameters": { - "id": 2523, + "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2522, + "id": 2519, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2524, + "scope": 2521, "src": "1257:4:11", "stateVariable": false, "storageLocation": "default", @@ -1613,7 +1613,7 @@ "typeString": "bool" }, "typeName": { - "id": 2521, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1257:4:11", @@ -1627,7 +1627,7 @@ ], "src": "1256:6:11" }, - "scope": 2557, + "scope": 2554, "src": "1193:70:11", "stateMutability": "nonpayable", "virtual": false, @@ -1635,13 +1635,13 @@ }, { "documentation": { - "id": 2525, + "id": 2522, "nodeType": "StructuredDocumentation", "src": "1269:264:11", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2534, + "id": 2531, "implemented": false, "kind": "function", "modifiers": [], @@ -1649,17 +1649,17 @@ "nameLocation": "1547:9:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2530, + "id": 2527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2527, + "id": 2524, "mutability": "mutable", "name": "owner", "nameLocation": "1565:5:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1557:13:11", "stateVariable": false, "storageLocation": "default", @@ -1668,7 +1668,7 @@ "typeString": "address" }, "typeName": { - "id": 2526, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:11", @@ -1682,12 +1682,12 @@ }, { "constant": false, - "id": 2529, + "id": 2526, "mutability": "mutable", "name": "spender", "nameLocation": "1580:7:11", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1572:15:11", "stateVariable": false, "storageLocation": "default", @@ -1696,7 +1696,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 2525, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:11", @@ -1712,17 +1712,17 @@ "src": "1556:32:11" }, "returnParameters": { - "id": 2533, + "id": 2530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2532, + "id": 2529, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2534, + "scope": 2531, "src": "1612:7:11", "stateVariable": false, "storageLocation": "default", @@ -1731,7 +1731,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2531, + "id": 2528, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:11", @@ -1745,7 +1745,7 @@ ], "src": "1611:9:11" }, - "scope": 2557, + "scope": 2554, "src": "1538:83:11", "stateMutability": "view", "virtual": false, @@ -1753,13 +1753,13 @@ }, { "documentation": { - "id": 2535, + "id": 2532, "nodeType": "StructuredDocumentation", "src": "1627:642:11", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2544, + "id": 2541, "implemented": false, "kind": "function", "modifiers": [], @@ -1767,17 +1767,17 @@ "nameLocation": "2283:7:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2540, + "id": 2537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2537, + "id": 2534, "mutability": "mutable", "name": "spender", "nameLocation": "2299:7:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2291:15:11", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1786,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2291:7:11", @@ -1800,12 +1800,12 @@ }, { "constant": false, - "id": 2539, + "id": 2536, "mutability": "mutable", "name": "amount", "nameLocation": "2316:6:11", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2308:14:11", "stateVariable": false, "storageLocation": "default", @@ -1814,7 +1814,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2538, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2308:7:11", @@ -1829,17 +1829,17 @@ "src": "2290:33:11" }, "returnParameters": { - "id": 2543, + "id": 2540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2542, + "id": 2539, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2544, + "scope": 2541, "src": "2342:4:11", "stateVariable": false, "storageLocation": "default", @@ -1848,7 +1848,7 @@ "typeString": "bool" }, "typeName": { - "id": 2541, + "id": 2538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2342:4:11", @@ -1862,7 +1862,7 @@ ], "src": "2341:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2274:74:11", "stateMutability": "nonpayable", "virtual": false, @@ -1870,13 +1870,13 @@ }, { "documentation": { - "id": 2545, + "id": 2542, "nodeType": "StructuredDocumentation", "src": "2354:287:11", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2556, + "id": 2553, "implemented": false, "kind": "function", "modifiers": [], @@ -1884,17 +1884,17 @@ "nameLocation": "2655:12:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 2552, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2547, + "id": 2544, "mutability": "mutable", "name": "from", "nameLocation": "2676:4:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2668:12:11", "stateVariable": false, "storageLocation": "default", @@ -1903,7 +1903,7 @@ "typeString": "address" }, "typeName": { - "id": 2546, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", "src": "2668:7:11", @@ -1917,12 +1917,12 @@ }, { "constant": false, - "id": 2549, + "id": 2546, "mutability": "mutable", "name": "to", "nameLocation": "2690:2:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2682:10:11", "stateVariable": false, "storageLocation": "default", @@ -1931,7 +1931,7 @@ "typeString": "address" }, "typeName": { - "id": 2548, + "id": 2545, "name": "address", "nodeType": "ElementaryTypeName", "src": "2682:7:11", @@ -1945,12 +1945,12 @@ }, { "constant": false, - "id": 2551, + "id": 2548, "mutability": "mutable", "name": "amount", "nameLocation": "2702:6:11", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2694:14:11", "stateVariable": false, "storageLocation": "default", @@ -1959,7 +1959,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2694:7:11", @@ -1974,17 +1974,17 @@ "src": "2667:42:11" }, "returnParameters": { - "id": 2555, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2554, + "id": 2551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2556, + "scope": 2553, "src": "2728:4:11", "stateVariable": false, "storageLocation": "default", @@ -1993,7 +1993,7 @@ "typeString": "bool" }, "typeName": { - "id": 2553, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2728:4:11", @@ -2007,14 +2007,14 @@ ], "src": "2727:6:11" }, - "scope": 2557, + "scope": 2554, "src": "2646:88:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2558, + "scope": 2555, "src": "202:2534:11", "usedErrors": [] } @@ -2027,5 +2027,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.561Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/IERC20Metadata.json b/build/contracts/IERC20Metadata.json index 9e635b0..274e697 100644 --- a/build/contracts/IERC20Metadata.json +++ b/build/contracts/IERC20Metadata.json @@ -234,18 +234,18 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2583, + "id": 2580, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2559, + "id": 2556, "literals": [ "solidity", "^", @@ -258,11 +258,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "../IERC20.sol", - "id": 2560, + "id": 2557, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2583, - "sourceUnit": 2558, + "scope": 2580, + "sourceUnit": 2555, "src": "135:23:12", "symbolAliases": [], "unitAlias": "" @@ -272,16 +272,16 @@ "baseContracts": [ { "baseName": { - "id": 2562, + "id": 2559, "name": "IERC20", "nameLocations": [ "305:6:12" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "305:6:12" }, - "id": 2563, + "id": 2560, "nodeType": "InheritanceSpecifier", "src": "305:6:12" } @@ -290,16 +290,16 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2561, + "id": 2558, "nodeType": "StructuredDocumentation", "src": "160:116:12", "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" }, "fullyImplemented": false, - "id": 2582, + "id": 2579, "linearizedBaseContracts": [ - 2582, - 2557 + 2579, + 2554 ], "name": "IERC20Metadata", "nameLocation": "287:14:12", @@ -307,13 +307,13 @@ "nodes": [ { "documentation": { - "id": 2564, + "id": 2561, "nodeType": "StructuredDocumentation", "src": "318:54:12", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 2569, + "id": 2566, "implemented": false, "kind": "function", "modifiers": [], @@ -321,23 +321,23 @@ "nameLocation": "386:4:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2565, + "id": 2562, "nodeType": "ParameterList", "parameters": [], "src": "390:2:12" }, "returnParameters": { - "id": 2568, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2567, + "id": 2564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2569, + "scope": 2566, "src": "416:13:12", "stateVariable": false, "storageLocation": "memory", @@ -346,7 +346,7 @@ "typeString": "string" }, "typeName": { - "id": 2566, + "id": 2563, "name": "string", "nodeType": "ElementaryTypeName", "src": "416:6:12", @@ -360,7 +360,7 @@ ], "src": "415:15:12" }, - "scope": 2582, + "scope": 2579, "src": "377:54:12", "stateMutability": "view", "virtual": false, @@ -368,13 +368,13 @@ }, { "documentation": { - "id": 2570, + "id": 2567, "nodeType": "StructuredDocumentation", "src": "437:56:12", "text": " @dev Returns the symbol of the token." }, "functionSelector": "95d89b41", - "id": 2575, + "id": 2572, "implemented": false, "kind": "function", "modifiers": [], @@ -382,23 +382,23 @@ "nameLocation": "507:6:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2571, + "id": 2568, "nodeType": "ParameterList", "parameters": [], "src": "513:2:12" }, "returnParameters": { - "id": 2574, + "id": 2571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2573, + "id": 2570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2575, + "scope": 2572, "src": "539:13:12", "stateVariable": false, "storageLocation": "memory", @@ -407,7 +407,7 @@ "typeString": "string" }, "typeName": { - "id": 2572, + "id": 2569, "name": "string", "nodeType": "ElementaryTypeName", "src": "539:6:12", @@ -421,7 +421,7 @@ ], "src": "538:15:12" }, - "scope": 2582, + "scope": 2579, "src": "498:56:12", "stateMutability": "view", "virtual": false, @@ -429,13 +429,13 @@ }, { "documentation": { - "id": 2576, + "id": 2573, "nodeType": "StructuredDocumentation", "src": "560:65:12", "text": " @dev Returns the decimals places of the token." }, "functionSelector": "313ce567", - "id": 2581, + "id": 2578, "implemented": false, "kind": "function", "modifiers": [], @@ -443,23 +443,23 @@ "nameLocation": "639:8:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2574, "nodeType": "ParameterList", "parameters": [], "src": "647:2:12" }, "returnParameters": { - "id": 2580, + "id": 2577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2576, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2581, + "scope": 2578, "src": "673:5:12", "stateVariable": false, "storageLocation": "default", @@ -468,7 +468,7 @@ "typeString": "uint8" }, "typeName": { - "id": 2578, + "id": 2575, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "673:5:12", @@ -482,14 +482,14 @@ ], "src": "672:7:12" }, - "scope": 2582, + "scope": 2579, "src": "630:50:12", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2583, + "scope": 2580, "src": "277:405:12", "usedErrors": [] } @@ -500,18 +500,18 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IERC20Metadata": [ - 2582 + 2579 ] }, - "id": 2583, + "id": 2580, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2559, + "id": 2556, "literals": [ "solidity", "^", @@ -524,11 +524,11 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "../IERC20.sol", - "id": 2560, + "id": 2557, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2583, - "sourceUnit": 2558, + "scope": 2580, + "sourceUnit": 2555, "src": "135:23:12", "symbolAliases": [], "unitAlias": "" @@ -538,16 +538,16 @@ "baseContracts": [ { "baseName": { - "id": 2562, + "id": 2559, "name": "IERC20", "nameLocations": [ "305:6:12" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "305:6:12" }, - "id": 2563, + "id": 2560, "nodeType": "InheritanceSpecifier", "src": "305:6:12" } @@ -556,16 +556,16 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2561, + "id": 2558, "nodeType": "StructuredDocumentation", "src": "160:116:12", "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" }, "fullyImplemented": false, - "id": 2582, + "id": 2579, "linearizedBaseContracts": [ - 2582, - 2557 + 2579, + 2554 ], "name": "IERC20Metadata", "nameLocation": "287:14:12", @@ -573,13 +573,13 @@ "nodes": [ { "documentation": { - "id": 2564, + "id": 2561, "nodeType": "StructuredDocumentation", "src": "318:54:12", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", - "id": 2569, + "id": 2566, "implemented": false, "kind": "function", "modifiers": [], @@ -587,23 +587,23 @@ "nameLocation": "386:4:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2565, + "id": 2562, "nodeType": "ParameterList", "parameters": [], "src": "390:2:12" }, "returnParameters": { - "id": 2568, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2567, + "id": 2564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2569, + "scope": 2566, "src": "416:13:12", "stateVariable": false, "storageLocation": "memory", @@ -612,7 +612,7 @@ "typeString": "string" }, "typeName": { - "id": 2566, + "id": 2563, "name": "string", "nodeType": "ElementaryTypeName", "src": "416:6:12", @@ -626,7 +626,7 @@ ], "src": "415:15:12" }, - "scope": 2582, + "scope": 2579, "src": "377:54:12", "stateMutability": "view", "virtual": false, @@ -634,13 +634,13 @@ }, { "documentation": { - "id": 2570, + "id": 2567, "nodeType": "StructuredDocumentation", "src": "437:56:12", "text": " @dev Returns the symbol of the token." }, "functionSelector": "95d89b41", - "id": 2575, + "id": 2572, "implemented": false, "kind": "function", "modifiers": [], @@ -648,23 +648,23 @@ "nameLocation": "507:6:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2571, + "id": 2568, "nodeType": "ParameterList", "parameters": [], "src": "513:2:12" }, "returnParameters": { - "id": 2574, + "id": 2571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2573, + "id": 2570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2575, + "scope": 2572, "src": "539:13:12", "stateVariable": false, "storageLocation": "memory", @@ -673,7 +673,7 @@ "typeString": "string" }, "typeName": { - "id": 2572, + "id": 2569, "name": "string", "nodeType": "ElementaryTypeName", "src": "539:6:12", @@ -687,7 +687,7 @@ ], "src": "538:15:12" }, - "scope": 2582, + "scope": 2579, "src": "498:56:12", "stateMutability": "view", "virtual": false, @@ -695,13 +695,13 @@ }, { "documentation": { - "id": 2576, + "id": 2573, "nodeType": "StructuredDocumentation", "src": "560:65:12", "text": " @dev Returns the decimals places of the token." }, "functionSelector": "313ce567", - "id": 2581, + "id": 2578, "implemented": false, "kind": "function", "modifiers": [], @@ -709,23 +709,23 @@ "nameLocation": "639:8:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2574, "nodeType": "ParameterList", "parameters": [], "src": "647:2:12" }, "returnParameters": { - "id": 2580, + "id": 2577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2576, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2581, + "scope": 2578, "src": "673:5:12", "stateVariable": false, "storageLocation": "default", @@ -734,7 +734,7 @@ "typeString": "uint8" }, "typeName": { - "id": 2578, + "id": 2575, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "673:5:12", @@ -748,14 +748,14 @@ ], "src": "672:7:12" }, - "scope": 2582, + "scope": 2579, "src": "630:50:12", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2583, + "scope": 2580, "src": "277:405:12", "usedErrors": [] } @@ -768,5 +768,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.558Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/IGateway.json b/build/contracts/IGateway.json index 4658197..339e6b1 100644 --- a/build/contracts/IGateway.json +++ b/build/contracts/IGateway.json @@ -340,23 +340,23 @@ "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';\n\n/**\n * @title IGateway\n * @notice Interface for the Gateway contract.\n */\ninterface IGateway {\n\t/* ##################################################################\n EVENTS\n ################################################################## */\n\t/**\n\t * @dev Emitted when a deposit is made.\n\t * @param sender The address of the sender.\n\t * @param token The address of the deposited token.\n\t * @param amount The amount of the deposit.\n\t * @param orderId The ID of the order.\n\t * @param rate The rate at which the deposit is made.\n\t * @param messageHash The hash of the message.\n\t */\n\tevent OrderCreated(\n\t\taddress indexed sender,\n\t\taddress indexed token,\n\t\tuint256 indexed amount,\n\t\tuint256 protocolFee,\n\t\tbytes32 orderId,\n\t\tuint256 rate,\n\t\tstring messageHash\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator settles a transaction.\n\t * @param splitOrderId The ID of the split order.\n\t * @param orderId The ID of the order.\n\t * @param liquidityProvider The address of the liquidity provider.\n\t * @param settlePercent The percentage at which the transaction is settled.\n\t */\n\tevent OrderSettled(\n\t\tbytes32 splitOrderId,\n\t\tbytes32 indexed orderId,\n\t\taddress indexed liquidityProvider,\n\t\tuint96 settlePercent\n\t);\n\n\t/**\n\t * @dev Emitted when an aggregator refunds a transaction.\n\t * @param fee The fee deducted from the refund amount.\n\t * @param orderId The ID of the order.\n\t */\n\tevent OrderRefunded(uint256 fee, bytes32 indexed orderId);\n\n\t/**\n\t * @dev Emitted when the sender's fee is transferred.\n\t * @param sender The address of the sender.\n\t * @param amount The amount of the fee transferred.\n\t */\n\tevent SenderFeeTransferred(address indexed sender, uint256 indexed amount);\n\n\t/* ##################################################################\n STRUCTS\n ################################################################## */\n\t/**\n\t * @dev Struct representing an order.\n\t * @param sender The address of the sender.\n\t * @param token The address of the token.\n\t * @param senderFeeRecipient The address of the sender fee recipient.\n\t * @param senderFee The fee to be paid to the sender fee recipient.\n\t * @param protocolFee The protocol fee to be paid.\n\t * @param isFulfilled Whether the order is fulfilled.\n\t * @param isRefunded Whether the order is refunded.\n\t * @param refundAddress The address to which the refund is made.\n\t * @param currentBPS The current basis points.\n\t * @param amount The amount of the order.\n\t */\n\tstruct Order {\n\t\taddress sender;\n\t\taddress token;\n\t\taddress senderFeeRecipient;\n\t\tuint256 senderFee;\n\t\tuint256 protocolFee;\n\t\tbool isFulfilled;\n\t\tbool isRefunded;\n\t\taddress refundAddress;\n\t\tuint96 currentBPS;\n\t\tuint256 amount;\n\t}\n\n\t/* ##################################################################\n EXTERNAL CALLS\n ################################################################## */\n\t/**\n\t * @notice Locks the sender's amount of token into Gateway.\n\t * @dev Requirements:\n\t * - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n\t * - `_token` must be an acceptable token. See {isTokenSupported}.\n\t * - `amount` must be greater than minimum.\n\t * - `_refundAddress` refund address must not be zero address.\n\t * @param _token The address of the token.\n\t * @param _amount The amount in the decimal of `_token` to be locked.\n\t * @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n\t * @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n\t * @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n\t * @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n\t * @param messageHash The hash of the message.\n\t * @return _orderId The ID of the order.\n\t */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external returns (bytes32 _orderId);\n\n\t/**\n\t * @notice Settles a transaction and distributes rewards accordingly.\n\t * @param _splitOrderId The ID of the split order.\n\t * @param _orderId The ID of the transaction.\n\t * @param _liquidityProvider The address of the liquidity provider.\n\t * @param _settlePercent The rate at which the transaction is settled.\n\t * @return bool the settlement is successful.\n\t */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external returns (bool);\n\n\t/**\n\t * @notice Refunds to the specified refundable address.\n\t * @dev Requirements:\n\t * - Only aggregators can call this function.\n\t * @param _fee The amount to be deducted from the amount to be refunded.\n\t * @param _orderId The ID of the transaction.\n\t * @return bool the refund is successful.\n\t */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external returns (bool);\n\n\t/**\n\t * @notice Checks if a token is supported by Gateway.\n\t * @param _token The address of the token to check.\n\t * @return bool the token is supported.\n\t */\n\tfunction isTokenSupported(address _token) external view returns (bool);\n\n\t/**\n\t * @notice Gets the details of an order.\n\t * @param _orderId The ID of the order.\n\t * @return Order The order details.\n\t */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory);\n\n\t/**\n\t * @notice Gets the fee details of Gateway.\n\t * @return protocolReward The protocol reward amount.\n\t * @return max_bps The maximum basis points.\n\t */\n\tfunction getFeeDetails() external view returns (uint64 protocolReward, uint256 max_bps);\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ] }, - "id": 905, + "id": 902, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 768, + "id": 765, "literals": [ "solidity", "^", @@ -369,20 +369,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 770, + "id": 767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 905, - "sourceUnit": 2558, + "scope": 902, + "sourceUnit": 2555, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 769, + "id": 766, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "73:6:2", "typeDescriptions": {} }, @@ -398,15 +398,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 771, + "id": 768, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 904, + "id": 901, "linearizedBaseContracts": [ - 904 + 901 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -415,29 +415,29 @@ { "anonymous": false, "documentation": { - "id": 772, + "id": 769, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 788, + "id": 785, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 787, + "id": 784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 774, + "id": 771, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -446,7 +446,7 @@ "typeString": "address" }, "typeName": { - "id": 773, + "id": 770, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -460,13 +460,13 @@ }, { "constant": false, - "id": 776, + "id": 773, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -475,7 +475,7 @@ "typeString": "address" }, "typeName": { - "id": 775, + "id": 772, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -489,13 +489,13 @@ }, { "constant": false, - "id": 778, + "id": 775, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -504,7 +504,7 @@ "typeString": "uint256" }, "typeName": { - "id": 777, + "id": 774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -517,13 +517,13 @@ }, { "constant": false, - "id": 780, + "id": 777, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -532,7 +532,7 @@ "typeString": "uint256" }, "typeName": { - "id": 779, + "id": 776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -545,13 +545,13 @@ }, { "constant": false, - "id": 782, + "id": 779, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -560,7 +560,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 781, + "id": 778, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -573,13 +573,13 @@ }, { "constant": false, - "id": 784, + "id": 781, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -588,7 +588,7 @@ "typeString": "uint256" }, "typeName": { - "id": 783, + "id": 780, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -601,13 +601,13 @@ }, { "constant": false, - "id": 786, + "id": 783, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -616,7 +616,7 @@ "typeString": "string" }, "typeName": { - "id": 785, + "id": 782, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -635,29 +635,29 @@ { "anonymous": false, "documentation": { - "id": 789, + "id": 786, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 799, + "id": 796, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 798, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 788, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -666,7 +666,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 790, + "id": 787, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -679,13 +679,13 @@ }, { "constant": false, - "id": 793, + "id": 790, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -694,7 +694,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 792, + "id": 789, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -707,13 +707,13 @@ }, { "constant": false, - "id": 795, + "id": 792, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -722,7 +722,7 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 791, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -736,13 +736,13 @@ }, { "constant": false, - "id": 797, + "id": 794, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -751,7 +751,7 @@ "typeString": "uint96" }, "typeName": { - "id": 796, + "id": 793, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -770,29 +770,29 @@ { "anonymous": false, "documentation": { - "id": 800, + "id": 797, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 806, + "id": 803, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 805, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 802, + "id": 799, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -801,7 +801,7 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -814,13 +814,13 @@ }, { "constant": false, - "id": 804, + "id": 801, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -829,7 +829,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 803, + "id": 800, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -848,29 +848,29 @@ { "anonymous": false, "documentation": { - "id": 807, + "id": 804, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 813, + "id": 810, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 812, + "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 809, + "id": 806, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -879,7 +879,7 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -893,13 +893,13 @@ }, { "constant": false, - "id": 811, + "id": 808, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -908,7 +908,7 @@ "typeString": "uint256" }, "typeName": { - "id": 810, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -926,16 +926,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 834, + "id": 831, "members": [ { "constant": false, - "id": 815, + "id": 812, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -944,7 +944,7 @@ "typeString": "address" }, "typeName": { - "id": 814, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -958,12 +958,12 @@ }, { "constant": false, - "id": 817, + "id": 814, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -972,7 +972,7 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 813, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -986,12 +986,12 @@ }, { "constant": false, - "id": 819, + "id": 816, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -1000,7 +1000,7 @@ "typeString": "address" }, "typeName": { - "id": 818, + "id": 815, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -1014,12 +1014,12 @@ }, { "constant": false, - "id": 821, + "id": 818, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -1028,7 +1028,7 @@ "typeString": "uint256" }, "typeName": { - "id": 820, + "id": 817, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -1041,12 +1041,12 @@ }, { "constant": false, - "id": 823, + "id": 820, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -1055,7 +1055,7 @@ "typeString": "uint256" }, "typeName": { - "id": 822, + "id": 819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -1068,12 +1068,12 @@ }, { "constant": false, - "id": 825, + "id": 822, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -1082,7 +1082,7 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 821, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -1095,12 +1095,12 @@ }, { "constant": false, - "id": 827, + "id": 824, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -1109,7 +1109,7 @@ "typeString": "bool" }, "typeName": { - "id": 826, + "id": 823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -1122,12 +1122,12 @@ }, { "constant": false, - "id": 829, + "id": 826, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -1136,7 +1136,7 @@ "typeString": "address" }, "typeName": { - "id": 828, + "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -1150,12 +1150,12 @@ }, { "constant": false, - "id": 831, + "id": 828, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -1164,7 +1164,7 @@ "typeString": "uint96" }, "typeName": { - "id": 830, + "id": 827, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -1177,12 +1177,12 @@ }, { "constant": false, - "id": 833, + "id": 830, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -1191,7 +1191,7 @@ "typeString": "uint256" }, "typeName": { - "id": 832, + "id": 829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -1206,19 +1206,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 904, + "scope": 901, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 835, + "id": 832, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 854, + "id": 851, "implemented": false, "kind": "function", "modifiers": [], @@ -1226,17 +1226,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 837, + "id": 834, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -1245,7 +1245,7 @@ "typeString": "address" }, "typeName": { - "id": 836, + "id": 833, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -1259,12 +1259,12 @@ }, { "constant": false, - "id": 839, + "id": 836, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -1273,7 +1273,7 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -1286,12 +1286,12 @@ }, { "constant": false, - "id": 841, + "id": 838, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -1300,7 +1300,7 @@ "typeString": "uint96" }, "typeName": { - "id": 840, + "id": 837, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -1313,12 +1313,12 @@ }, { "constant": false, - "id": 843, + "id": 840, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -1327,7 +1327,7 @@ "typeString": "address" }, "typeName": { - "id": 842, + "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -1341,12 +1341,12 @@ }, { "constant": false, - "id": 845, + "id": 842, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -1355,7 +1355,7 @@ "typeString": "uint256" }, "typeName": { - "id": 844, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -1368,12 +1368,12 @@ }, { "constant": false, - "id": 847, + "id": 844, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -1382,7 +1382,7 @@ "typeString": "address" }, "typeName": { - "id": 846, + "id": 843, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -1396,12 +1396,12 @@ }, { "constant": false, - "id": 849, + "id": 846, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -1410,7 +1410,7 @@ "typeString": "string" }, "typeName": { - "id": 848, + "id": 845, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -1425,17 +1425,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 853, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 849, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -1444,7 +1444,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 851, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -1458,7 +1458,7 @@ ], "src": "4218:18:2" }, - "scope": 904, + "scope": 901, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -1466,13 +1466,13 @@ }, { "documentation": { - "id": 855, + "id": 852, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 868, + "id": 865, "implemented": false, "kind": "function", "modifiers": [], @@ -1480,17 +1480,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 864, + "id": 861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 857, + "id": 854, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -1499,7 +1499,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 856, + "id": 853, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -1512,12 +1512,12 @@ }, { "constant": false, - "id": 859, + "id": 856, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -1526,7 +1526,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 858, + "id": 855, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -1539,12 +1539,12 @@ }, { "constant": false, - "id": 861, + "id": 858, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -1553,7 +1553,7 @@ "typeString": "address" }, "typeName": { - "id": 860, + "id": 857, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -1567,12 +1567,12 @@ }, { "constant": false, - "id": 863, + "id": 860, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -1581,7 +1581,7 @@ "typeString": "uint64" }, "typeName": { - "id": 862, + "id": 859, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -1596,17 +1596,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 867, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 863, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -1615,7 +1615,7 @@ "typeString": "bool" }, "typeName": { - "id": 865, + "id": 862, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -1629,7 +1629,7 @@ ], "src": "4744:6:2" }, - "scope": 904, + "scope": 901, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -1637,13 +1637,13 @@ }, { "documentation": { - "id": 869, + "id": 866, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 878, + "id": 875, "implemented": false, "kind": "function", "modifiers": [], @@ -1651,17 +1651,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 868, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -1670,7 +1670,7 @@ "typeString": "uint256" }, "typeName": { - "id": 870, + "id": 867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -1683,12 +1683,12 @@ }, { "constant": false, - "id": 873, + "id": 870, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -1697,7 +1697,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 872, + "id": 869, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -1712,17 +1712,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 877, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 873, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -1731,7 +1731,7 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 872, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -1745,7 +1745,7 @@ ], "src": "5120:6:2" }, - "scope": 904, + "scope": 901, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -1753,13 +1753,13 @@ }, { "documentation": { - "id": 879, + "id": 876, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 886, + "id": 883, "implemented": false, "kind": "function", "modifiers": [], @@ -1767,17 +1767,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 878, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1786,7 @@ "typeString": "address" }, "typeName": { - "id": 880, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -1802,17 +1802,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 885, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -1821,7 +1821,7 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -1835,7 +1835,7 @@ ], "src": "5353:6:2" }, - "scope": 904, + "scope": 901, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -1843,13 +1843,13 @@ }, { "documentation": { - "id": 887, + "id": 884, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 895, + "id": 892, "implemented": false, "kind": "function", "modifiers": [], @@ -1857,17 +1857,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 889, + "id": 886, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -1876,7 +1876,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 885, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -1891,41 +1891,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 894, + "id": 891, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 890, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 892, + "id": 889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 891, + "id": 888, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -1934,7 +1934,7 @@ ], "src": "5555:14:2" }, - "scope": 904, + "scope": 901, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -1942,13 +1942,13 @@ }, { "documentation": { - "id": 896, + "id": 893, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 903, + "id": 900, "implemented": false, "kind": "function", "modifiers": [], @@ -1956,23 +1956,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 897, + "id": 894, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 902, + "id": 899, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 899, + "id": 896, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -1981,7 +1981,7 @@ "typeString": "uint64" }, "typeName": { - "id": 898, + "id": 895, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -1994,12 +1994,12 @@ }, { "constant": false, - "id": 901, + "id": 898, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -2008,7 +2008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 900, + "id": 897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -2022,14 +2022,14 @@ ], "src": "5776:40:2" }, - "scope": 904, + "scope": 901, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 905, + "scope": 902, "src": "211:5608:2", "usedErrors": [] } @@ -2037,21 +2037,21 @@ "src": "39:5781:2" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/interfaces/IGateway.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2557 + 2554 ], "IGateway": [ - 904 + 901 ] }, - "id": 905, + "id": 902, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 768, + "id": 765, "literals": [ "solidity", "^", @@ -2064,20 +2064,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 770, + "id": 767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 905, - "sourceUnit": 2558, + "scope": 902, + "sourceUnit": 2555, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 769, + "id": 766, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2557, + "referencedDeclaration": 2554, "src": "73:6:2", "typeDescriptions": {} }, @@ -2093,15 +2093,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 771, + "id": 768, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 904, + "id": 901, "linearizedBaseContracts": [ - 904 + 901 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -2110,29 +2110,29 @@ { "anonymous": false, "documentation": { - "id": 772, + "id": 769, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 788, + "id": 785, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 787, + "id": 784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 774, + "id": 771, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -2141,7 +2141,7 @@ "typeString": "address" }, "typeName": { - "id": 773, + "id": 770, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -2155,13 +2155,13 @@ }, { "constant": false, - "id": 776, + "id": 773, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -2170,7 +2170,7 @@ "typeString": "address" }, "typeName": { - "id": 775, + "id": 772, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -2184,13 +2184,13 @@ }, { "constant": false, - "id": 778, + "id": 775, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -2199,7 +2199,7 @@ "typeString": "uint256" }, "typeName": { - "id": 777, + "id": 774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -2212,13 +2212,13 @@ }, { "constant": false, - "id": 780, + "id": 777, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -2227,7 +2227,7 @@ "typeString": "uint256" }, "typeName": { - "id": 779, + "id": 776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -2240,13 +2240,13 @@ }, { "constant": false, - "id": 782, + "id": 779, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -2255,7 +2255,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 781, + "id": 778, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -2268,13 +2268,13 @@ }, { "constant": false, - "id": 784, + "id": 781, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -2283,7 +2283,7 @@ "typeString": "uint256" }, "typeName": { - "id": 783, + "id": 780, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -2296,13 +2296,13 @@ }, { "constant": false, - "id": 786, + "id": 783, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 788, + "scope": 785, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -2311,7 +2311,7 @@ "typeString": "string" }, "typeName": { - "id": 785, + "id": 782, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -2330,29 +2330,29 @@ { "anonymous": false, "documentation": { - "id": 789, + "id": 786, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 799, + "id": 796, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 798, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 788, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -2361,7 +2361,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 790, + "id": 787, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -2374,13 +2374,13 @@ }, { "constant": false, - "id": 793, + "id": 790, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -2389,7 +2389,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 792, + "id": 789, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -2402,13 +2402,13 @@ }, { "constant": false, - "id": 795, + "id": 792, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -2417,7 +2417,7 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 791, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -2431,13 +2431,13 @@ }, { "constant": false, - "id": 797, + "id": 794, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 799, + "scope": 796, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -2446,7 +2446,7 @@ "typeString": "uint96" }, "typeName": { - "id": 796, + "id": 793, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -2465,29 +2465,29 @@ { "anonymous": false, "documentation": { - "id": 800, + "id": 797, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 806, + "id": 803, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 805, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 802, + "id": 799, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -2496,7 +2496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -2509,13 +2509,13 @@ }, { "constant": false, - "id": 804, + "id": 801, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 806, + "scope": 803, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -2524,7 +2524,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 803, + "id": 800, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -2543,29 +2543,29 @@ { "anonymous": false, "documentation": { - "id": 807, + "id": 804, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 813, + "id": 810, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 812, + "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 809, + "id": 806, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -2574,7 +2574,7 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -2588,13 +2588,13 @@ }, { "constant": false, - "id": 811, + "id": 808, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 813, + "scope": 810, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -2603,7 +2603,7 @@ "typeString": "uint256" }, "typeName": { - "id": 810, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -2621,16 +2621,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 834, + "id": 831, "members": [ { "constant": false, - "id": 815, + "id": 812, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -2639,7 +2639,7 @@ "typeString": "address" }, "typeName": { - "id": 814, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -2653,12 +2653,12 @@ }, { "constant": false, - "id": 817, + "id": 814, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -2667,7 +2667,7 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 813, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -2681,12 +2681,12 @@ }, { "constant": false, - "id": 819, + "id": 816, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -2695,7 +2695,7 @@ "typeString": "address" }, "typeName": { - "id": 818, + "id": 815, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -2709,12 +2709,12 @@ }, { "constant": false, - "id": 821, + "id": 818, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -2723,7 +2723,7 @@ "typeString": "uint256" }, "typeName": { - "id": 820, + "id": 817, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -2736,12 +2736,12 @@ }, { "constant": false, - "id": 823, + "id": 820, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -2750,7 +2750,7 @@ "typeString": "uint256" }, "typeName": { - "id": 822, + "id": 819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -2763,12 +2763,12 @@ }, { "constant": false, - "id": 825, + "id": 822, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -2777,7 +2777,7 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 821, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -2790,12 +2790,12 @@ }, { "constant": false, - "id": 827, + "id": 824, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -2804,7 +2804,7 @@ "typeString": "bool" }, "typeName": { - "id": 826, + "id": 823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -2817,12 +2817,12 @@ }, { "constant": false, - "id": 829, + "id": 826, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -2831,7 +2831,7 @@ "typeString": "address" }, "typeName": { - "id": 828, + "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -2845,12 +2845,12 @@ }, { "constant": false, - "id": 831, + "id": 828, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -2859,7 +2859,7 @@ "typeString": "uint96" }, "typeName": { - "id": 830, + "id": 827, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -2872,12 +2872,12 @@ }, { "constant": false, - "id": 833, + "id": 830, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 834, + "scope": 831, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -2886,7 +2886,7 @@ "typeString": "uint256" }, "typeName": { - "id": 832, + "id": 829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -2901,19 +2901,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 904, + "scope": 901, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 835, + "id": 832, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 854, + "id": 851, "implemented": false, "kind": "function", "modifiers": [], @@ -2921,17 +2921,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 837, + "id": 834, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -2940,7 +2940,7 @@ "typeString": "address" }, "typeName": { - "id": 836, + "id": 833, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -2954,12 +2954,12 @@ }, { "constant": false, - "id": 839, + "id": 836, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -2968,7 +2968,7 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -2981,12 +2981,12 @@ }, { "constant": false, - "id": 841, + "id": 838, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -2995,7 +2995,7 @@ "typeString": "uint96" }, "typeName": { - "id": 840, + "id": 837, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -3008,12 +3008,12 @@ }, { "constant": false, - "id": 843, + "id": 840, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -3022,7 +3022,7 @@ "typeString": "address" }, "typeName": { - "id": 842, + "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -3036,12 +3036,12 @@ }, { "constant": false, - "id": 845, + "id": 842, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -3050,7 +3050,7 @@ "typeString": "uint256" }, "typeName": { - "id": 844, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -3063,12 +3063,12 @@ }, { "constant": false, - "id": 847, + "id": 844, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -3077,7 +3077,7 @@ "typeString": "address" }, "typeName": { - "id": 846, + "id": 843, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -3091,12 +3091,12 @@ }, { "constant": false, - "id": 849, + "id": 846, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -3105,7 +3105,7 @@ "typeString": "string" }, "typeName": { - "id": 848, + "id": 845, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -3120,17 +3120,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 853, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 849, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 854, + "scope": 851, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -3139,7 +3139,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 851, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -3153,7 +3153,7 @@ ], "src": "4218:18:2" }, - "scope": 904, + "scope": 901, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -3161,13 +3161,13 @@ }, { "documentation": { - "id": 855, + "id": 852, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 868, + "id": 865, "implemented": false, "kind": "function", "modifiers": [], @@ -3175,17 +3175,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 864, + "id": 861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 857, + "id": 854, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -3194,7 +3194,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 856, + "id": 853, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -3207,12 +3207,12 @@ }, { "constant": false, - "id": 859, + "id": 856, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -3221,7 +3221,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 858, + "id": 855, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -3234,12 +3234,12 @@ }, { "constant": false, - "id": 861, + "id": 858, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -3248,7 +3248,7 @@ "typeString": "address" }, "typeName": { - "id": 860, + "id": 857, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -3262,12 +3262,12 @@ }, { "constant": false, - "id": 863, + "id": 860, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -3276,7 +3276,7 @@ "typeString": "uint64" }, "typeName": { - "id": 862, + "id": 859, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -3291,17 +3291,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 867, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 863, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 868, + "scope": 865, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -3310,7 +3310,7 @@ "typeString": "bool" }, "typeName": { - "id": 865, + "id": 862, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -3324,7 +3324,7 @@ ], "src": "4744:6:2" }, - "scope": 904, + "scope": 901, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -3332,13 +3332,13 @@ }, { "documentation": { - "id": 869, + "id": 866, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 878, + "id": 875, "implemented": false, "kind": "function", "modifiers": [], @@ -3346,17 +3346,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 868, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -3365,7 +3365,7 @@ "typeString": "uint256" }, "typeName": { - "id": 870, + "id": 867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -3378,12 +3378,12 @@ }, { "constant": false, - "id": 873, + "id": 870, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -3392,7 +3392,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 872, + "id": 869, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -3407,17 +3407,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 877, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 873, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 878, + "scope": 875, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -3426,7 +3426,7 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 872, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -3440,7 +3440,7 @@ ], "src": "5120:6:2" }, - "scope": 904, + "scope": 901, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -3448,13 +3448,13 @@ }, { "documentation": { - "id": 879, + "id": 876, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 886, + "id": 883, "implemented": false, "kind": "function", "modifiers": [], @@ -3462,17 +3462,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 878, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -3481,7 +3481,7 @@ "typeString": "address" }, "typeName": { - "id": 880, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -3497,17 +3497,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 885, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 886, + "scope": 883, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -3516,7 +3516,7 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -3530,7 +3530,7 @@ ], "src": "5353:6:2" }, - "scope": 904, + "scope": 901, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -3538,13 +3538,13 @@ }, { "documentation": { - "id": 887, + "id": 884, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 895, + "id": 892, "implemented": false, "kind": "function", "modifiers": [], @@ -3552,17 +3552,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 889, + "id": 886, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -3571,7 +3571,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 885, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -3586,41 +3586,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 894, + "id": 891, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 890, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 895, + "scope": 892, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_memory_ptr", + "typeIdentifier": "t_struct$_Order_$831_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 892, + "id": 889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 891, + "id": 888, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2" }, - "referencedDeclaration": 834, + "referencedDeclaration": 831, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$834_storage_ptr", + "typeIdentifier": "t_struct$_Order_$831_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -3629,7 +3629,7 @@ ], "src": "5555:14:2" }, - "scope": 904, + "scope": 901, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -3637,13 +3637,13 @@ }, { "documentation": { - "id": 896, + "id": 893, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 903, + "id": 900, "implemented": false, "kind": "function", "modifiers": [], @@ -3651,23 +3651,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 897, + "id": 894, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 902, + "id": 899, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 899, + "id": 896, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -3676,7 +3676,7 @@ "typeString": "uint64" }, "typeName": { - "id": 898, + "id": 895, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -3689,12 +3689,12 @@ }, { "constant": false, - "id": 901, + "id": 898, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 900, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -3703,7 +3703,7 @@ "typeString": "uint256" }, "typeName": { - "id": 900, + "id": 897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -3717,14 +3717,14 @@ ], "src": "5776:40:2" }, - "scope": 904, + "scope": 901, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 905, + "scope": 902, "src": "211:5608:2", "usedErrors": [] } @@ -3737,5 +3737,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.546Z" + "updatedAt": "2024-06-27T12:24:25.258Z" } \ No newline at end of file diff --git a/build/contracts/Initializable.json b/build/contracts/Initializable.json index 4bc873d..b5e3068 100644 --- a/build/contracts/Initializable.json +++ b/build/contracts/Initializable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1384, + "id": 1381, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1216, + "id": 1213, "literals": [ "solidity", "^", @@ -49,11 +49,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1217, + "id": 1214, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1384, - "sourceUnit": 1842, + "scope": 1381, + "sourceUnit": 1839, "src": "138:44:6", "symbolAliases": [], "unitAlias": "" @@ -65,15 +65,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1218, + "id": 1215, "nodeType": "StructuredDocumentation", "src": "184:2209:6", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1383, + "id": 1380, "linearizedBaseContracts": [ - 1383 + 1380 ], "name": "Initializable", "nameLocation": "2412:13:6", @@ -82,17 +82,17 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1216, "nodeType": "StructuredDocumentation", "src": "2432:109:6", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1221, + "id": 1218, "mutability": "mutable", "name": "_initialized", "nameLocation": "2560:12:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2546:26:6", "stateVariable": true, "storageLocation": "default", @@ -101,7 +101,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1220, + "id": 1217, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2546:5:6", @@ -115,17 +115,17 @@ { "constant": false, "documentation": { - "id": 1222, + "id": 1219, "nodeType": "StructuredDocumentation", "src": "2579:91:6", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1224, + "id": 1221, "mutability": "mutable", "name": "_initializing", "nameLocation": "2688:13:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2675:26:6", "stateVariable": true, "storageLocation": "default", @@ -134,7 +134,7 @@ "typeString": "bool" }, "typeName": { - "id": 1223, + "id": 1220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2675:4:6", @@ -148,29 +148,29 @@ { "anonymous": false, "documentation": { - "id": 1225, + "id": 1222, "nodeType": "StructuredDocumentation", "src": "2708:90:6", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1229, + "id": 1226, "name": "Initialized", "nameLocation": "2809:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1224, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "2827:7:6", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1226, "src": "2821:13:6", "stateVariable": false, "storageLocation": "default", @@ -179,7 +179,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1226, + "id": 1223, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2821:5:6", @@ -197,23 +197,23 @@ }, { "body": { - "id": 1284, + "id": 1281, "nodeType": "Block", "src": "3269:483:6", "statements": [ { "assignments": [ - 1233 + 1230 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1230, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "3284:14:6", "nodeType": "VariableDeclaration", - "scope": 1284, + "scope": 1281, "src": "3279:19:6", "stateVariable": false, "storageLocation": "default", @@ -222,7 +222,7 @@ "typeString": "bool" }, "typeName": { - "id": 1232, + "id": 1229, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3279:4:6", @@ -234,9 +234,9 @@ "visibility": "internal" } ], - "id": 1236, + "id": 1233, "initialValue": { - "id": 1235, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -246,11 +246,11 @@ "prefix": true, "src": "3301:14:6", "subExpression": { - "id": 1234, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3302:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -273,7 +273,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1257, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -285,17 +285,17 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1242, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1235, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3347:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -309,17 +309,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1241, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1239, + "id": 1236, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3365:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -330,7 +330,7 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1240, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, @@ -357,7 +357,7 @@ } } ], - "id": 1243, + "id": 1240, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -379,13 +379,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1255, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1251, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, @@ -399,14 +399,14 @@ { "arguments": [ { - "id": 1248, + "id": 1245, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "3426:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } } @@ -414,11 +414,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } ], - "id": 1247, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, @@ -430,14 +430,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1246, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3418:7:6", "typeDescriptions": {} } }, - "id": 1249, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -462,18 +462,18 @@ } ], "expression": { - "id": 1244, + "id": 1241, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1838, "src": "3388:18:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1841_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1245, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -481,14 +481,14 @@ "memberLocation": "3407:10:6", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "3388:29:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1250, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -516,17 +516,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1254, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1252, + "id": 1249, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3436:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -537,7 +537,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1253, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -564,7 +564,7 @@ } } ], - "id": 1256, + "id": 1253, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -585,7 +585,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1258, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": true, @@ -611,7 +611,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1237, + "id": 1234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -625,7 +625,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1259, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -641,23 +641,23 @@ "typeString": "tuple()" } }, - "id": 1260, + "id": 1257, "nodeType": "ExpressionStatement", "src": "3325:201:6" }, { "expression": { - "id": 1263, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1261, + "id": 1258, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3536:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -668,7 +668,7 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1262, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, @@ -688,44 +688,44 @@ "typeString": "uint8" } }, - "id": 1264, + "id": 1261, "nodeType": "ExpressionStatement", "src": "3536:16:6" }, { "condition": { - "id": 1265, + "id": 1262, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3566:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1271, + "id": 1268, "nodeType": "IfStatement", "src": "3562:65:6", "trueBody": { - "id": 1270, + "id": 1267, "nodeType": "Block", "src": "3582:45:6", "statements": [ { "expression": { - "id": 1268, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1266, + "id": 1263, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3596:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -736,7 +736,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1267, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -756,7 +756,7 @@ "typeString": "bool" } }, - "id": 1269, + "id": 1266, "nodeType": "ExpressionStatement", "src": "3596:20:6" } @@ -764,44 +764,44 @@ } }, { - "id": 1272, + "id": 1269, "nodeType": "PlaceholderStatement", "src": "3636:1:6" }, { "condition": { - "id": 1273, + "id": 1270, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3651:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1283, + "id": 1280, "nodeType": "IfStatement", "src": "3647:99:6", "trueBody": { - "id": 1282, + "id": 1279, "nodeType": "Block", "src": "3667:79:6", "statements": [ { "expression": { - "id": 1276, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1274, + "id": 1271, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3681:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -812,7 +812,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1275, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, @@ -832,7 +832,7 @@ "typeString": "bool" } }, - "id": 1277, + "id": 1274, "nodeType": "ExpressionStatement", "src": "3681:21:6" }, @@ -841,7 +841,7 @@ "arguments": [ { "hexValue": "31", - "id": 1279, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": true, @@ -863,18 +863,18 @@ "typeString": "int_const 1" } ], - "id": 1278, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "3721:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1280, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, @@ -890,7 +890,7 @@ "typeString": "tuple()" } }, - "id": 1281, + "id": 1278, "nodeType": "EmitStatement", "src": "3716:19:6" } @@ -900,17 +900,17 @@ ] }, "documentation": { - "id": 1230, + "id": 1227, "nodeType": "StructuredDocumentation", "src": "2842:399:6", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1285, + "id": 1282, "name": "initializer", "nameLocation": "3255:11:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1231, + "id": 1228, "nodeType": "ParameterList", "parameters": [], "src": "3266:2:6" @@ -921,7 +921,7 @@ }, { "body": { - "id": 1317, + "id": 1314, "nodeType": "Block", "src": "4863:255:6", "statements": [ @@ -933,13 +933,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1296, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1292, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -949,11 +949,11 @@ "prefix": true, "src": "4881:14:6", "subExpression": { - "id": 1291, + "id": 1288, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "4882:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -972,17 +972,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1295, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1293, + "id": 1290, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4899:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -992,11 +992,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1294, + "id": 1291, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4914:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1017,7 +1017,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1297, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, @@ -1043,7 +1043,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1290, + "id": 1287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1057,7 +1057,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1298, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, @@ -1073,23 +1073,23 @@ "typeString": "tuple()" } }, - "id": 1299, + "id": 1296, "nodeType": "ExpressionStatement", "src": "4873:99:6" }, { "expression": { - "id": 1302, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1300, + "id": 1297, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4982:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1099,11 +1099,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1301, + "id": 1298, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1116,23 +1116,23 @@ "typeString": "uint8" } }, - "id": 1303, + "id": 1300, "nodeType": "ExpressionStatement", "src": "4982:22:6" }, { "expression": { - "id": 1306, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1304, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5014:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1143,7 +1143,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1305, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, @@ -1163,28 +1163,28 @@ "typeString": "bool" } }, - "id": 1307, + "id": 1304, "nodeType": "ExpressionStatement", "src": "5014:20:6" }, { - "id": 1308, + "id": 1305, "nodeType": "PlaceholderStatement", "src": "5044:1:6" }, { "expression": { - "id": 1311, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1309, + "id": 1306, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5055:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1195,7 +1195,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1310, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, @@ -1215,7 +1215,7 @@ "typeString": "bool" } }, - "id": 1312, + "id": 1309, "nodeType": "ExpressionStatement", "src": "5055:21:6" }, @@ -1223,11 +1223,11 @@ "eventCall": { "arguments": [ { - "id": 1314, + "id": 1311, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "5103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1242,18 +1242,18 @@ "typeString": "uint8" } ], - "id": 1313, + "id": 1310, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "5091:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1315, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, @@ -1269,34 +1269,34 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1313, "nodeType": "EmitStatement", "src": "5086:25:6" } ] }, "documentation": { - "id": 1286, + "id": 1283, "nodeType": "StructuredDocumentation", "src": "3758:1062:6", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1318, + "id": 1315, "name": "reinitializer", "nameLocation": "4834:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1289, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1285, "mutability": "mutable", "name": "version", "nameLocation": "4854:7:6", "nodeType": "VariableDeclaration", - "scope": 1318, + "scope": 1315, "src": "4848:13:6", "stateVariable": false, "storageLocation": "default", @@ -1305,7 +1305,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1287, + "id": 1284, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4848:5:6", @@ -1325,7 +1325,7 @@ }, { "body": { - "id": 1327, + "id": 1324, "nodeType": "Block", "src": "5356:97:6", "statements": [ @@ -1333,11 +1333,11 @@ "expression": { "arguments": [ { - "id": 1322, + "id": 1319, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5374:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1346,7 +1346,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1323, + "id": 1320, "isConstant": false, "isLValue": false, "isPure": true, @@ -1372,7 +1372,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1321, + "id": 1318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1386,7 +1386,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -1402,29 +1402,29 @@ "typeString": "tuple()" } }, - "id": 1325, + "id": 1322, "nodeType": "ExpressionStatement", "src": "5366:69:6" }, { - "id": 1326, + "id": 1323, "nodeType": "PlaceholderStatement", "src": "5445:1:6" } ] }, "documentation": { - "id": 1319, + "id": 1316, "nodeType": "StructuredDocumentation", "src": "5124:199:6", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1328, + "id": 1325, "name": "onlyInitializing", "nameLocation": "5337:16:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1320, + "id": 1317, "nodeType": "ParameterList", "parameters": [], "src": "5353:2:6" @@ -1435,7 +1435,7 @@ }, { "body": { - "id": 1363, + "id": 1360, "nodeType": "Block", "src": "5988:231:6", "statements": [ @@ -1443,7 +1443,7 @@ "expression": { "arguments": [ { - "id": 1334, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -1453,11 +1453,11 @@ "prefix": true, "src": "6006:14:6", "subExpression": { - "id": 1333, + "id": 1330, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6007:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1471,7 +1471,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1335, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, @@ -1497,7 +1497,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1332, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1511,7 +1511,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1336, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -1527,7 +1527,7 @@ "typeString": "tuple()" } }, - "id": 1337, + "id": 1334, "nodeType": "ExpressionStatement", "src": "5998:66:6" }, @@ -1537,17 +1537,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1344, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1338, + "id": 1335, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6078:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1560,7 +1560,7 @@ "expression": { "arguments": [ { - "id": 1341, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, @@ -1572,7 +1572,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1340, + "id": 1337, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6099:5:6", @@ -1587,7 +1587,7 @@ "typeString": "type(uint8)" } ], - "id": 1339, + "id": 1336, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1598,7 +1598,7 @@ "typeString": "function () pure" } }, - "id": 1342, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, @@ -1614,7 +1614,7 @@ "typeString": "type(uint8)" } }, - "id": 1343, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": true, @@ -1634,27 +1634,27 @@ "typeString": "bool" } }, - "id": 1362, + "id": 1359, "nodeType": "IfStatement", "src": "6074:139:6", "trueBody": { - "id": 1361, + "id": 1358, "nodeType": "Block", "src": "6111:102:6", "statements": [ { "expression": { - "id": 1351, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1345, + "id": 1342, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6125:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1667,7 +1667,7 @@ "expression": { "arguments": [ { - "id": 1348, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": true, @@ -1679,7 +1679,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1347, + "id": 1344, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6145:5:6", @@ -1694,7 +1694,7 @@ "typeString": "type(uint8)" } ], - "id": 1346, + "id": 1343, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1705,7 +1705,7 @@ "typeString": "function () pure" } }, - "id": 1349, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, @@ -1721,7 +1721,7 @@ "typeString": "type(uint8)" } }, - "id": 1350, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": true, @@ -1741,7 +1741,7 @@ "typeString": "uint8" } }, - "id": 1352, + "id": 1349, "nodeType": "ExpressionStatement", "src": "6125:30:6" }, @@ -1752,7 +1752,7 @@ "expression": { "arguments": [ { - "id": 1356, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, @@ -1764,7 +1764,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1355, + "id": 1352, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6191:5:6", @@ -1779,7 +1779,7 @@ "typeString": "type(uint8)" } ], - "id": 1354, + "id": 1351, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1790,7 +1790,7 @@ "typeString": "function () pure" } }, - "id": 1357, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -1806,7 +1806,7 @@ "typeString": "type(uint8)" } }, - "id": 1358, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -1828,18 +1828,18 @@ "typeString": "uint8" } ], - "id": 1353, + "id": 1350, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "6174:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1359, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -1855,7 +1855,7 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1357, "nodeType": "EmitStatement", "src": "6169:33:6" } @@ -1865,12 +1865,12 @@ ] }, "documentation": { - "id": 1329, + "id": 1326, "nodeType": "StructuredDocumentation", "src": "5459:475:6", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1364, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -1878,18 +1878,18 @@ "nameLocation": "5948:20:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1330, + "id": 1327, "nodeType": "ParameterList", "parameters": [], "src": "5968:2:6" }, "returnParameters": { - "id": 1331, + "id": 1328, "nodeType": "ParameterList", "parameters": [], "src": "5988:0:6" }, - "scope": 1383, + "scope": 1380, "src": "5939:280:6", "stateMutability": "nonpayable", "virtual": true, @@ -1897,37 +1897,37 @@ }, { "body": { - "id": 1372, + "id": 1369, "nodeType": "Block", "src": "6393:36:6", "statements": [ { "expression": { - "id": 1370, + "id": 1367, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1369, - "id": 1371, + "functionReturnParameters": 1366, + "id": 1368, "nodeType": "Return", "src": "6403:19:6" } ] }, "documentation": { - "id": 1365, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6225:99:6", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1373, + "id": 1370, "implemented": true, "kind": "function", "modifiers": [], @@ -1935,23 +1935,23 @@ "nameLocation": "6338:22:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1366, + "id": 1363, "nodeType": "ParameterList", "parameters": [], "src": "6360:2:6" }, "returnParameters": { - "id": 1369, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1368, + "id": 1365, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1370, "src": "6386:5:6", "stateVariable": false, "storageLocation": "default", @@ -1960,7 +1960,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1367, + "id": 1364, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6386:5:6", @@ -1974,7 +1974,7 @@ ], "src": "6385:7:6" }, - "scope": 1383, + "scope": 1380, "src": "6329:100:6", "stateMutability": "view", "virtual": false, @@ -1982,37 +1982,37 @@ }, { "body": { - "id": 1381, + "id": 1378, "nodeType": "Block", "src": "6601:37:6", "statements": [ { "expression": { - "id": 1379, + "id": 1376, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6618:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1378, - "id": 1380, + "functionReturnParameters": 1375, + "id": 1377, "nodeType": "Return", "src": "6611:20:6" } ] }, "documentation": { - "id": 1374, + "id": 1371, "nodeType": "StructuredDocumentation", "src": "6435:105:6", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1382, + "id": 1379, "implemented": true, "kind": "function", "modifiers": [], @@ -2020,23 +2020,23 @@ "nameLocation": "6554:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1375, + "id": 1372, "nodeType": "ParameterList", "parameters": [], "src": "6569:2:6" }, "returnParameters": { - "id": 1378, + "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1377, + "id": 1374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1379, "src": "6595:4:6", "stateVariable": false, "storageLocation": "default", @@ -2045,7 +2045,7 @@ "typeString": "bool" }, "typeName": { - "id": 1376, + "id": 1373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6595:4:6", @@ -2059,14 +2059,14 @@ ], "src": "6594:6:6" }, - "scope": 1383, + "scope": 1380, "src": "6545:93:6", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1384, + "scope": 1381, "src": "2394:4246:6", "usedErrors": [] } @@ -2077,18 +2077,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1841 + 1838 ], "Initializable": [ - 1383 + 1380 ] }, - "id": 1384, + "id": 1381, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1216, + "id": 1213, "literals": [ "solidity", "^", @@ -2101,11 +2101,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1217, + "id": 1214, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1384, - "sourceUnit": 1842, + "scope": 1381, + "sourceUnit": 1839, "src": "138:44:6", "symbolAliases": [], "unitAlias": "" @@ -2117,15 +2117,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1218, + "id": 1215, "nodeType": "StructuredDocumentation", "src": "184:2209:6", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1383, + "id": 1380, "linearizedBaseContracts": [ - 1383 + 1380 ], "name": "Initializable", "nameLocation": "2412:13:6", @@ -2134,17 +2134,17 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1216, "nodeType": "StructuredDocumentation", "src": "2432:109:6", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1221, + "id": 1218, "mutability": "mutable", "name": "_initialized", "nameLocation": "2560:12:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2546:26:6", "stateVariable": true, "storageLocation": "default", @@ -2153,7 +2153,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1220, + "id": 1217, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2546:5:6", @@ -2167,17 +2167,17 @@ { "constant": false, "documentation": { - "id": 1222, + "id": 1219, "nodeType": "StructuredDocumentation", "src": "2579:91:6", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1224, + "id": 1221, "mutability": "mutable", "name": "_initializing", "nameLocation": "2688:13:6", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1380, "src": "2675:26:6", "stateVariable": true, "storageLocation": "default", @@ -2186,7 +2186,7 @@ "typeString": "bool" }, "typeName": { - "id": 1223, + "id": 1220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2675:4:6", @@ -2200,29 +2200,29 @@ { "anonymous": false, "documentation": { - "id": 1225, + "id": 1222, "nodeType": "StructuredDocumentation", "src": "2708:90:6", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1229, + "id": 1226, "name": "Initialized", "nameLocation": "2809:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 1228, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1224, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "2827:7:6", "nodeType": "VariableDeclaration", - "scope": 1229, + "scope": 1226, "src": "2821:13:6", "stateVariable": false, "storageLocation": "default", @@ -2231,7 +2231,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1226, + "id": 1223, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2821:5:6", @@ -2249,23 +2249,23 @@ }, { "body": { - "id": 1284, + "id": 1281, "nodeType": "Block", "src": "3269:483:6", "statements": [ { "assignments": [ - 1233 + 1230 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1230, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "3284:14:6", "nodeType": "VariableDeclaration", - "scope": 1284, + "scope": 1281, "src": "3279:19:6", "stateVariable": false, "storageLocation": "default", @@ -2274,7 +2274,7 @@ "typeString": "bool" }, "typeName": { - "id": 1232, + "id": 1229, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3279:4:6", @@ -2286,9 +2286,9 @@ "visibility": "internal" } ], - "id": 1236, + "id": 1233, "initialValue": { - "id": 1235, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -2298,11 +2298,11 @@ "prefix": true, "src": "3301:14:6", "subExpression": { - "id": 1234, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3302:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2325,7 +2325,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1257, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2337,17 +2337,17 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1242, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1235, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3347:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2361,17 +2361,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1241, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1239, + "id": 1236, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3365:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2382,7 +2382,7 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1240, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, @@ -2409,7 +2409,7 @@ } } ], - "id": 1243, + "id": 1240, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -2431,13 +2431,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1255, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1251, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, @@ -2451,14 +2451,14 @@ { "arguments": [ { - "id": 1248, + "id": 1245, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "3426:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } } @@ -2466,11 +2466,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1383", + "typeIdentifier": "t_contract$_Initializable_$1380", "typeString": "contract Initializable" } ], - "id": 1247, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, @@ -2482,14 +2482,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1246, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3418:7:6", "typeDescriptions": {} } }, - "id": 1249, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -2514,18 +2514,18 @@ } ], "expression": { - "id": 1244, + "id": 1241, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1838, "src": "3388:18:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1841_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1245, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -2533,14 +2533,14 @@ "memberLocation": "3407:10:6", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1529, + "referencedDeclaration": 1526, "src": "3388:29:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1250, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -2568,17 +2568,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1254, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1252, + "id": 1249, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3436:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2589,7 +2589,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1253, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -2616,7 +2616,7 @@ } } ], - "id": 1256, + "id": 1253, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -2637,7 +2637,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1258, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": true, @@ -2663,7 +2663,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1237, + "id": 1234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2677,7 +2677,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1259, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -2693,23 +2693,23 @@ "typeString": "tuple()" } }, - "id": 1260, + "id": 1257, "nodeType": "ExpressionStatement", "src": "3325:201:6" }, { "expression": { - "id": 1263, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1261, + "id": 1258, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "3536:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2720,7 +2720,7 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1262, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, @@ -2740,44 +2740,44 @@ "typeString": "uint8" } }, - "id": 1264, + "id": 1261, "nodeType": "ExpressionStatement", "src": "3536:16:6" }, { "condition": { - "id": 1265, + "id": 1262, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3566:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1271, + "id": 1268, "nodeType": "IfStatement", "src": "3562:65:6", "trueBody": { - "id": 1270, + "id": 1267, "nodeType": "Block", "src": "3582:45:6", "statements": [ { "expression": { - "id": 1268, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1266, + "id": 1263, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3596:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2788,7 +2788,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1267, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -2808,7 +2808,7 @@ "typeString": "bool" } }, - "id": 1269, + "id": 1266, "nodeType": "ExpressionStatement", "src": "3596:20:6" } @@ -2816,44 +2816,44 @@ } }, { - "id": 1272, + "id": 1269, "nodeType": "PlaceholderStatement", "src": "3636:1:6" }, { "condition": { - "id": 1273, + "id": 1270, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, + "referencedDeclaration": 1230, "src": "3651:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1283, + "id": 1280, "nodeType": "IfStatement", "src": "3647:99:6", "trueBody": { - "id": 1282, + "id": 1279, "nodeType": "Block", "src": "3667:79:6", "statements": [ { "expression": { - "id": 1276, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1274, + "id": 1271, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "3681:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2864,7 +2864,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1275, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, @@ -2884,7 +2884,7 @@ "typeString": "bool" } }, - "id": 1277, + "id": 1274, "nodeType": "ExpressionStatement", "src": "3681:21:6" }, @@ -2893,7 +2893,7 @@ "arguments": [ { "hexValue": "31", - "id": 1279, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": true, @@ -2915,18 +2915,18 @@ "typeString": "int_const 1" } ], - "id": 1278, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "3721:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1280, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, @@ -2942,7 +2942,7 @@ "typeString": "tuple()" } }, - "id": 1281, + "id": 1278, "nodeType": "EmitStatement", "src": "3716:19:6" } @@ -2952,17 +2952,17 @@ ] }, "documentation": { - "id": 1230, + "id": 1227, "nodeType": "StructuredDocumentation", "src": "2842:399:6", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1285, + "id": 1282, "name": "initializer", "nameLocation": "3255:11:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1231, + "id": 1228, "nodeType": "ParameterList", "parameters": [], "src": "3266:2:6" @@ -2973,7 +2973,7 @@ }, { "body": { - "id": 1317, + "id": 1314, "nodeType": "Block", "src": "4863:255:6", "statements": [ @@ -2985,13 +2985,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1296, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1292, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -3001,11 +3001,11 @@ "prefix": true, "src": "4881:14:6", "subExpression": { - "id": 1291, + "id": 1288, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "4882:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3024,17 +3024,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1295, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1293, + "id": 1290, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4899:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3044,11 +3044,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1294, + "id": 1291, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4914:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3069,7 +3069,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1297, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, @@ -3095,7 +3095,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1290, + "id": 1287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3109,7 +3109,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1298, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, @@ -3125,23 +3125,23 @@ "typeString": "tuple()" } }, - "id": 1299, + "id": 1296, "nodeType": "ExpressionStatement", "src": "4873:99:6" }, { "expression": { - "id": 1302, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1300, + "id": 1297, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "4982:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3151,11 +3151,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1301, + "id": 1298, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "4997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3168,23 +3168,23 @@ "typeString": "uint8" } }, - "id": 1303, + "id": 1300, "nodeType": "ExpressionStatement", "src": "4982:22:6" }, { "expression": { - "id": 1306, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1304, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5014:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3195,7 +3195,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1305, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, @@ -3215,28 +3215,28 @@ "typeString": "bool" } }, - "id": 1307, + "id": 1304, "nodeType": "ExpressionStatement", "src": "5014:20:6" }, { - "id": 1308, + "id": 1305, "nodeType": "PlaceholderStatement", "src": "5044:1:6" }, { "expression": { - "id": 1311, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1309, + "id": 1306, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5055:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3247,7 +3247,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1310, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, @@ -3267,7 +3267,7 @@ "typeString": "bool" } }, - "id": 1312, + "id": 1309, "nodeType": "ExpressionStatement", "src": "5055:21:6" }, @@ -3275,11 +3275,11 @@ "eventCall": { "arguments": [ { - "id": 1314, + "id": 1311, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, + "referencedDeclaration": 1285, "src": "5103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3294,18 +3294,18 @@ "typeString": "uint8" } ], - "id": 1313, + "id": 1310, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "5091:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1315, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, @@ -3321,34 +3321,34 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1313, "nodeType": "EmitStatement", "src": "5086:25:6" } ] }, "documentation": { - "id": 1286, + "id": 1283, "nodeType": "StructuredDocumentation", "src": "3758:1062:6", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1318, + "id": 1315, "name": "reinitializer", "nameLocation": "4834:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1289, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1285, "mutability": "mutable", "name": "version", "nameLocation": "4854:7:6", "nodeType": "VariableDeclaration", - "scope": 1318, + "scope": 1315, "src": "4848:13:6", "stateVariable": false, "storageLocation": "default", @@ -3357,7 +3357,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1287, + "id": 1284, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4848:5:6", @@ -3377,7 +3377,7 @@ }, { "body": { - "id": 1327, + "id": 1324, "nodeType": "Block", "src": "5356:97:6", "statements": [ @@ -3385,11 +3385,11 @@ "expression": { "arguments": [ { - "id": 1322, + "id": 1319, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "5374:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3398,7 +3398,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1323, + "id": 1320, "isConstant": false, "isLValue": false, "isPure": true, @@ -3424,7 +3424,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1321, + "id": 1318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3438,7 +3438,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -3454,29 +3454,29 @@ "typeString": "tuple()" } }, - "id": 1325, + "id": 1322, "nodeType": "ExpressionStatement", "src": "5366:69:6" }, { - "id": 1326, + "id": 1323, "nodeType": "PlaceholderStatement", "src": "5445:1:6" } ] }, "documentation": { - "id": 1319, + "id": 1316, "nodeType": "StructuredDocumentation", "src": "5124:199:6", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1328, + "id": 1325, "name": "onlyInitializing", "nameLocation": "5337:16:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1320, + "id": 1317, "nodeType": "ParameterList", "parameters": [], "src": "5353:2:6" @@ -3487,7 +3487,7 @@ }, { "body": { - "id": 1363, + "id": 1360, "nodeType": "Block", "src": "5988:231:6", "statements": [ @@ -3495,7 +3495,7 @@ "expression": { "arguments": [ { - "id": 1334, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -3505,11 +3505,11 @@ "prefix": true, "src": "6006:14:6", "subExpression": { - "id": 1333, + "id": 1330, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6007:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3523,7 +3523,7 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1335, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, @@ -3549,7 +3549,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1332, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3563,7 +3563,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1336, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -3579,7 +3579,7 @@ "typeString": "tuple()" } }, - "id": 1337, + "id": 1334, "nodeType": "ExpressionStatement", "src": "5998:66:6" }, @@ -3589,17 +3589,17 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1344, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1338, + "id": 1335, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6078:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3612,7 +3612,7 @@ "expression": { "arguments": [ { - "id": 1341, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, @@ -3624,7 +3624,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1340, + "id": 1337, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6099:5:6", @@ -3639,7 +3639,7 @@ "typeString": "type(uint8)" } ], - "id": 1339, + "id": 1336, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3650,7 +3650,7 @@ "typeString": "function () pure" } }, - "id": 1342, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, @@ -3666,7 +3666,7 @@ "typeString": "type(uint8)" } }, - "id": 1343, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": true, @@ -3686,27 +3686,27 @@ "typeString": "bool" } }, - "id": 1362, + "id": 1359, "nodeType": "IfStatement", "src": "6074:139:6", "trueBody": { - "id": 1361, + "id": 1358, "nodeType": "Block", "src": "6111:102:6", "statements": [ { "expression": { - "id": 1351, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1345, + "id": 1342, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6125:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3719,7 +3719,7 @@ "expression": { "arguments": [ { - "id": 1348, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": true, @@ -3731,7 +3731,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1347, + "id": 1344, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6145:5:6", @@ -3746,7 +3746,7 @@ "typeString": "type(uint8)" } ], - "id": 1346, + "id": 1343, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3757,7 +3757,7 @@ "typeString": "function () pure" } }, - "id": 1349, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, @@ -3773,7 +3773,7 @@ "typeString": "type(uint8)" } }, - "id": 1350, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": true, @@ -3793,7 +3793,7 @@ "typeString": "uint8" } }, - "id": 1352, + "id": 1349, "nodeType": "ExpressionStatement", "src": "6125:30:6" }, @@ -3804,7 +3804,7 @@ "expression": { "arguments": [ { - "id": 1356, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, @@ -3816,7 +3816,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 1355, + "id": 1352, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6191:5:6", @@ -3831,7 +3831,7 @@ "typeString": "type(uint8)" } ], - "id": 1354, + "id": 1351, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3842,7 +3842,7 @@ "typeString": "function () pure" } }, - "id": 1357, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -3858,7 +3858,7 @@ "typeString": "type(uint8)" } }, - "id": 1358, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -3880,18 +3880,18 @@ "typeString": "uint8" } ], - "id": 1353, + "id": 1350, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, + "referencedDeclaration": 1226, "src": "6174:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1359, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -3907,7 +3907,7 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1357, "nodeType": "EmitStatement", "src": "6169:33:6" } @@ -3917,12 +3917,12 @@ ] }, "documentation": { - "id": 1329, + "id": 1326, "nodeType": "StructuredDocumentation", "src": "5459:475:6", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1364, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -3930,18 +3930,18 @@ "nameLocation": "5948:20:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1330, + "id": 1327, "nodeType": "ParameterList", "parameters": [], "src": "5968:2:6" }, "returnParameters": { - "id": 1331, + "id": 1328, "nodeType": "ParameterList", "parameters": [], "src": "5988:0:6" }, - "scope": 1383, + "scope": 1380, "src": "5939:280:6", "stateMutability": "nonpayable", "virtual": true, @@ -3949,37 +3949,37 @@ }, { "body": { - "id": 1372, + "id": 1369, "nodeType": "Block", "src": "6393:36:6", "statements": [ { "expression": { - "id": 1370, + "id": 1367, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, + "referencedDeclaration": 1218, "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1369, - "id": 1371, + "functionReturnParameters": 1366, + "id": 1368, "nodeType": "Return", "src": "6403:19:6" } ] }, "documentation": { - "id": 1365, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6225:99:6", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1373, + "id": 1370, "implemented": true, "kind": "function", "modifiers": [], @@ -3987,23 +3987,23 @@ "nameLocation": "6338:22:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1366, + "id": 1363, "nodeType": "ParameterList", "parameters": [], "src": "6360:2:6" }, "returnParameters": { - "id": 1369, + "id": 1366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1368, + "id": 1365, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1370, "src": "6386:5:6", "stateVariable": false, "storageLocation": "default", @@ -4012,7 +4012,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1367, + "id": 1364, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6386:5:6", @@ -4026,7 +4026,7 @@ ], "src": "6385:7:6" }, - "scope": 1383, + "scope": 1380, "src": "6329:100:6", "stateMutability": "view", "virtual": false, @@ -4034,37 +4034,37 @@ }, { "body": { - "id": 1381, + "id": 1378, "nodeType": "Block", "src": "6601:37:6", "statements": [ { "expression": { - "id": 1379, + "id": 1376, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1221, "src": "6618:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1378, - "id": 1380, + "functionReturnParameters": 1375, + "id": 1377, "nodeType": "Return", "src": "6611:20:6" } ] }, "documentation": { - "id": 1374, + "id": 1371, "nodeType": "StructuredDocumentation", "src": "6435:105:6", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1382, + "id": 1379, "implemented": true, "kind": "function", "modifiers": [], @@ -4072,23 +4072,23 @@ "nameLocation": "6554:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1375, + "id": 1372, "nodeType": "ParameterList", "parameters": [], "src": "6569:2:6" }, "returnParameters": { - "id": 1378, + "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1377, + "id": 1374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1379, "src": "6595:4:6", "stateVariable": false, "storageLocation": "default", @@ -4097,7 +4097,7 @@ "typeString": "bool" }, "typeName": { - "id": 1376, + "id": 1373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6595:4:6", @@ -4111,14 +4111,14 @@ ], "src": "6594:6:6" }, - "scope": 1383, + "scope": 1380, "src": "6545:93:6", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1384, + "scope": 1381, "src": "2394:4246:6", "usedErrors": [] } @@ -4131,5 +4131,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.552Z" + "updatedAt": "2024-06-27T12:24:25.256Z" } \ No newline at end of file diff --git a/build/contracts/MockUSDT.json b/build/contracts/MockUSDT.json index 991a59b..4c9f990 100644 --- a/build/contracts/MockUSDT.json +++ b/build/contracts/MockUSDT.json @@ -310,28 +310,28 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506040518060400160405280600881526020017f4d6f636b554453430000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d555344430000000000000000000000000000000000000000000000000000008152508160039081620000ab9190620004d3565b508060049081620000bd9190620004d3565b505050620000dc3369d3c21bcecceda1000000620000e260201b60201c565b620006d5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200061b565b60405180910390fd5b62000168600083836200024f60201b60201c565b80600260008282546200017c91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022f9190620006b8565b60405180910390a36200024b600083836200025460201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002db57607f821691505b602082108103620002f157620002f062000293565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200031c565b6200036786836200031c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b4620003ae620003a8846200037f565b62000389565b6200037f565b9050919050565b6000819050919050565b620003d08362000393565b620003e8620003df82620003bb565b84845462000329565b825550505050565b600090565b620003ff620003f0565b6200040c818484620003c5565b505050565b5b81811015620004345762000428600082620003f5565b60018101905062000412565b5050565b601f82111562000483576200044d81620002f7565b62000458846200030c565b8101602085101562000468578190505b6200048062000477856200030c565b83018262000411565b50505b505050565b600082821c905092915050565b6000620004a86000198460080262000488565b1980831691505092915050565b6000620004c3838362000495565b9150826002028217905092915050565b620004de8262000259565b67ffffffffffffffff811115620004fa57620004f962000264565b5b620005068254620002c2565b6200051382828562000438565b600060209050601f8311600181146200054b576000841562000536578287015190505b620005428582620004b5565b865550620005b2565b601f1984166200055b86620002f7565b60005b8281101562000585578489015182556001820191506020850194506020810190506200055e565b86831015620005a55784890151620005a1601f89168262000495565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000603601f83620005ba565b91506200061082620005cb565b602082019050919050565b600060208201905081810360008301526200063681620005f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000679826200037f565b915062000686836200037f565b9250828201905080821115620006a157620006a06200063d565b5b92915050565b620006b2816200037f565b82525050565b6000602082019050620006cf6000830184620006a7565b92915050565b6118bb80620006e56000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220d51abe46434b1aa994e9309960c30d10a198f9655da44a6998ddc7989842aba864736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220d51abe46434b1aa994e9309960c30d10a198f9655da44a6998ddc7989842aba864736f6c63430008120033", + "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506040518060400160405280600881526020017f4d6f636b554453430000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d555344430000000000000000000000000000000000000000000000000000008152508160039081620000ab9190620004d3565b508060049081620000bd9190620004d3565b505050620000dc3369d3c21bcecceda1000000620000e260201b60201c565b620006d5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200061b565b60405180910390fd5b62000168600083836200024f60201b60201c565b80600260008282546200017c91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022f9190620006b8565b60405180910390a36200024b600083836200025460201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002db57607f821691505b602082108103620002f157620002f062000293565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200031c565b6200036786836200031c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b4620003ae620003a8846200037f565b62000389565b6200037f565b9050919050565b6000819050919050565b620003d08362000393565b620003e8620003df82620003bb565b84845462000329565b825550505050565b600090565b620003ff620003f0565b6200040c818484620003c5565b505050565b5b81811015620004345762000428600082620003f5565b60018101905062000412565b5050565b601f82111562000483576200044d81620002f7565b62000458846200030c565b8101602085101562000468578190505b6200048062000477856200030c565b83018262000411565b50505b505050565b600082821c905092915050565b6000620004a86000198460080262000488565b1980831691505092915050565b6000620004c3838362000495565b9150826002028217905092915050565b620004de8262000259565b67ffffffffffffffff811115620004fa57620004f962000264565b5b620005068254620002c2565b6200051382828562000438565b600060209050601f8311600181146200054b576000841562000536578287015190505b620005428582620004b5565b865550620005b2565b601f1984166200055b86620002f7565b60005b8281101562000585578489015182556001820191506020850194506020810190506200055e565b86831015620005a55784890151620005a1601f89168262000495565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000603601f83620005ba565b91506200061082620005cb565b602082019050919050565b600060208201905081810360008301526200063681620005f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000679826200037f565b915062000686836200037f565b9250828201905080821115620006a157620006a06200063d565b5b92915050565b620006b2816200037f565b82525050565b6000602082019050620006cf6000830184620006a7565b92915050565b6118bb80620006e56000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220e9fa28f94069e8bdb096aaa91496264e103a5b1682d15ae8976276ba708d33f764736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101045760003560e01c806370a08231116100a6578063a0712d6811610080578063a0712d6814610267578063a457c2d714610283578063a9059cbb146102b3578063dd62ed3e146102e357610104565b806370a082311461020f57806395d89b411461023f5780639975038c1461025d57610104565b806323b872dd116100e257806323b872dd14610175578063313ce567146101a557806339509351146101c357806342966c68146101f357610104565b806306fdde0314610109578063095ea7b31461012757806318160ddd14610157575b600080fd5b610111610313565b60405161011e9190610f43565b60405180910390f35b610141600480360381019061013c919061102a565b6103a5565b60405161014e9190611085565b60405180910390f35b61015f6103c8565b60405161016c91906110af565b60405180910390f35b61018f600480360381019061018a91906110ca565b6103d2565b60405161019c9190611085565b60405180910390f35b6101ad610401565b6040516101ba9190611139565b60405180910390f35b6101dd60048036038101906101d8919061102a565b61040a565b6040516101ea9190611085565b60405180910390f35b61020d60048036038101906102089190611154565b610441565b005b61022960048036038101906102249190611181565b61044e565b60405161023691906110af565b60405180910390f35b610247610496565b6040516102549190610f43565b60405180910390f35b610265610528565b005b610281600480360381019061027c9190611154565b610585565b005b61029d6004803603810190610298919061102a565b610592565b6040516102aa9190611085565b60405180910390f35b6102cd60048036038101906102c8919061102a565b610609565b6040516102da9190611085565b60405180910390f35b6102fd60048036038101906102f891906111ae565b61062c565b60405161030a91906110af565b60405180910390f35b6060600380546103229061121d565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061121d565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b6000806103b06106b3565b90506103bd8185856106bb565b600191505092915050565b6000600254905090565b6000806103dd6106b3565b90506103ea858285610884565b6103f5858585610910565b60019150509392505050565b60006012905090565b6000806104156106b3565b9050610436818585610427858961062c565b610431919061127d565b6106bb565b600191505092915050565b61044b3382610b86565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104a59061121d565b80601f01602080910402602001604051908101604052809291908181526020018280546104d19061121d565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b60006105333361044e565b905060008111610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f906112fd565b60405180910390fd5b6105823382610b86565b50565b61058f3382610d53565b50565b60008061059d6106b3565b905060006105ab828661062c565b9050838110156105f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e79061138f565b60405180910390fd5b6105fd82868684036106bb565b60019250505092915050565b6000806106146106b3565b9050610621818585610910565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190611421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906114b3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161087791906110af565b60405180910390a3505050565b6000610890848461062c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090a57818110156108fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f39061151f565b60405180910390fd5b61090984848484036106bb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610976906115b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590611643565b60405180910390fd5b6109f9838383610ea9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906116d5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b6d91906110af565b60405180910390a3610b80848484610eae565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611767565b60405180910390fd5b610c0182600083610ea9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906117f9565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3a91906110af565b60405180910390a3610d4e83600084610eae565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611865565b60405180910390fd5b610dce60008383610ea9565b8060026000828254610de0919061127d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9191906110af565b60405180910390a3610ea560008383610eae565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610eed578082015181840152602081019050610ed2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f1582610eb3565b610f1f8185610ebe565b9350610f2f818560208601610ecf565b610f3881610ef9565b840191505092915050565b60006020820190508181036000830152610f5d8184610f0a565b905092915050565b600080fd5b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610f9481610f6a565b8114610f9f57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fcd82610fa2565b9050919050565b600081359050610fe381610f8b565b610fec81610fc2565b905092915050565b6000819050919050565b61100781610ff4565b811461101257600080fd5b50565b60008135905061102481610ffe565b92915050565b6000806040838503121561104157611040610f65565b5b600061104f85828601610fd4565b925050602061106085828601611015565b9150509250929050565b60008115159050919050565b61107f8161106a565b82525050565b600060208201905061109a6000830184611076565b92915050565b6110a981610ff4565b82525050565b60006020820190506110c460008301846110a0565b92915050565b6000806000606084860312156110e3576110e2610f65565b5b60006110f186828701610fd4565b935050602061110286828701610fd4565b925050604061111386828701611015565b9150509250925092565b600060ff82169050919050565b6111338161111d565b82525050565b600060208201905061114e600083018461112a565b92915050565b60006020828403121561116a57611169610f65565b5b600061117884828501611015565b91505092915050565b60006020828403121561119757611196610f65565b5b60006111a584828501610fd4565b91505092915050565b600080604083850312156111c5576111c4610f65565b5b60006111d385828601610fd4565b92505060206111e485828601610fd4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061123557607f821691505b602082108103611248576112476111ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061128882610ff4565b915061129383610ff4565b92508282019050808211156112ab576112aa61124e565b5b92915050565b7f4d6f636b555344543a204e6f7468696e6720746f206275726e00000000000000600082015250565b60006112e7601983610ebe565b91506112f2826112b1565b602082019050919050565b60006020820190508181036000830152611316816112da565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611379602583610ebe565b91506113848261131d565b604082019050919050565b600060208201905081810360008301526113a88161136c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061140b602483610ebe565b9150611416826113af565b604082019050919050565b6000602082019050818103600083015261143a816113fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061149d602283610ebe565b91506114a882611441565b604082019050919050565b600060208201905081810360008301526114cc81611490565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611509601d83610ebe565b9150611514826114d3565b602082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061159b602583610ebe565b91506115a68261153f565b604082019050919050565b600060208201905081810360008301526115ca8161158e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061162d602383610ebe565b9150611638826115d1565b604082019050919050565b6000602082019050818103600083015261165c81611620565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116bf602683610ebe565b91506116ca82611663565b604082019050919050565b600060208201905081810360008301526116ee816116b2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611751602183610ebe565b915061175c826116f5565b604082019050919050565b6000602082019050818103600083015261178081611744565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e3602283610ebe565b91506117ee82611787565b604082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061184f601f83610ebe565b915061185a82611819565b602082019050919050565b6000602082019050818103600083015261187e81611842565b905091905056fea26474726f6e58221220e9fa28f94069e8bdb096aaa91496264e103a5b1682d15ae8976276ba708d33f764736f6c63430008120033", "sourceMap": "162:496:3:-:0;;;195:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:113:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;:::i;:::-;;1980:113;;246:31:3::1;252:10;264:12;246:5;;;:31;;:::i;:::-;162:496:::0;;8520:535:10;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:14:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:169::-;5318:11;5352:6;5347:3;5340:19;5392:4;5387:3;5383:14;5368:29;;5234:169;;;;:::o;5409:181::-;5549:33;5545:1;5537:6;5533:14;5526:57;5409:181;:::o;5596:366::-;5738:3;5759:67;5823:2;5818:3;5759:67;:::i;:::-;5752:74;;5835:93;5924:3;5835:93;:::i;:::-;5953:2;5948:3;5944:12;5937:19;;5596:366;;;:::o;5968:419::-;6134:4;6172:2;6161:9;6157:18;6149:26;;6221:9;6215:4;6211:20;6207:1;6196:9;6192:17;6185:47;6249:131;6375:4;6249:131;:::i;:::-;6241:139;;5968:419;;;:::o;6393:180::-;6441:77;6438:1;6431:88;6538:4;6535:1;6528:15;6562:4;6559:1;6552:15;6579:191;6619:3;6638:20;6656:1;6638:20;:::i;:::-;6633:25;;6672:20;6690:1;6672:20;:::i;:::-;6667:25;;6715:1;6712;6708:9;6701:16;;6736:3;6733:1;6730:10;6727:36;;;6743:18;;:::i;:::-;6727:36;6579:191;;;;:::o;6776:118::-;6863:24;6881:5;6863:24;:::i;:::-;6858:3;6851:37;6776:118;;:::o;6900:222::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:71;7112:1;7101:9;7097:17;7088:6;7044:71;:::i;:::-;6900:222;;;;:::o;162:496:3:-;;;;;;;", "deployedSourceMap": "162:496:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;379:83:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3419:125:10;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;468:188:3;;;:::i;:::-;;290:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6575:427:10;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;3104:91::-;3162:5;3186:2;3179:9;;3104:91;:::o;5854:234::-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;379:83:3:-;429:26;435:10;447:7;429:5;:26::i;:::-;379:83;:::o;3419:125:10:-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;468:188:3:-;506:18;527:21;537:10;527:9;:21::i;:::-;506:42;;579:1;566:10;:14;558:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;620:29;626:10;638;620:5;:29::i;:::-;496:160;468:188::o;290:83::-;340:26;346:10;358:7;340:5;:26::i;:::-;290:83;:::o;6575:427:10:-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;655:96:13:-;708:7;734:10;727:17;;655:96;:::o;10457:340:10:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;9375:659::-;9477:1;9458:21;;:7;:21;;;9450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;9588:22;9613:9;:18;9623:7;9613:18;;;;;;;;;;;;;;;;9588:43;;9667:6;9649:14;:24;;9641:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:6;9767:14;:23;9746:9;:18;9756:7;9746:18;;;;;;;;;;;;;;;:44;;;;9899:6;9883:12;;:22;;;;;;;;;;;9957:1;9931:37;;9940:7;9931:37;;;9961:6;9931:37;;;;;;:::i;:::-;;;;;;;;9979:48;9999:7;10016:1;10020:6;9979:19;:48::i;:::-;9440:594;9375:659;;:::o;8520:535::-;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;:49::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;:48::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:14:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:128;1713:7;1753:44;1746:5;1742:56;1731:67;;1676:128;;;:::o;1810:122::-;1883:24;1901:5;1883:24;:::i;:::-;1876:5;1873:35;1863:63;;1922:1;1919;1912:12;1863:63;1810:122;:::o;1938:126::-;1975:7;2015:42;2008:5;2004:54;1993:65;;1938:126;;;:::o;2070:96::-;2107:7;2136:24;2154:5;2136:24;:::i;:::-;2125:35;;2070:96;;;:::o;2172:181::-;2218:5;2256:6;2243:20;2234:29;;2272:33;2299:5;2272:33;:::i;:::-;2323:24;2341:5;2323:24;:::i;:::-;2314:33;;2172:181;;;;:::o;2359:77::-;2396:7;2425:5;2414:16;;2359:77;;;:::o;2442:122::-;2515:24;2533:5;2515:24;:::i;:::-;2508:5;2505:35;2495:63;;2554:1;2551;2544:12;2495:63;2442:122;:::o;2570:139::-;2616:5;2654:6;2641:20;2632:29;;2670:33;2697:5;2670:33;:::i;:::-;2570:139;;;;:::o;2715:474::-;2783:6;2791;2840:2;2828:9;2819:7;2815:23;2811:32;2808:119;;;2846:79;;:::i;:::-;2808:119;2966:1;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2937:117;3093:2;3119:53;3164:7;3155:6;3144:9;3140:22;3119:53;:::i;:::-;3109:63;;3064:118;2715:474;;;;;:::o;3195:90::-;3229:7;3272:5;3265:13;3258:21;3247:32;;3195:90;;;:::o;3291:109::-;3372:21;3387:5;3372:21;:::i;:::-;3367:3;3360:34;3291:109;;:::o;3406:210::-;3493:4;3531:2;3520:9;3516:18;3508:26;;3544:65;3606:1;3595:9;3591:17;3582:6;3544:65;:::i;:::-;3406:210;;;;:::o;3622:118::-;3709:24;3727:5;3709:24;:::i;:::-;3704:3;3697:37;3622:118;;:::o;3746:222::-;3839:4;3877:2;3866:9;3862:18;3854:26;;3890:71;3958:1;3947:9;3943:17;3934:6;3890:71;:::i;:::-;3746:222;;;;:::o;3974:619::-;4051:6;4059;4067;4116:2;4104:9;4095:7;4091:23;4087:32;4084:119;;;4122:79;;:::i;:::-;4084:119;4242:1;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4213:117;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;4497:2;4523:53;4568:7;4559:6;4548:9;4544:22;4523:53;:::i;:::-;4513:63;;4468:118;3974:619;;;;;:::o;4599:86::-;4634:7;4674:4;4667:5;4663:16;4652:27;;4599:86;;;:::o;4691:112::-;4774:22;4790:5;4774:22;:::i;:::-;4769:3;4762:35;4691:112;;:::o;4809:214::-;4898:4;4936:2;4925:9;4921:18;4913:26;;4949:67;5013:1;5002:9;4998:17;4989:6;4949:67;:::i;:::-;4809:214;;;;:::o;5029:329::-;5088:6;5137:2;5125:9;5116:7;5112:23;5108:32;5105:119;;;5143:79;;:::i;:::-;5105:119;5263:1;5288:53;5333:7;5324:6;5313:9;5309:22;5288:53;:::i;:::-;5278:63;;5234:117;5029:329;;;;:::o;5364:::-;5423:6;5472:2;5460:9;5451:7;5447:23;5443:32;5440:119;;;5478:79;;:::i;:::-;5440:119;5598:1;5623:53;5668:7;5659:6;5648:9;5644:22;5623:53;:::i;:::-;5613:63;;5569:117;5364:329;;;;:::o;5699:474::-;5767:6;5775;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;6077:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6048:118;5699:474;;;;;:::o;6179:180::-;6227:77;6224:1;6217:88;6324:4;6321:1;6314:15;6348:4;6345:1;6338:15;6365:320;6409:6;6446:1;6440:4;6436:12;6426:22;;6493:1;6487:4;6483:12;6514:18;6504:81;;6570:4;6562:6;6558:17;6548:27;;6504:81;6632:2;6624:6;6621:14;6601:18;6598:38;6595:84;;6651:18;;:::i;:::-;6595:84;6416:269;6365:320;;;:::o;6691:180::-;6739:77;6736:1;6729:88;6836:4;6833:1;6826:15;6860:4;6857:1;6850:15;6877:191;6917:3;6936:20;6954:1;6936:20;:::i;:::-;6931:25;;6970:20;6988:1;6970:20;:::i;:::-;6965:25;;7013:1;7010;7006:9;6999:16;;7034:3;7031:1;7028:10;7025:36;;;7041:18;;:::i;:::-;7025:36;6877:191;;;;:::o;7074:175::-;7214:27;7210:1;7202:6;7198:14;7191:51;7074:175;:::o;7255:366::-;7397:3;7418:67;7482:2;7477:3;7418:67;:::i;:::-;7411:74;;7494:93;7583:3;7494:93;:::i;:::-;7612:2;7607:3;7603:12;7596:19;;7255:366;;;:::o;7627:419::-;7793:4;7831:2;7820:9;7816:18;7808:26;;7880:9;7874:4;7870:20;7866:1;7855:9;7851:17;7844:47;7908:131;8034:4;7908:131;:::i;:::-;7900:139;;7627:419;;;:::o;8052:224::-;8192:34;8188:1;8180:6;8176:14;8169:58;8261:7;8256:2;8248:6;8244:15;8237:32;8052:224;:::o;8282:366::-;8424:3;8445:67;8509:2;8504:3;8445:67;:::i;:::-;8438:74;;8521:93;8610:3;8521:93;:::i;:::-;8639:2;8634:3;8630:12;8623:19;;8282:366;;;:::o;8654:419::-;8820:4;8858:2;8847:9;8843:18;8835:26;;8907:9;8901:4;8897:20;8893:1;8882:9;8878:17;8871:47;8935:131;9061:4;8935:131;:::i;:::-;8927:139;;8654:419;;;:::o;9079:223::-;9219:34;9215:1;9207:6;9203:14;9196:58;9288:6;9283:2;9275:6;9271:15;9264:31;9079:223;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9308:366;;;:::o;9680:419::-;9846:4;9884:2;9873:9;9869:18;9861:26;;9933:9;9927:4;9923:20;9919:1;9908:9;9904:17;9897:47;9961:131;10087:4;9961:131;:::i;:::-;9953:139;;9680:419;;;:::o;10105:221::-;10245:34;10241:1;10233:6;10229:14;10222:58;10314:4;10309:2;10301:6;10297:15;10290:29;10105:221;:::o;10332:366::-;10474:3;10495:67;10559:2;10554:3;10495:67;:::i;:::-;10488:74;;10571:93;10660:3;10571:93;:::i;:::-;10689:2;10684:3;10680:12;10673:19;;10332:366;;;:::o;10704:419::-;10870:4;10908:2;10897:9;10893:18;10885:26;;10957:9;10951:4;10947:20;10943:1;10932:9;10928:17;10921:47;10985:131;11111:4;10985:131;:::i;:::-;10977:139;;10704:419;;;:::o;11129:179::-;11269:31;11265:1;11257:6;11253:14;11246:55;11129:179;:::o;11314:366::-;11456:3;11477:67;11541:2;11536:3;11477:67;:::i;:::-;11470:74;;11553:93;11642:3;11553:93;:::i;:::-;11671:2;11666:3;11662:12;11655:19;;11314:366;;;:::o;11686:419::-;11852:4;11890:2;11879:9;11875:18;11867:26;;11939:9;11933:4;11929:20;11925:1;11914:9;11910:17;11903:47;11967:131;12093:4;11967:131;:::i;:::-;11959:139;;11686:419;;;:::o;12111:224::-;12251:34;12247:1;12239:6;12235:14;12228:58;12320:7;12315:2;12307:6;12303:15;12296:32;12111:224;:::o;12341:366::-;12483:3;12504:67;12568:2;12563:3;12504:67;:::i;:::-;12497:74;;12580:93;12669:3;12580:93;:::i;:::-;12698:2;12693:3;12689:12;12682:19;;12341:366;;;:::o;12713:419::-;12879:4;12917:2;12906:9;12902:18;12894:26;;12966:9;12960:4;12956:20;12952:1;12941:9;12937:17;12930:47;12994:131;13120:4;12994:131;:::i;:::-;12986:139;;12713:419;;;:::o;13138:222::-;13278:34;13274:1;13266:6;13262:14;13255:58;13347:5;13342:2;13334:6;13330:15;13323:30;13138:222;:::o;13366:366::-;13508:3;13529:67;13593:2;13588:3;13529:67;:::i;:::-;13522:74;;13605:93;13694:3;13605:93;:::i;:::-;13723:2;13718:3;13714:12;13707:19;;13366:366;;;:::o;13738:419::-;13904:4;13942:2;13931:9;13927:18;13919:26;;13991:9;13985:4;13981:20;13977:1;13966:9;13962:17;13955:47;14019:131;14145:4;14019:131;:::i;:::-;14011:139;;13738:419;;;:::o;14163:225::-;14303:34;14299:1;14291:6;14287:14;14280:58;14372:8;14367:2;14359:6;14355:15;14348:33;14163:225;:::o;14394:366::-;14536:3;14557:67;14621:2;14616:3;14557:67;:::i;:::-;14550:74;;14633:93;14722:3;14633:93;:::i;:::-;14751:2;14746:3;14742:12;14735:19;;14394:366;;;:::o;14766:419::-;14932:4;14970:2;14959:9;14955:18;14947:26;;15019:9;15013:4;15009:20;15005:1;14994:9;14990:17;14983:47;15047:131;15173:4;15047:131;:::i;:::-;15039:139;;14766:419;;;:::o;15191:220::-;15331:34;15327:1;15319:6;15315:14;15308:58;15400:3;15395:2;15387:6;15383:15;15376:28;15191:220;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:221::-;16354:34;16350:1;16342:6;16338:14;16331:58;16423:4;16418:2;16410:6;16406:15;16399:29;16214:221;:::o;16441:366::-;16583:3;16604:67;16668:2;16663:3;16604:67;:::i;:::-;16597:74;;16680:93;16769:3;16680:93;:::i;:::-;16798:2;16793:3;16789:12;16782:19;;16441:366;;;:::o;16813:419::-;16979:4;17017:2;17006:9;17002:18;16994:26;;17066:9;17060:4;17056:20;17052:1;17041:9;17037:17;17030:47;17094:131;17220:4;17094:131;:::i;:::-;17086:139;;16813:419;;;:::o;17238:181::-;17378:33;17374:1;17366:6;17362:14;17355:57;17238:181;:::o;17425:366::-;17567:3;17588:67;17652:2;17647:3;17588:67;:::i;:::-;17581:74;;17664:93;17753:3;17664:93;:::i;:::-;17782:2;17777:3;17773:12;17766:19;;17425:366;;;:::o;17797:419::-;17963:4;18001:2;17990:9;17986:18;17978:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18078:131;18204:4;18078:131;:::i;:::-;18070:139;;17797:419;;;:::o", "source": "//SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n/// @dev Mock mintable USDC\ncontract MockUSDT is ERC20 {\n constructor() ERC20(\"MockUDSC\", \"MUSDC\") {\n _mint(msg.sender, 1_000_000E18);\n }\n\n function mint(uint256 _amount) external {\n _mint(msg.sender, _amount);\n }\n\n function burn(uint256 _amount) external {\n _burn(msg.sender, _amount);\n }\n\n function burnAll() external {\n uint256 _balanceOf = balanceOf(msg.sender);\n require(_balanceOf > 0, \"MockUSDT: Nothing to burn\");\n _burn(msg.sender, _balanceOf);\n }\n}\n", - "sourcePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "ast": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "exportedSymbols": { "ERC20": [ - 2479 + 2476 ], "MockUSDT": [ - 974 + 971 ] }, - "id": 975, + "id": 972, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 906, + "id": 903, "literals": [ "solidity", "^", @@ -344,20 +344,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "id": 908, + "id": 905, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 975, - "sourceUnit": 2480, + "scope": 972, + "sourceUnit": 2477, "src": "64:68:3", "symbolAliases": [ { "foreign": { - "id": 907, + "id": 904, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "72:5:3", "typeDescriptions": {} }, @@ -371,16 +371,16 @@ "baseContracts": [ { "baseName": { - "id": 910, + "id": 907, "name": "ERC20", "nameLocations": [ "183:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "183:5:3" }, - "id": 911, + "id": 908, "nodeType": "InheritanceSpecifier", "src": "183:5:3" } @@ -389,19 +389,19 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 909, + "id": 906, "nodeType": "StructuredDocumentation", "src": "134:28:3", "text": "@dev Mock mintable USDC" }, "fullyImplemented": true, - "id": 974, + "id": 971, "linearizedBaseContracts": [ - 974, - 2479, - 2582, - 2557, - 2612 + 971, + 2476, + 2579, + 2554, + 2609 ], "name": "MockUSDT", "nameLocation": "171:8:3", @@ -409,7 +409,7 @@ "nodes": [ { "body": { - "id": 924, + "id": 921, "nodeType": "Block", "src": "236:48:3", "statements": [ @@ -418,7 +418,7 @@ "arguments": [ { "expression": { - "id": 919, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -429,7 +429,7 @@ "typeString": "msg" } }, - "id": 920, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -445,7 +445,7 @@ }, { "hexValue": "315f3030305f303030453138", - "id": 921, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, @@ -471,18 +471,18 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 918, + "id": 915, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "246:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 922, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -498,13 +498,13 @@ "typeString": "tuple()" } }, - "id": 923, + "id": 920, "nodeType": "ExpressionStatement", "src": "246:31:3" } ] }, - "id": 925, + "id": 922, "implemented": true, "kind": "constructor", "modifiers": [ @@ -512,7 +512,7 @@ "arguments": [ { "hexValue": "4d6f636b55445343", - "id": 914, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, @@ -528,7 +528,7 @@ }, { "hexValue": "4d55534443", - "id": 915, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, @@ -543,16 +543,16 @@ "value": "MUSDC" } ], - "id": 916, + "id": 913, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 913, + "id": 910, "name": "ERC20", "nameLocations": [ "209:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "209:5:3" }, "nodeType": "ModifierInvocation", @@ -563,18 +563,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 909, "nodeType": "ParameterList", "parameters": [], "src": "206:2:3" }, "returnParameters": { - "id": 917, + "id": 914, "nodeType": "ParameterList", "parameters": [], "src": "236:0:3" }, - "scope": 974, + "scope": 971, "src": "195:89:3", "stateMutability": "nonpayable", "virtual": false, @@ -582,7 +582,7 @@ }, { "body": { - "id": 936, + "id": 933, "nodeType": "Block", "src": "330:43:3", "statements": [ @@ -591,7 +591,7 @@ "arguments": [ { "expression": { - "id": 931, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -602,7 +602,7 @@ "typeString": "msg" } }, - "id": 932, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,11 +617,11 @@ } }, { - "id": 933, + "id": 930, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 927, + "referencedDeclaration": 924, "src": "358:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -640,18 +640,18 @@ "typeString": "uint256" } ], - "id": 930, + "id": 927, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "340:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 934, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -667,14 +667,14 @@ "typeString": "tuple()" } }, - "id": 935, + "id": 932, "nodeType": "ExpressionStatement", "src": "340:26:3" } ] }, "functionSelector": "a0712d68", - "id": 937, + "id": 934, "implemented": true, "kind": "function", "modifiers": [], @@ -682,17 +682,17 @@ "nameLocation": "299:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 928, + "id": 925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 924, "mutability": "mutable", "name": "_amount", "nameLocation": "312:7:3", "nodeType": "VariableDeclaration", - "scope": 937, + "scope": 934, "src": "304:15:3", "stateVariable": false, "storageLocation": "default", @@ -701,7 +701,7 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "304:7:3", @@ -716,12 +716,12 @@ "src": "303:17:3" }, "returnParameters": { - "id": 929, + "id": 926, "nodeType": "ParameterList", "parameters": [], "src": "330:0:3" }, - "scope": 974, + "scope": 971, "src": "290:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -729,7 +729,7 @@ }, { "body": { - "id": 948, + "id": 945, "nodeType": "Block", "src": "419:43:3", "statements": [ @@ -738,7 +738,7 @@ "arguments": [ { "expression": { - "id": 943, + "id": 940, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -749,7 +749,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -764,11 +764,11 @@ } }, { - "id": 945, + "id": 942, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 936, "src": "447:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -787,18 +787,18 @@ "typeString": "uint256" } ], - "id": 942, + "id": 939, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "429:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 946, + "id": 943, "isConstant": false, "isLValue": false, "isPure": false, @@ -814,14 +814,14 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 944, "nodeType": "ExpressionStatement", "src": "429:26:3" } ] }, "functionSelector": "42966c68", - "id": 949, + "id": 946, "implemented": true, "kind": "function", "modifiers": [], @@ -829,17 +829,17 @@ "nameLocation": "388:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 940, + "id": 937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 939, + "id": 936, "mutability": "mutable", "name": "_amount", "nameLocation": "401:7:3", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 946, "src": "393:15:3", "stateVariable": false, "storageLocation": "default", @@ -848,7 +848,7 @@ "typeString": "uint256" }, "typeName": { - "id": 938, + "id": 935, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "393:7:3", @@ -863,12 +863,12 @@ "src": "392:17:3" }, "returnParameters": { - "id": 941, + "id": 938, "nodeType": "ParameterList", "parameters": [], "src": "419:0:3" }, - "scope": 974, + "scope": 971, "src": "379:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -876,23 +876,23 @@ }, { "body": { - "id": 972, + "id": 969, "nodeType": "Block", "src": "496:160:3", "statements": [ { "assignments": [ - 953 + 950 ], "declarations": [ { "constant": false, - "id": 953, + "id": 950, "mutability": "mutable", "name": "_balanceOf", "nameLocation": "514:10:3", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 969, "src": "506:18:3", "stateVariable": false, "storageLocation": "default", @@ -901,7 +901,7 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 949, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "506:7:3", @@ -913,12 +913,12 @@ "visibility": "internal" } ], - "id": 958, + "id": 955, "initialValue": { "arguments": [ { "expression": { - "id": 955, + "id": 952, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -929,7 +929,7 @@ "typeString": "msg" } }, - "id": 956, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,18 +951,18 @@ "typeString": "address" } ], - "id": 954, + "id": 951, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1991, + "referencedDeclaration": 1988, "src": "527:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 957, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -989,17 +989,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 960, + "id": 957, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "566:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1010,7 +1010,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 961, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -1032,7 +1032,7 @@ }, { "hexValue": "4d6f636b555344543a204e6f7468696e6720746f206275726e", - "id": 963, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, @@ -1058,7 +1058,7 @@ "typeString": "literal_string \"MockUSDT: Nothing to burn\"" } ], - "id": 959, + "id": 956, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1072,7 +1072,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 964, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1088,7 +1088,7 @@ "typeString": "tuple()" } }, - "id": 965, + "id": 962, "nodeType": "ExpressionStatement", "src": "558:52:3" }, @@ -1097,7 +1097,7 @@ "arguments": [ { "expression": { - "id": 967, + "id": 964, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1108,7 +1108,7 @@ "typeString": "msg" } }, - "id": 968, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,11 +1123,11 @@ } }, { - "id": 969, + "id": 966, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "638:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1146,18 +1146,18 @@ "typeString": "uint256" } ], - "id": 966, + "id": 963, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "620:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 970, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -1173,14 +1173,14 @@ "typeString": "tuple()" } }, - "id": 971, + "id": 968, "nodeType": "ExpressionStatement", "src": "620:29:3" } ] }, "functionSelector": "9975038c", - "id": 973, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -1188,25 +1188,25 @@ "nameLocation": "477:7:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 950, + "id": 947, "nodeType": "ParameterList", "parameters": [], "src": "484:2:3" }, "returnParameters": { - "id": 951, + "id": 948, "nodeType": "ParameterList", "parameters": [], "src": "496:0:3" }, - "scope": 974, + "scope": 971, "src": "468:188:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 975, + "scope": 972, "src": "162:496:3", "usedErrors": [] } @@ -1214,21 +1214,21 @@ "src": "38:621:3" }, "legacyAST": { - "absolutePath": "/Users/chibie/paycrest/contracts/contracts/mocks/MockUSDC.sol", + "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/mocks/MockUSDC.sol", "exportedSymbols": { "ERC20": [ - 2479 + 2476 ], "MockUSDT": [ - 974 + 971 ] }, - "id": 975, + "id": 972, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 906, + "id": 903, "literals": [ "solidity", "^", @@ -1241,20 +1241,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "id": 908, + "id": 905, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 975, - "sourceUnit": 2480, + "scope": 972, + "sourceUnit": 2477, "src": "64:68:3", "symbolAliases": [ { "foreign": { - "id": 907, + "id": 904, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "72:5:3", "typeDescriptions": {} }, @@ -1268,16 +1268,16 @@ "baseContracts": [ { "baseName": { - "id": 910, + "id": 907, "name": "ERC20", "nameLocations": [ "183:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "183:5:3" }, - "id": 911, + "id": 908, "nodeType": "InheritanceSpecifier", "src": "183:5:3" } @@ -1286,19 +1286,19 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 909, + "id": 906, "nodeType": "StructuredDocumentation", "src": "134:28:3", "text": "@dev Mock mintable USDC" }, "fullyImplemented": true, - "id": 974, + "id": 971, "linearizedBaseContracts": [ - 974, - 2479, - 2582, - 2557, - 2612 + 971, + 2476, + 2579, + 2554, + 2609 ], "name": "MockUSDT", "nameLocation": "171:8:3", @@ -1306,7 +1306,7 @@ "nodes": [ { "body": { - "id": 924, + "id": 921, "nodeType": "Block", "src": "236:48:3", "statements": [ @@ -1315,7 +1315,7 @@ "arguments": [ { "expression": { - "id": 919, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1326,7 +1326,7 @@ "typeString": "msg" } }, - "id": 920, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -1342,7 +1342,7 @@ }, { "hexValue": "315f3030305f303030453138", - "id": 921, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, @@ -1368,18 +1368,18 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 918, + "id": 915, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "246:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 922, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -1395,13 +1395,13 @@ "typeString": "tuple()" } }, - "id": 923, + "id": 920, "nodeType": "ExpressionStatement", "src": "246:31:3" } ] }, - "id": 925, + "id": 922, "implemented": true, "kind": "constructor", "modifiers": [ @@ -1409,7 +1409,7 @@ "arguments": [ { "hexValue": "4d6f636b55445343", - "id": 914, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, @@ -1425,7 +1425,7 @@ }, { "hexValue": "4d55534443", - "id": 915, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, @@ -1440,16 +1440,16 @@ "value": "MUSDC" } ], - "id": 916, + "id": 913, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 913, + "id": 910, "name": "ERC20", "nameLocations": [ "209:5:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2479, + "referencedDeclaration": 2476, "src": "209:5:3" }, "nodeType": "ModifierInvocation", @@ -1460,18 +1460,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 909, "nodeType": "ParameterList", "parameters": [], "src": "206:2:3" }, "returnParameters": { - "id": 917, + "id": 914, "nodeType": "ParameterList", "parameters": [], "src": "236:0:3" }, - "scope": 974, + "scope": 971, "src": "195:89:3", "stateMutability": "nonpayable", "virtual": false, @@ -1479,7 +1479,7 @@ }, { "body": { - "id": 936, + "id": 933, "nodeType": "Block", "src": "330:43:3", "statements": [ @@ -1488,7 +1488,7 @@ "arguments": [ { "expression": { - "id": 931, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1499,7 +1499,7 @@ "typeString": "msg" } }, - "id": 932, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -1514,11 +1514,11 @@ } }, { - "id": 933, + "id": 930, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 927, + "referencedDeclaration": 924, "src": "358:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1537,18 +1537,18 @@ "typeString": "uint256" } ], - "id": 930, + "id": 927, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, + "referencedDeclaration": 2293, "src": "340:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 934, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -1564,14 +1564,14 @@ "typeString": "tuple()" } }, - "id": 935, + "id": 932, "nodeType": "ExpressionStatement", "src": "340:26:3" } ] }, "functionSelector": "a0712d68", - "id": 937, + "id": 934, "implemented": true, "kind": "function", "modifiers": [], @@ -1579,17 +1579,17 @@ "nameLocation": "299:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 928, + "id": 925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 924, "mutability": "mutable", "name": "_amount", "nameLocation": "312:7:3", "nodeType": "VariableDeclaration", - "scope": 937, + "scope": 934, "src": "304:15:3", "stateVariable": false, "storageLocation": "default", @@ -1598,7 +1598,7 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "304:7:3", @@ -1613,12 +1613,12 @@ "src": "303:17:3" }, "returnParameters": { - "id": 929, + "id": 926, "nodeType": "ParameterList", "parameters": [], "src": "330:0:3" }, - "scope": 974, + "scope": 971, "src": "290:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -1626,7 +1626,7 @@ }, { "body": { - "id": 948, + "id": 945, "nodeType": "Block", "src": "419:43:3", "statements": [ @@ -1635,7 +1635,7 @@ "arguments": [ { "expression": { - "id": 943, + "id": 940, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1646,7 +1646,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -1661,11 +1661,11 @@ } }, { - "id": 945, + "id": 942, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 936, "src": "447:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1684,18 +1684,18 @@ "typeString": "uint256" } ], - "id": 942, + "id": 939, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "429:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 946, + "id": 943, "isConstant": false, "isLValue": false, "isPure": false, @@ -1711,14 +1711,14 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 944, "nodeType": "ExpressionStatement", "src": "429:26:3" } ] }, "functionSelector": "42966c68", - "id": 949, + "id": 946, "implemented": true, "kind": "function", "modifiers": [], @@ -1726,17 +1726,17 @@ "nameLocation": "388:4:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 940, + "id": 937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 939, + "id": 936, "mutability": "mutable", "name": "_amount", "nameLocation": "401:7:3", "nodeType": "VariableDeclaration", - "scope": 949, + "scope": 946, "src": "393:15:3", "stateVariable": false, "storageLocation": "default", @@ -1745,7 +1745,7 @@ "typeString": "uint256" }, "typeName": { - "id": 938, + "id": 935, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "393:7:3", @@ -1760,12 +1760,12 @@ "src": "392:17:3" }, "returnParameters": { - "id": 941, + "id": 938, "nodeType": "ParameterList", "parameters": [], "src": "419:0:3" }, - "scope": 974, + "scope": 971, "src": "379:83:3", "stateMutability": "nonpayable", "virtual": false, @@ -1773,23 +1773,23 @@ }, { "body": { - "id": 972, + "id": 969, "nodeType": "Block", "src": "496:160:3", "statements": [ { "assignments": [ - 953 + 950 ], "declarations": [ { "constant": false, - "id": 953, + "id": 950, "mutability": "mutable", "name": "_balanceOf", "nameLocation": "514:10:3", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 969, "src": "506:18:3", "stateVariable": false, "storageLocation": "default", @@ -1798,7 +1798,7 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 949, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "506:7:3", @@ -1810,12 +1810,12 @@ "visibility": "internal" } ], - "id": 958, + "id": 955, "initialValue": { "arguments": [ { "expression": { - "id": 955, + "id": 952, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1826,7 +1826,7 @@ "typeString": "msg" } }, - "id": 956, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -1848,18 +1848,18 @@ "typeString": "address" } ], - "id": 954, + "id": 951, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1991, + "referencedDeclaration": 1988, "src": "527:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 957, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -1886,17 +1886,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 960, + "id": 957, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "566:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1907,7 +1907,7 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 961, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -1929,7 +1929,7 @@ }, { "hexValue": "4d6f636b555344543a204e6f7468696e6720746f206275726e", - "id": 963, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, @@ -1955,7 +1955,7 @@ "typeString": "literal_string \"MockUSDT: Nothing to burn\"" } ], - "id": 959, + "id": 956, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1969,7 +1969,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 964, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1985,7 +1985,7 @@ "typeString": "tuple()" } }, - "id": 965, + "id": 962, "nodeType": "ExpressionStatement", "src": "558:52:3" }, @@ -1994,7 +1994,7 @@ "arguments": [ { "expression": { - "id": 967, + "id": 964, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2005,7 +2005,7 @@ "typeString": "msg" } }, - "id": 968, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -2020,11 +2020,11 @@ } }, { - "id": 969, + "id": 966, "name": "_balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, + "referencedDeclaration": 950, "src": "638:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2043,18 +2043,18 @@ "typeString": "uint256" } ], - "id": 966, + "id": 963, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, + "referencedDeclaration": 2365, "src": "620:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 970, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -2070,14 +2070,14 @@ "typeString": "tuple()" } }, - "id": 971, + "id": 968, "nodeType": "ExpressionStatement", "src": "620:29:3" } ] }, "functionSelector": "9975038c", - "id": 973, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -2085,25 +2085,25 @@ "nameLocation": "477:7:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 950, + "id": 947, "nodeType": "ParameterList", "parameters": [], "src": "484:2:3" }, "returnParameters": { - "id": 951, + "id": 948, "nodeType": "ParameterList", "parameters": [], "src": "496:0:3" }, - "scope": 974, + "scope": 971, "src": "468:188:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 975, + "scope": 972, "src": "162:496:3", "usedErrors": [] } @@ -2116,5 +2116,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.550Z" + "updatedAt": "2024-06-27T12:24:25.250Z" } \ No newline at end of file diff --git a/build/contracts/Ownable2StepUpgradeable.json b/build/contracts/Ownable2StepUpgradeable.json index 5176e16..54737b5 100644 --- a/build/contracts/Ownable2StepUpgradeable.json +++ b/build/contracts/Ownable2StepUpgradeable.json @@ -116,24 +116,24 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1082, + "id": 1079, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 976, + "id": 973, "literals": [ "solidity", "^", @@ -146,11 +146,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 977, + "id": 974, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1215, + "scope": 1079, + "sourceUnit": 1212, "src": "132:34:4", "symbolAliases": [], "unitAlias": "" @@ -158,20 +158,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 979, + "id": 976, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1384, + "scope": 1079, + "sourceUnit": 1381, "src": "167:63:4", "symbolAliases": [ { "foreign": { - "id": 978, + "id": 975, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "175:13:4", "typeDescriptions": {} }, @@ -185,31 +185,31 @@ "baseContracts": [ { "baseName": { - "id": 981, + "id": 978, "name": "Initializable", "nameLocations": [ "719:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "719:13:4" }, - "id": 982, + "id": 979, "nodeType": "InheritanceSpecifier", "src": "719:13:4" }, { "baseName": { - "id": 983, + "id": 980, "name": "OwnableUpgradeable", "nameLocations": [ "734:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1214, + "referencedDeclaration": 1211, "src": "734:18:4" }, - "id": 984, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "734:18:4" } @@ -218,18 +218,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 980, + "id": 977, "nodeType": "StructuredDocumentation", "src": "232:441:4", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1081, + "id": 1078, "linearizedBaseContracts": [ - 1081, - 1214, - 1892, - 1383 + 1078, + 1211, + 1889, + 1380 ], "name": "Ownable2StepUpgradeable", "nameLocation": "692:23:4", @@ -237,12 +237,12 @@ "nodes": [ { "constant": false, - "id": 986, + "id": 983, "mutability": "mutable", "name": "_pendingOwner", "nameLocation": "775:13:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "759:29:4", "stateVariable": true, "storageLocation": "default", @@ -251,7 +251,7 @@ "typeString": "address" }, "typeName": { - "id": 985, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:4", @@ -266,23 +266,23 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 992, + "id": 989, "name": "OwnershipTransferStarted", "nameLocation": "801:24:4", "nodeType": "EventDefinition", "parameters": { - "id": 991, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 988, + "id": 985, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "842:13:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "826:29:4", "stateVariable": false, "storageLocation": "default", @@ -291,7 +291,7 @@ "typeString": "address" }, "typeName": { - "id": 987, + "id": 984, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:4", @@ -305,13 +305,13 @@ }, { "constant": false, - "id": 990, + "id": 987, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "873:8:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "857:24:4", "stateVariable": false, "storageLocation": "default", @@ -320,7 +320,7 @@ "typeString": "address" }, "typeName": { - "id": 989, + "id": 986, "name": "address", "nodeType": "ElementaryTypeName", "src": "857:7:4", @@ -339,7 +339,7 @@ }, { "body": { - "id": 1000, + "id": 997, "nodeType": "Block", "src": "946:43:4", "statements": [ @@ -348,18 +348,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 997, + "id": 994, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "956:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 998, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -375,27 +375,27 @@ "typeString": "tuple()" } }, - "id": 999, + "id": 996, "nodeType": "ExpressionStatement", "src": "956:26:4" } ] }, - "id": 1001, + "id": 998, "implemented": true, "kind": "function", "modifiers": [ { - "id": 995, + "id": 992, "kind": "modifierInvocation", "modifierName": { - "id": 994, + "id": 991, "name": "onlyInitializing", "nameLocations": [ "929:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "929:16:4" }, "nodeType": "ModifierInvocation", @@ -406,18 +406,18 @@ "nameLocation": "898:19:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 993, + "id": 990, "nodeType": "ParameterList", "parameters": [], "src": "917:2:4" }, "returnParameters": { - "id": 996, + "id": 993, "nodeType": "ParameterList", "parameters": [], "src": "946:0:4" }, - "scope": 1081, + "scope": 1078, "src": "889:100:4", "stateMutability": "nonpayable", "virtual": false, @@ -425,26 +425,26 @@ }, { "body": { - "id": 1006, + "id": 1003, "nodeType": "Block", "src": "1062:7:4", "statements": [] }, - "id": 1007, + "id": 1004, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1004, + "id": 1001, "kind": "modifierInvocation", "modifierName": { - "id": 1003, + "id": 1000, "name": "onlyInitializing", "nameLocations": [ "1045:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1045:16:4" }, "nodeType": "ModifierInvocation", @@ -455,18 +455,18 @@ "nameLocation": "1004:29:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "1033:2:4" }, "returnParameters": { - "id": 1005, + "id": 1002, "nodeType": "ParameterList", "parameters": [], "src": "1062:0:4" }, - "scope": 1081, + "scope": 1078, "src": "995:74:4", "stateMutability": "nonpayable", "virtual": false, @@ -474,38 +474,38 @@ }, { "body": { - "id": 1015, + "id": 1012, "nodeType": "Block", "src": "1206:37:4", "statements": [ { "expression": { - "id": 1013, + "id": 1010, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1223:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1012, - "id": 1014, + "functionReturnParameters": 1009, + "id": 1011, "nodeType": "Return", "src": "1216:20:4" } ] }, "documentation": { - "id": 1008, + "id": 1005, "nodeType": "StructuredDocumentation", "src": "1074:65:4", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1016, + "id": 1013, "implemented": true, "kind": "function", "modifiers": [], @@ -513,23 +513,23 @@ "nameLocation": "1153:12:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1009, + "id": 1006, "nodeType": "ParameterList", "parameters": [], "src": "1165:2:4" }, "returnParameters": { - "id": 1012, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1011, + "id": 1008, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1016, + "scope": 1013, "src": "1197:7:4", "stateVariable": false, "storageLocation": "default", @@ -538,7 +538,7 @@ "typeString": "address" }, "typeName": { - "id": 1010, + "id": 1007, "name": "address", "nodeType": "ElementaryTypeName", "src": "1197:7:4", @@ -553,7 +553,7 @@ ], "src": "1196:9:4" }, - "scope": 1081, + "scope": 1078, "src": "1144:99:4", "stateMutability": "view", "virtual": true, @@ -561,26 +561,26 @@ }, { "baseFunctions": [ - 1188 + 1185 ], "body": { - "id": 1035, + "id": 1032, "nodeType": "Block", "src": "1515:99:4", "statements": [ { "expression": { - "id": 1027, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1025, + "id": 1022, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1525:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -590,11 +590,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1026, + "id": 1023, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1541:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -607,7 +607,7 @@ "typeString": "address" } }, - "id": 1028, + "id": 1025, "nodeType": "ExpressionStatement", "src": "1525:24:4" }, @@ -618,18 +618,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1030, + "id": 1027, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1589:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1031, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -646,11 +646,11 @@ } }, { - "id": 1032, + "id": 1029, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1598:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -669,18 +669,18 @@ "typeString": "address" } ], - "id": 1029, + "id": 1026, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, + "referencedDeclaration": 989, "src": "1564:24:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1033, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -696,34 +696,34 @@ "typeString": "tuple()" } }, - "id": 1034, + "id": 1031, "nodeType": "EmitStatement", "src": "1559:48:4" } ] }, "documentation": { - "id": 1017, + "id": 1014, "nodeType": "StructuredDocumentation", "src": "1249:182:4", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1036, + "id": 1033, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1023, + "id": 1020, "kind": "modifierInvocation", "modifierName": { - "id": 1022, + "id": 1019, "name": "onlyOwner", "nameLocations": [ "1505:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1505:9:4" }, "nodeType": "ModifierInvocation", @@ -734,23 +734,23 @@ "nameLocation": "1445:17:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1021, + "id": 1018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1496:8:4" }, "parameters": { - "id": 1020, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1019, + "id": 1016, "mutability": "mutable", "name": "newOwner", "nameLocation": "1471:8:4", "nodeType": "VariableDeclaration", - "scope": 1036, + "scope": 1033, "src": "1463:16:4", "stateVariable": false, "storageLocation": "default", @@ -759,7 +759,7 @@ "typeString": "address" }, "typeName": { - "id": 1018, + "id": 1015, "name": "address", "nodeType": "ElementaryTypeName", "src": "1463:7:4", @@ -775,12 +775,12 @@ "src": "1462:18:4" }, "returnParameters": { - "id": 1024, + "id": 1021, "nodeType": "ParameterList", "parameters": [], "src": "1515:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1436:178:4", "stateMutability": "nonpayable", "virtual": true, @@ -788,16 +788,16 @@ }, { "baseFunctions": [ - 1208 + 1205 ], "body": { - "id": 1052, + "id": 1049, "nodeType": "Block", "src": "1870:81:4", "statements": [ { "expression": { - "id": 1044, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -807,11 +807,11 @@ "prefix": true, "src": "1880:20:4", "subExpression": { - "id": 1043, + "id": 1040, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1887:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -823,7 +823,7 @@ "typeString": "tuple()" } }, - "id": 1045, + "id": 1042, "nodeType": "ExpressionStatement", "src": "1880:20:4" }, @@ -831,11 +831,11 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1046, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1039, + "referencedDeclaration": 1036, "src": "1935:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -851,18 +851,18 @@ } ], "expression": { - "id": 1046, + "id": 1043, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, "src": "1910:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1081_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1048, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -870,14 +870,14 @@ "memberLocation": "1916:18:4", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1910:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1050, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -893,19 +893,19 @@ "typeString": "tuple()" } }, - "id": 1051, + "id": 1048, "nodeType": "ExpressionStatement", "src": "1910:34:4" } ] }, "documentation": { - "id": 1037, + "id": 1034, "nodeType": "StructuredDocumentation", "src": "1620:173:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1053, + "id": 1050, "implemented": true, "kind": "function", "modifiers": [], @@ -913,23 +913,23 @@ "nameLocation": "1807:18:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1041, + "id": 1038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1861:8:4" }, "parameters": { - "id": 1040, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1039, + "id": 1036, "mutability": "mutable", "name": "newOwner", "nameLocation": "1834:8:4", "nodeType": "VariableDeclaration", - "scope": 1053, + "scope": 1050, "src": "1826:16:4", "stateVariable": false, "storageLocation": "default", @@ -938,7 +938,7 @@ "typeString": "address" }, "typeName": { - "id": 1038, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1826:7:4", @@ -954,12 +954,12 @@ "src": "1825:18:4" }, "returnParameters": { - "id": 1042, + "id": 1039, "nodeType": "ParameterList", "parameters": [], "src": "1870:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1798:153:4", "stateMutability": "nonpayable", "virtual": true, @@ -967,23 +967,23 @@ }, { "body": { - "id": 1074, + "id": 1071, "nodeType": "Block", "src": "2073:170:4", "statements": [ { "assignments": [ - 1058 + 1055 ], "declarations": [ { "constant": false, - "id": 1058, + "id": 1055, "mutability": "mutable", "name": "sender", "nameLocation": "2091:6:4", "nodeType": "VariableDeclaration", - "scope": 1074, + "scope": 1071, "src": "2083:14:4", "stateVariable": false, "storageLocation": "default", @@ -992,7 +992,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:4", @@ -1005,23 +1005,23 @@ "visibility": "internal" } ], - "id": 1061, + "id": 1058, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1059, + "id": 1056, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2100:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1060, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, @@ -1048,7 +1048,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1066, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -1057,18 +1057,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1063, + "id": 1060, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, + "referencedDeclaration": 1013, "src": "2130:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1064, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -1087,11 +1087,11 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1065, + "id": 1062, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2148:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1106,7 +1106,7 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1067, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, @@ -1132,7 +1132,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1062, + "id": 1059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1146,7 +1146,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -1162,7 +1162,7 @@ "typeString": "tuple()" } }, - "id": 1069, + "id": 1066, "nodeType": "ExpressionStatement", "src": "2122:78:4" }, @@ -1170,11 +1170,11 @@ "expression": { "arguments": [ { - "id": 1071, + "id": 1068, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2229:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1189,20 +1189,20 @@ "typeString": "address" } ], - "id": 1070, + "id": 1067, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1053 + 1050 ], - "referencedDeclaration": 1053, + "referencedDeclaration": 1050, "src": "2210:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1072, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1218,20 +1218,20 @@ "typeString": "tuple()" } }, - "id": 1073, + "id": 1070, "nodeType": "ExpressionStatement", "src": "2210:26:4" } ] }, "documentation": { - "id": 1054, + "id": 1051, "nodeType": "StructuredDocumentation", "src": "1957:69:4", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1075, + "id": 1072, "implemented": true, "kind": "function", "modifiers": [], @@ -1239,18 +1239,18 @@ "nameLocation": "2040:15:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1055, + "id": 1052, "nodeType": "ParameterList", "parameters": [], "src": "2055:2:4" }, "returnParameters": { - "id": 1056, + "id": 1053, "nodeType": "ParameterList", "parameters": [], "src": "2073:0:4" }, - "scope": 1081, + "scope": 1078, "src": "2031:212:4", "stateMutability": "nonpayable", "virtual": true, @@ -1259,17 +1259,17 @@ { "constant": false, "documentation": { - "id": 1076, + "id": 1073, "nodeType": "StructuredDocumentation", "src": "2249:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1080, + "id": 1077, "mutability": "mutable", "name": "__gap", "nameLocation": "2528:5:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "2508:25:4", "stateVariable": true, "storageLocation": "default", @@ -1279,7 +1279,7 @@ }, "typeName": { "baseType": { - "id": 1077, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2508:7:4", @@ -1288,10 +1288,10 @@ "typeString": "uint256" } }, - "id": 1079, + "id": 1076, "length": { "hexValue": "3439", - "id": 1078, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -1315,7 +1315,7 @@ "visibility": "private" } ], - "scope": 1082, + "scope": 1079, "src": "674:1862:4", "usedErrors": [] } @@ -1326,24 +1326,24 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "Ownable2StepUpgradeable": [ - 1081 + 1078 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1082, + "id": 1079, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 976, + "id": 973, "literals": [ "solidity", "^", @@ -1356,11 +1356,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 977, + "id": 974, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1215, + "scope": 1079, + "sourceUnit": 1212, "src": "132:34:4", "symbolAliases": [], "unitAlias": "" @@ -1368,20 +1368,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 979, + "id": 976, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1384, + "scope": 1079, + "sourceUnit": 1381, "src": "167:63:4", "symbolAliases": [ { "foreign": { - "id": 978, + "id": 975, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "175:13:4", "typeDescriptions": {} }, @@ -1395,31 +1395,31 @@ "baseContracts": [ { "baseName": { - "id": 981, + "id": 978, "name": "Initializable", "nameLocations": [ "719:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "719:13:4" }, - "id": 982, + "id": 979, "nodeType": "InheritanceSpecifier", "src": "719:13:4" }, { "baseName": { - "id": 983, + "id": 980, "name": "OwnableUpgradeable", "nameLocations": [ "734:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1214, + "referencedDeclaration": 1211, "src": "734:18:4" }, - "id": 984, + "id": 981, "nodeType": "InheritanceSpecifier", "src": "734:18:4" } @@ -1428,18 +1428,18 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 980, + "id": 977, "nodeType": "StructuredDocumentation", "src": "232:441:4", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1081, + "id": 1078, "linearizedBaseContracts": [ - 1081, - 1214, - 1892, - 1383 + 1078, + 1211, + 1889, + 1380 ], "name": "Ownable2StepUpgradeable", "nameLocation": "692:23:4", @@ -1447,12 +1447,12 @@ "nodes": [ { "constant": false, - "id": 986, + "id": 983, "mutability": "mutable", "name": "_pendingOwner", "nameLocation": "775:13:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "759:29:4", "stateVariable": true, "storageLocation": "default", @@ -1461,7 +1461,7 @@ "typeString": "address" }, "typeName": { - "id": 985, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:4", @@ -1476,23 +1476,23 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 992, + "id": 989, "name": "OwnershipTransferStarted", "nameLocation": "801:24:4", "nodeType": "EventDefinition", "parameters": { - "id": 991, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 988, + "id": 985, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "842:13:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "826:29:4", "stateVariable": false, "storageLocation": "default", @@ -1501,7 +1501,7 @@ "typeString": "address" }, "typeName": { - "id": 987, + "id": 984, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:4", @@ -1515,13 +1515,13 @@ }, { "constant": false, - "id": 990, + "id": 987, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "873:8:4", "nodeType": "VariableDeclaration", - "scope": 992, + "scope": 989, "src": "857:24:4", "stateVariable": false, "storageLocation": "default", @@ -1530,7 +1530,7 @@ "typeString": "address" }, "typeName": { - "id": 989, + "id": 986, "name": "address", "nodeType": "ElementaryTypeName", "src": "857:7:4", @@ -1549,7 +1549,7 @@ }, { "body": { - "id": 1000, + "id": 997, "nodeType": "Block", "src": "946:43:4", "statements": [ @@ -1558,18 +1558,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 997, + "id": 994, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "956:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 998, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -1585,27 +1585,27 @@ "typeString": "tuple()" } }, - "id": 999, + "id": 996, "nodeType": "ExpressionStatement", "src": "956:26:4" } ] }, - "id": 1001, + "id": 998, "implemented": true, "kind": "function", "modifiers": [ { - "id": 995, + "id": 992, "kind": "modifierInvocation", "modifierName": { - "id": 994, + "id": 991, "name": "onlyInitializing", "nameLocations": [ "929:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "929:16:4" }, "nodeType": "ModifierInvocation", @@ -1616,18 +1616,18 @@ "nameLocation": "898:19:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 993, + "id": 990, "nodeType": "ParameterList", "parameters": [], "src": "917:2:4" }, "returnParameters": { - "id": 996, + "id": 993, "nodeType": "ParameterList", "parameters": [], "src": "946:0:4" }, - "scope": 1081, + "scope": 1078, "src": "889:100:4", "stateMutability": "nonpayable", "virtual": false, @@ -1635,26 +1635,26 @@ }, { "body": { - "id": 1006, + "id": 1003, "nodeType": "Block", "src": "1062:7:4", "statements": [] }, - "id": 1007, + "id": 1004, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1004, + "id": 1001, "kind": "modifierInvocation", "modifierName": { - "id": 1003, + "id": 1000, "name": "onlyInitializing", "nameLocations": [ "1045:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1045:16:4" }, "nodeType": "ModifierInvocation", @@ -1665,18 +1665,18 @@ "nameLocation": "1004:29:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1002, + "id": 999, "nodeType": "ParameterList", "parameters": [], "src": "1033:2:4" }, "returnParameters": { - "id": 1005, + "id": 1002, "nodeType": "ParameterList", "parameters": [], "src": "1062:0:4" }, - "scope": 1081, + "scope": 1078, "src": "995:74:4", "stateMutability": "nonpayable", "virtual": false, @@ -1684,38 +1684,38 @@ }, { "body": { - "id": 1015, + "id": 1012, "nodeType": "Block", "src": "1206:37:4", "statements": [ { "expression": { - "id": 1013, + "id": 1010, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1223:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1012, - "id": 1014, + "functionReturnParameters": 1009, + "id": 1011, "nodeType": "Return", "src": "1216:20:4" } ] }, "documentation": { - "id": 1008, + "id": 1005, "nodeType": "StructuredDocumentation", "src": "1074:65:4", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1016, + "id": 1013, "implemented": true, "kind": "function", "modifiers": [], @@ -1723,23 +1723,23 @@ "nameLocation": "1153:12:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1009, + "id": 1006, "nodeType": "ParameterList", "parameters": [], "src": "1165:2:4" }, "returnParameters": { - "id": 1012, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1011, + "id": 1008, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1016, + "scope": 1013, "src": "1197:7:4", "stateVariable": false, "storageLocation": "default", @@ -1748,7 +1748,7 @@ "typeString": "address" }, "typeName": { - "id": 1010, + "id": 1007, "name": "address", "nodeType": "ElementaryTypeName", "src": "1197:7:4", @@ -1763,7 +1763,7 @@ ], "src": "1196:9:4" }, - "scope": 1081, + "scope": 1078, "src": "1144:99:4", "stateMutability": "view", "virtual": true, @@ -1771,26 +1771,26 @@ }, { "baseFunctions": [ - 1188 + 1185 ], "body": { - "id": 1035, + "id": 1032, "nodeType": "Block", "src": "1515:99:4", "statements": [ { "expression": { - "id": 1027, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1025, + "id": 1022, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1525:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1800,11 +1800,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1026, + "id": 1023, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1541:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1817,7 +1817,7 @@ "typeString": "address" } }, - "id": 1028, + "id": 1025, "nodeType": "ExpressionStatement", "src": "1525:24:4" }, @@ -1828,18 +1828,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1030, + "id": 1027, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1589:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1031, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -1856,11 +1856,11 @@ } }, { - "id": 1032, + "id": 1029, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1016, "src": "1598:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1879,18 +1879,18 @@ "typeString": "address" } ], - "id": 1029, + "id": 1026, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, + "referencedDeclaration": 989, "src": "1564:24:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1033, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -1906,34 +1906,34 @@ "typeString": "tuple()" } }, - "id": 1034, + "id": 1031, "nodeType": "EmitStatement", "src": "1559:48:4" } ] }, "documentation": { - "id": 1017, + "id": 1014, "nodeType": "StructuredDocumentation", "src": "1249:182:4", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1036, + "id": 1033, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1023, + "id": 1020, "kind": "modifierInvocation", "modifierName": { - "id": 1022, + "id": 1019, "name": "onlyOwner", "nameLocations": [ "1505:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "1505:9:4" }, "nodeType": "ModifierInvocation", @@ -1944,23 +1944,23 @@ "nameLocation": "1445:17:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1021, + "id": 1018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1496:8:4" }, "parameters": { - "id": 1020, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1019, + "id": 1016, "mutability": "mutable", "name": "newOwner", "nameLocation": "1471:8:4", "nodeType": "VariableDeclaration", - "scope": 1036, + "scope": 1033, "src": "1463:16:4", "stateVariable": false, "storageLocation": "default", @@ -1969,7 +1969,7 @@ "typeString": "address" }, "typeName": { - "id": 1018, + "id": 1015, "name": "address", "nodeType": "ElementaryTypeName", "src": "1463:7:4", @@ -1985,12 +1985,12 @@ "src": "1462:18:4" }, "returnParameters": { - "id": 1024, + "id": 1021, "nodeType": "ParameterList", "parameters": [], "src": "1515:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1436:178:4", "stateMutability": "nonpayable", "virtual": true, @@ -1998,16 +1998,16 @@ }, { "baseFunctions": [ - 1208 + 1205 ], "body": { - "id": 1052, + "id": 1049, "nodeType": "Block", "src": "1870:81:4", "statements": [ { "expression": { - "id": 1044, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -2017,11 +2017,11 @@ "prefix": true, "src": "1880:20:4", "subExpression": { - "id": 1043, + "id": 1040, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, + "referencedDeclaration": 983, "src": "1887:13:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2033,7 +2033,7 @@ "typeString": "tuple()" } }, - "id": 1045, + "id": 1042, "nodeType": "ExpressionStatement", "src": "1880:20:4" }, @@ -2041,11 +2041,11 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1046, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1039, + "referencedDeclaration": 1036, "src": "1935:8:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2061,18 +2061,18 @@ } ], "expression": { - "id": 1046, + "id": 1043, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, "src": "1910:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1081_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1048, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -2080,14 +2080,14 @@ "memberLocation": "1916:18:4", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1910:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1050, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -2103,19 +2103,19 @@ "typeString": "tuple()" } }, - "id": 1051, + "id": 1048, "nodeType": "ExpressionStatement", "src": "1910:34:4" } ] }, "documentation": { - "id": 1037, + "id": 1034, "nodeType": "StructuredDocumentation", "src": "1620:173:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1053, + "id": 1050, "implemented": true, "kind": "function", "modifiers": [], @@ -2123,23 +2123,23 @@ "nameLocation": "1807:18:4", "nodeType": "FunctionDefinition", "overrides": { - "id": 1041, + "id": 1038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1861:8:4" }, "parameters": { - "id": 1040, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1039, + "id": 1036, "mutability": "mutable", "name": "newOwner", "nameLocation": "1834:8:4", "nodeType": "VariableDeclaration", - "scope": 1053, + "scope": 1050, "src": "1826:16:4", "stateVariable": false, "storageLocation": "default", @@ -2148,7 +2148,7 @@ "typeString": "address" }, "typeName": { - "id": 1038, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1826:7:4", @@ -2164,12 +2164,12 @@ "src": "1825:18:4" }, "returnParameters": { - "id": 1042, + "id": 1039, "nodeType": "ParameterList", "parameters": [], "src": "1870:0:4" }, - "scope": 1081, + "scope": 1078, "src": "1798:153:4", "stateMutability": "nonpayable", "virtual": true, @@ -2177,23 +2177,23 @@ }, { "body": { - "id": 1074, + "id": 1071, "nodeType": "Block", "src": "2073:170:4", "statements": [ { "assignments": [ - 1058 + 1055 ], "declarations": [ { "constant": false, - "id": 1058, + "id": 1055, "mutability": "mutable", "name": "sender", "nameLocation": "2091:6:4", "nodeType": "VariableDeclaration", - "scope": 1074, + "scope": 1071, "src": "2083:14:4", "stateVariable": false, "storageLocation": "default", @@ -2202,7 +2202,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:4", @@ -2215,23 +2215,23 @@ "visibility": "internal" } ], - "id": 1061, + "id": 1058, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1059, + "id": 1056, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2100:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1060, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, @@ -2258,7 +2258,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1066, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -2267,18 +2267,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1063, + "id": 1060, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, + "referencedDeclaration": 1013, "src": "2130:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1064, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -2297,11 +2297,11 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1065, + "id": 1062, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2148:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2316,7 +2316,7 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1067, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, @@ -2342,7 +2342,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1062, + "id": 1059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2356,7 +2356,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -2372,7 +2372,7 @@ "typeString": "tuple()" } }, - "id": 1069, + "id": 1066, "nodeType": "ExpressionStatement", "src": "2122:78:4" }, @@ -2380,11 +2380,11 @@ "expression": { "arguments": [ { - "id": 1071, + "id": 1068, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1055, "src": "2229:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2399,20 +2399,20 @@ "typeString": "address" } ], - "id": 1070, + "id": 1067, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1053 + 1050 ], - "referencedDeclaration": 1053, + "referencedDeclaration": 1050, "src": "2210:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1072, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2428,20 +2428,20 @@ "typeString": "tuple()" } }, - "id": 1073, + "id": 1070, "nodeType": "ExpressionStatement", "src": "2210:26:4" } ] }, "documentation": { - "id": 1054, + "id": 1051, "nodeType": "StructuredDocumentation", "src": "1957:69:4", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1075, + "id": 1072, "implemented": true, "kind": "function", "modifiers": [], @@ -2449,18 +2449,18 @@ "nameLocation": "2040:15:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1055, + "id": 1052, "nodeType": "ParameterList", "parameters": [], "src": "2055:2:4" }, "returnParameters": { - "id": 1056, + "id": 1053, "nodeType": "ParameterList", "parameters": [], "src": "2073:0:4" }, - "scope": 1081, + "scope": 1078, "src": "2031:212:4", "stateMutability": "nonpayable", "virtual": true, @@ -2469,17 +2469,17 @@ { "constant": false, "documentation": { - "id": 1076, + "id": 1073, "nodeType": "StructuredDocumentation", "src": "2249:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1080, + "id": 1077, "mutability": "mutable", "name": "__gap", "nameLocation": "2528:5:4", "nodeType": "VariableDeclaration", - "scope": 1081, + "scope": 1078, "src": "2508:25:4", "stateVariable": true, "storageLocation": "default", @@ -2489,7 +2489,7 @@ }, "typeName": { "baseType": { - "id": 1077, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2508:7:4", @@ -2498,10 +2498,10 @@ "typeString": "uint256" } }, - "id": 1079, + "id": 1076, "length": { "hexValue": "3439", - "id": 1078, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -2525,7 +2525,7 @@ "visibility": "private" } ], - "scope": 1082, + "scope": 1079, "src": "674:1862:4", "usedErrors": [] } @@ -2538,5 +2538,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.550Z" + "updatedAt": "2024-06-27T12:24:25.257Z" } \ No newline at end of file diff --git a/build/contracts/OwnableUpgradeable.json b/build/contracts/OwnableUpgradeable.json index 34f3a83..433e7f5 100644 --- a/build/contracts/OwnableUpgradeable.json +++ b/build/contracts/OwnableUpgradeable.json @@ -77,21 +77,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1215, + "id": 1212, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1083, + "id": 1080, "literals": [ "solidity", "^", @@ -104,11 +104,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1084, + "id": 1081, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1893, + "scope": 1212, + "sourceUnit": 1890, "src": "127:41:5", "symbolAliases": [], "unitAlias": "" @@ -116,20 +116,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1086, + "id": 1083, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1384, + "scope": 1212, + "sourceUnit": 1381, "src": "169:63:5", "symbolAliases": [ { "foreign": { - "id": 1085, + "id": 1082, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "177:13:5", "typeDescriptions": {} }, @@ -143,31 +143,31 @@ "baseContracts": [ { "baseName": { - "id": 1088, + "id": 1085, "name": "Initializable", "nameLocations": [ "769:13:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "769:13:5" }, - "id": 1089, + "id": 1086, "nodeType": "InheritanceSpecifier", "src": "769:13:5" }, { "baseName": { - "id": 1090, + "id": 1087, "name": "ContextUpgradeable", "nameLocations": [ "784:18:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "784:18:5" }, - "id": 1091, + "id": 1088, "nodeType": "InheritanceSpecifier", "src": "784:18:5" } @@ -176,17 +176,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1087, + "id": 1084, "nodeType": "StructuredDocumentation", "src": "234:494:5", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1214, + "id": 1211, "linearizedBaseContracts": [ - 1214, - 1892, - 1383 + 1211, + 1889, + 1380 ], "name": "OwnableUpgradeable", "nameLocation": "747:18:5", @@ -194,12 +194,12 @@ "nodes": [ { "constant": false, - "id": 1093, + "id": 1090, "mutability": "mutable", "name": "_owner", "nameLocation": "825:6:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "809:22:5", "stateVariable": true, "storageLocation": "default", @@ -208,7 +208,7 @@ "typeString": "address" }, "typeName": { - "id": 1092, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", "src": "809:7:5", @@ -223,23 +223,23 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1099, + "id": 1096, "name": "OwnershipTransferred", "nameLocation": "844:20:5", "nodeType": "EventDefinition", "parameters": { - "id": 1098, + "id": 1095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1095, + "id": 1092, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "881:13:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "865:29:5", "stateVariable": false, "storageLocation": "default", @@ -248,7 +248,7 @@ "typeString": "address" }, "typeName": { - "id": 1094, + "id": 1091, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:5", @@ -262,13 +262,13 @@ }, { "constant": false, - "id": 1097, + "id": 1094, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "912:8:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "896:24:5", "stateVariable": false, "storageLocation": "default", @@ -277,7 +277,7 @@ "typeString": "address" }, "typeName": { - "id": 1096, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "896:7:5", @@ -296,7 +296,7 @@ }, { "body": { - "id": 1108, + "id": 1105, "nodeType": "Block", "src": "1076:43:5", "statements": [ @@ -305,18 +305,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1105, + "id": 1102, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "1086:24:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1106, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -332,33 +332,33 @@ "typeString": "tuple()" } }, - "id": 1107, + "id": 1104, "nodeType": "ExpressionStatement", "src": "1086:26:5" } ] }, "documentation": { - "id": 1100, + "id": 1097, "nodeType": "StructuredDocumentation", "src": "928:91:5", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1109, + "id": 1106, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1103, + "id": 1100, "kind": "modifierInvocation", "modifierName": { - "id": 1102, + "id": 1099, "name": "onlyInitializing", "nameLocations": [ "1059:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1059:16:5" }, "nodeType": "ModifierInvocation", @@ -369,18 +369,18 @@ "nameLocation": "1033:14:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1098, "nodeType": "ParameterList", "parameters": [], "src": "1047:2:5" }, "returnParameters": { - "id": 1104, + "id": 1101, "nodeType": "ParameterList", "parameters": [], "src": "1076:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1024:95:5", "stateMutability": "nonpayable", "virtual": false, @@ -388,7 +388,7 @@ }, { "body": { - "id": 1119, + "id": 1116, "nodeType": "Block", "src": "1187:49:5", "statements": [ @@ -399,18 +399,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1115, + "id": 1112, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1216:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1116, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -434,18 +434,18 @@ "typeString": "address" } ], - "id": 1114, + "id": 1111, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1197:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1117, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -461,27 +461,27 @@ "typeString": "tuple()" } }, - "id": 1118, + "id": 1115, "nodeType": "ExpressionStatement", "src": "1197:32:5" } ] }, - "id": 1120, + "id": 1117, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1112, + "id": 1109, "kind": "modifierInvocation", "modifierName": { - "id": 1111, + "id": 1108, "name": "onlyInitializing", "nameLocations": [ "1170:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1170:16:5" }, "nodeType": "ModifierInvocation", @@ -492,18 +492,18 @@ "nameLocation": "1134:24:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1110, + "id": 1107, "nodeType": "ParameterList", "parameters": [], "src": "1158:2:5" }, "returnParameters": { - "id": 1113, + "id": 1110, "nodeType": "ParameterList", "parameters": [], "src": "1187:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1125:111:5", "stateMutability": "nonpayable", "virtual": false, @@ -511,7 +511,7 @@ }, { "body": { - "id": 1127, + "id": 1124, "nodeType": "Block", "src": "1345:41:5", "statements": [ @@ -520,18 +520,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1123, + "id": 1120, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1148, "src": "1355:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1124, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -547,29 +547,29 @@ "typeString": "tuple()" } }, - "id": 1125, + "id": 1122, "nodeType": "ExpressionStatement", "src": "1355:13:5" }, { - "id": 1126, + "id": 1123, "nodeType": "PlaceholderStatement", "src": "1378:1:5" } ] }, "documentation": { - "id": 1121, + "id": 1118, "nodeType": "StructuredDocumentation", "src": "1242:77:5", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1128, + "id": 1125, "name": "onlyOwner", "nameLocation": "1333:9:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1122, + "id": 1119, "nodeType": "ParameterList", "parameters": [], "src": "1342:2:5" @@ -580,38 +580,38 @@ }, { "body": { - "id": 1136, + "id": 1133, "nodeType": "Block", "src": "1517:30:5", "statements": [ { "expression": { - "id": 1134, + "id": 1131, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "1534:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1133, - "id": 1135, + "functionReturnParameters": 1130, + "id": 1132, "nodeType": "Return", "src": "1527:13:5" } ] }, "documentation": { - "id": 1129, + "id": 1126, "nodeType": "StructuredDocumentation", "src": "1392:65:5", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1137, + "id": 1134, "implemented": true, "kind": "function", "modifiers": [], @@ -619,23 +619,23 @@ "nameLocation": "1471:5:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1130, + "id": 1127, "nodeType": "ParameterList", "parameters": [], "src": "1476:2:5" }, "returnParameters": { - "id": 1133, + "id": 1130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1132, + "id": 1129, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1134, "src": "1508:7:5", "stateVariable": false, "storageLocation": "default", @@ -644,7 +644,7 @@ "typeString": "address" }, "typeName": { - "id": 1131, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", "src": "1508:7:5", @@ -659,7 +659,7 @@ ], "src": "1507:9:5" }, - "scope": 1214, + "scope": 1211, "src": "1462:85:5", "stateMutability": "view", "virtual": true, @@ -667,7 +667,7 @@ }, { "body": { - "id": 1150, + "id": 1147, "nodeType": "Block", "src": "1665:85:5", "statements": [ @@ -679,7 +679,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1146, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,18 +688,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1142, + "id": 1139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1683:5:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1143, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -721,18 +721,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1144, + "id": 1141, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1694:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1145, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -756,7 +756,7 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1147, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": true, @@ -782,7 +782,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1141, + "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -796,7 +796,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1148, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -812,19 +812,19 @@ "typeString": "tuple()" } }, - "id": 1149, + "id": 1146, "nodeType": "ExpressionStatement", "src": "1675:68:5" } ] }, "documentation": { - "id": 1138, + "id": 1135, "nodeType": "StructuredDocumentation", "src": "1553:62:5", "text": " @dev Throws if the sender is not the owner." }, - "id": 1151, + "id": 1148, "implemented": true, "kind": "function", "modifiers": [], @@ -832,18 +832,18 @@ "nameLocation": "1629:11:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "1640:2:5" }, "returnParameters": { - "id": 1140, + "id": 1137, "nodeType": "ParameterList", "parameters": [], "src": "1665:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1620:130:5", "stateMutability": "view", "virtual": true, @@ -851,7 +851,7 @@ }, { "body": { - "id": 1164, + "id": 1161, "nodeType": "Block", "src": "2139:47:5", "statements": [ @@ -862,7 +862,7 @@ "arguments": [ { "hexValue": "30", - "id": 1160, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, @@ -884,7 +884,7 @@ "typeString": "int_const 0" } ], - "id": 1159, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, @@ -896,14 +896,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1158, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2168:7:5", "typeDescriptions": {} } }, - "id": 1161, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, @@ -927,18 +927,18 @@ "typeString": "address" } ], - "id": 1157, + "id": 1154, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2149:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1162, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -954,34 +954,34 @@ "typeString": "tuple()" } }, - "id": 1163, + "id": 1160, "nodeType": "ExpressionStatement", "src": "2149:30:5" } ] }, "documentation": { - "id": 1152, + "id": 1149, "nodeType": "StructuredDocumentation", "src": "1756:324:5", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1165, + "id": 1162, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1155, + "id": 1152, "kind": "modifierInvocation", "modifierName": { - "id": 1154, + "id": 1151, "name": "onlyOwner", "nameLocations": [ "2129:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2129:9:5" }, "nodeType": "ModifierInvocation", @@ -992,18 +992,18 @@ "nameLocation": "2094:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1153, + "id": 1150, "nodeType": "ParameterList", "parameters": [], "src": "2111:2:5" }, "returnParameters": { - "id": 1156, + "id": 1153, "nodeType": "ParameterList", "parameters": [], "src": "2139:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2085:101:5", "stateMutability": "nonpayable", "virtual": true, @@ -1011,7 +1011,7 @@ }, { "body": { - "id": 1187, + "id": 1184, "nodeType": "Block", "src": "2405:128:5", "statements": [ @@ -1023,17 +1023,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1179, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1174, + "id": 1171, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2423:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1046,7 +1046,7 @@ "arguments": [ { "hexValue": "30", - "id": 1177, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, @@ -1068,7 +1068,7 @@ "typeString": "int_const 0" } ], - "id": 1176, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": true, @@ -1080,14 +1080,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1175, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", "src": "2435:7:5", "typeDescriptions": {} } }, - "id": 1178, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, @@ -1111,7 +1111,7 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1180, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, @@ -1137,7 +1137,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1173, + "id": 1170, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1151,7 +1151,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1181, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -1167,7 +1167,7 @@ "typeString": "tuple()" } }, - "id": 1182, + "id": 1179, "nodeType": "ExpressionStatement", "src": "2415:73:5" }, @@ -1175,11 +1175,11 @@ "expression": { "arguments": [ { - "id": 1184, + "id": 1181, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2517:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1194,18 +1194,18 @@ "typeString": "address" } ], - "id": 1183, + "id": 1180, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2498:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1185, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -1221,34 +1221,34 @@ "typeString": "tuple()" } }, - "id": 1186, + "id": 1183, "nodeType": "ExpressionStatement", "src": "2498:28:5" } ] }, "documentation": { - "id": 1166, + "id": 1163, "nodeType": "StructuredDocumentation", "src": "2192:138:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1188, + "id": 1185, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1171, + "id": 1168, "kind": "modifierInvocation", "modifierName": { - "id": 1170, + "id": 1167, "name": "onlyOwner", "nameLocations": [ "2395:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2395:9:5" }, "nodeType": "ModifierInvocation", @@ -1259,17 +1259,17 @@ "nameLocation": "2344:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 1165, "mutability": "mutable", "name": "newOwner", "nameLocation": "2370:8:5", "nodeType": "VariableDeclaration", - "scope": 1188, + "scope": 1185, "src": "2362:16:5", "stateVariable": false, "storageLocation": "default", @@ -1278,7 +1278,7 @@ "typeString": "address" }, "typeName": { - "id": 1167, + "id": 1164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:5", @@ -1294,12 +1294,12 @@ "src": "2361:18:5" }, "returnParameters": { - "id": 1172, + "id": 1169, "nodeType": "ParameterList", "parameters": [], "src": "2405:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2335:198:5", "stateMutability": "nonpayable", "virtual": true, @@ -1307,23 +1307,23 @@ }, { "body": { - "id": 1207, + "id": 1204, "nodeType": "Block", "src": "2750:124:5", "statements": [ { "assignments": [ - 1195 + 1192 ], "declarations": [ { "constant": false, - "id": 1195, + "id": 1192, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2768:8:5", "nodeType": "VariableDeclaration", - "scope": 1207, + "scope": 1204, "src": "2760:16:5", "stateVariable": false, "storageLocation": "default", @@ -1332,7 +1332,7 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "2760:7:5", @@ -1345,13 +1345,13 @@ "visibility": "internal" } ], - "id": 1197, + "id": 1194, "initialValue": { - "id": 1196, + "id": 1193, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2779:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1363,17 +1363,17 @@ }, { "expression": { - "id": 1200, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1198, + "id": 1195, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2795:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1383,11 +1383,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1199, + "id": 1196, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2804:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1400,7 +1400,7 @@ "typeString": "address" } }, - "id": 1201, + "id": 1198, "nodeType": "ExpressionStatement", "src": "2795:17:5" }, @@ -1408,11 +1408,11 @@ "eventCall": { "arguments": [ { - "id": 1203, + "id": 1200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, + "referencedDeclaration": 1192, "src": "2848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1420,11 +1420,11 @@ } }, { - "id": 1204, + "id": 1201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2858:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1443,18 +1443,18 @@ "typeString": "address" } ], - "id": 1202, + "id": 1199, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1096, "src": "2827:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1205, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -1470,19 +1470,19 @@ "typeString": "tuple()" } }, - "id": 1206, + "id": 1203, "nodeType": "EmitStatement", "src": "2822:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1186, "nodeType": "StructuredDocumentation", "src": "2539:143:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1208, + "id": 1205, "implemented": true, "kind": "function", "modifiers": [], @@ -1490,17 +1490,17 @@ "nameLocation": "2696:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1192, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1188, "mutability": "mutable", "name": "newOwner", "nameLocation": "2723:8:5", "nodeType": "VariableDeclaration", - "scope": 1208, + "scope": 1205, "src": "2715:16:5", "stateVariable": false, "storageLocation": "default", @@ -1509,7 +1509,7 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1187, "name": "address", "nodeType": "ElementaryTypeName", "src": "2715:7:5", @@ -1525,12 +1525,12 @@ "src": "2714:18:5" }, "returnParameters": { - "id": 1193, + "id": 1190, "nodeType": "ParameterList", "parameters": [], "src": "2750:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2687:187:5", "stateMutability": "nonpayable", "virtual": true, @@ -1539,17 +1539,17 @@ { "constant": false, "documentation": { - "id": 1209, + "id": 1206, "nodeType": "StructuredDocumentation", "src": "2880:254:5", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1213, + "id": 1210, "mutability": "mutable", "name": "__gap", "nameLocation": "3159:5:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "3139:25:5", "stateVariable": true, "storageLocation": "default", @@ -1559,7 +1559,7 @@ }, "typeName": { "baseType": { - "id": 1210, + "id": 1207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3139:7:5", @@ -1568,10 +1568,10 @@ "typeString": "uint256" } }, - "id": 1212, + "id": 1209, "length": { "hexValue": "3439", - "id": 1211, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -1595,7 +1595,7 @@ "visibility": "private" } ], - "scope": 1215, + "scope": 1212, "src": "729:2438:5", "usedErrors": [] } @@ -1606,21 +1606,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "OwnableUpgradeable": [ - 1214 + 1211 ] }, - "id": 1215, + "id": 1212, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1083, + "id": 1080, "literals": [ "solidity", "^", @@ -1633,11 +1633,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1084, + "id": 1081, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1893, + "scope": 1212, + "sourceUnit": 1890, "src": "127:41:5", "symbolAliases": [], "unitAlias": "" @@ -1645,20 +1645,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1086, + "id": 1083, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1215, - "sourceUnit": 1384, + "scope": 1212, + "sourceUnit": 1381, "src": "169:63:5", "symbolAliases": [ { "foreign": { - "id": 1085, + "id": 1082, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "177:13:5", "typeDescriptions": {} }, @@ -1672,31 +1672,31 @@ "baseContracts": [ { "baseName": { - "id": 1088, + "id": 1085, "name": "Initializable", "nameLocations": [ "769:13:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "769:13:5" }, - "id": 1089, + "id": 1086, "nodeType": "InheritanceSpecifier", "src": "769:13:5" }, { "baseName": { - "id": 1090, + "id": 1087, "name": "ContextUpgradeable", "nameLocations": [ "784:18:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "784:18:5" }, - "id": 1091, + "id": 1088, "nodeType": "InheritanceSpecifier", "src": "784:18:5" } @@ -1705,17 +1705,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1087, + "id": 1084, "nodeType": "StructuredDocumentation", "src": "234:494:5", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1214, + "id": 1211, "linearizedBaseContracts": [ - 1214, - 1892, - 1383 + 1211, + 1889, + 1380 ], "name": "OwnableUpgradeable", "nameLocation": "747:18:5", @@ -1723,12 +1723,12 @@ "nodes": [ { "constant": false, - "id": 1093, + "id": 1090, "mutability": "mutable", "name": "_owner", "nameLocation": "825:6:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "809:22:5", "stateVariable": true, "storageLocation": "default", @@ -1737,7 +1737,7 @@ "typeString": "address" }, "typeName": { - "id": 1092, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", "src": "809:7:5", @@ -1752,23 +1752,23 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1099, + "id": 1096, "name": "OwnershipTransferred", "nameLocation": "844:20:5", "nodeType": "EventDefinition", "parameters": { - "id": 1098, + "id": 1095, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1095, + "id": 1092, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "881:13:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "865:29:5", "stateVariable": false, "storageLocation": "default", @@ -1777,7 +1777,7 @@ "typeString": "address" }, "typeName": { - "id": 1094, + "id": 1091, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:5", @@ -1791,13 +1791,13 @@ }, { "constant": false, - "id": 1097, + "id": 1094, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "912:8:5", "nodeType": "VariableDeclaration", - "scope": 1099, + "scope": 1096, "src": "896:24:5", "stateVariable": false, "storageLocation": "default", @@ -1806,7 +1806,7 @@ "typeString": "address" }, "typeName": { - "id": 1096, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "896:7:5", @@ -1825,7 +1825,7 @@ }, { "body": { - "id": 1108, + "id": 1105, "nodeType": "Block", "src": "1076:43:5", "statements": [ @@ -1834,18 +1834,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1105, + "id": 1102, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, + "referencedDeclaration": 1117, "src": "1086:24:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1106, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -1861,33 +1861,33 @@ "typeString": "tuple()" } }, - "id": 1107, + "id": 1104, "nodeType": "ExpressionStatement", "src": "1086:26:5" } ] }, "documentation": { - "id": 1100, + "id": 1097, "nodeType": "StructuredDocumentation", "src": "928:91:5", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1109, + "id": 1106, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1103, + "id": 1100, "kind": "modifierInvocation", "modifierName": { - "id": 1102, + "id": 1099, "name": "onlyInitializing", "nameLocations": [ "1059:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1059:16:5" }, "nodeType": "ModifierInvocation", @@ -1898,18 +1898,18 @@ "nameLocation": "1033:14:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1101, + "id": 1098, "nodeType": "ParameterList", "parameters": [], "src": "1047:2:5" }, "returnParameters": { - "id": 1104, + "id": 1101, "nodeType": "ParameterList", "parameters": [], "src": "1076:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1024:95:5", "stateMutability": "nonpayable", "virtual": false, @@ -1917,7 +1917,7 @@ }, { "body": { - "id": 1119, + "id": 1116, "nodeType": "Block", "src": "1187:49:5", "statements": [ @@ -1928,18 +1928,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1115, + "id": 1112, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1216:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1116, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -1963,18 +1963,18 @@ "typeString": "address" } ], - "id": 1114, + "id": 1111, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "1197:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1117, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -1990,27 +1990,27 @@ "typeString": "tuple()" } }, - "id": 1118, + "id": 1115, "nodeType": "ExpressionStatement", "src": "1197:32:5" } ] }, - "id": 1120, + "id": 1117, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1112, + "id": 1109, "kind": "modifierInvocation", "modifierName": { - "id": 1111, + "id": 1108, "name": "onlyInitializing", "nameLocations": [ "1170:16:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1170:16:5" }, "nodeType": "ModifierInvocation", @@ -2021,18 +2021,18 @@ "nameLocation": "1134:24:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1110, + "id": 1107, "nodeType": "ParameterList", "parameters": [], "src": "1158:2:5" }, "returnParameters": { - "id": 1113, + "id": 1110, "nodeType": "ParameterList", "parameters": [], "src": "1187:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1125:111:5", "stateMutability": "nonpayable", "virtual": false, @@ -2040,7 +2040,7 @@ }, { "body": { - "id": 1127, + "id": 1124, "nodeType": "Block", "src": "1345:41:5", "statements": [ @@ -2049,18 +2049,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1123, + "id": 1120, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1148, "src": "1355:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1124, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, @@ -2076,29 +2076,29 @@ "typeString": "tuple()" } }, - "id": 1125, + "id": 1122, "nodeType": "ExpressionStatement", "src": "1355:13:5" }, { - "id": 1126, + "id": 1123, "nodeType": "PlaceholderStatement", "src": "1378:1:5" } ] }, "documentation": { - "id": 1121, + "id": 1118, "nodeType": "StructuredDocumentation", "src": "1242:77:5", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1128, + "id": 1125, "name": "onlyOwner", "nameLocation": "1333:9:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1122, + "id": 1119, "nodeType": "ParameterList", "parameters": [], "src": "1342:2:5" @@ -2109,38 +2109,38 @@ }, { "body": { - "id": 1136, + "id": 1133, "nodeType": "Block", "src": "1517:30:5", "statements": [ { "expression": { - "id": 1134, + "id": 1131, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "1534:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1133, - "id": 1135, + "functionReturnParameters": 1130, + "id": 1132, "nodeType": "Return", "src": "1527:13:5" } ] }, "documentation": { - "id": 1129, + "id": 1126, "nodeType": "StructuredDocumentation", "src": "1392:65:5", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1137, + "id": 1134, "implemented": true, "kind": "function", "modifiers": [], @@ -2148,23 +2148,23 @@ "nameLocation": "1471:5:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1130, + "id": 1127, "nodeType": "ParameterList", "parameters": [], "src": "1476:2:5" }, "returnParameters": { - "id": 1133, + "id": 1130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1132, + "id": 1129, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1134, "src": "1508:7:5", "stateVariable": false, "storageLocation": "default", @@ -2173,7 +2173,7 @@ "typeString": "address" }, "typeName": { - "id": 1131, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", "src": "1508:7:5", @@ -2188,7 +2188,7 @@ ], "src": "1507:9:5" }, - "scope": 1214, + "scope": 1211, "src": "1462:85:5", "stateMutability": "view", "virtual": true, @@ -2196,7 +2196,7 @@ }, { "body": { - "id": 1150, + "id": 1147, "nodeType": "Block", "src": "1665:85:5", "statements": [ @@ -2208,7 +2208,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1146, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -2217,18 +2217,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1142, + "id": 1139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, + "referencedDeclaration": 1134, "src": "1683:5:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1143, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -2250,18 +2250,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1144, + "id": 1141, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "1694:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1145, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -2285,7 +2285,7 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1147, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": true, @@ -2311,7 +2311,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1141, + "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2325,7 +2325,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1148, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -2341,19 +2341,19 @@ "typeString": "tuple()" } }, - "id": 1149, + "id": 1146, "nodeType": "ExpressionStatement", "src": "1675:68:5" } ] }, "documentation": { - "id": 1138, + "id": 1135, "nodeType": "StructuredDocumentation", "src": "1553:62:5", "text": " @dev Throws if the sender is not the owner." }, - "id": 1151, + "id": 1148, "implemented": true, "kind": "function", "modifiers": [], @@ -2361,18 +2361,18 @@ "nameLocation": "1629:11:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1139, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "1640:2:5" }, "returnParameters": { - "id": 1140, + "id": 1137, "nodeType": "ParameterList", "parameters": [], "src": "1665:0:5" }, - "scope": 1214, + "scope": 1211, "src": "1620:130:5", "stateMutability": "view", "virtual": true, @@ -2380,7 +2380,7 @@ }, { "body": { - "id": 1164, + "id": 1161, "nodeType": "Block", "src": "2139:47:5", "statements": [ @@ -2391,7 +2391,7 @@ "arguments": [ { "hexValue": "30", - "id": 1160, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, @@ -2413,7 +2413,7 @@ "typeString": "int_const 0" } ], - "id": 1159, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, @@ -2425,14 +2425,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1158, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2168:7:5", "typeDescriptions": {} } }, - "id": 1161, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": true, @@ -2456,18 +2456,18 @@ "typeString": "address" } ], - "id": 1157, + "id": 1154, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2149:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1162, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -2483,34 +2483,34 @@ "typeString": "tuple()" } }, - "id": 1163, + "id": 1160, "nodeType": "ExpressionStatement", "src": "2149:30:5" } ] }, "documentation": { - "id": 1152, + "id": 1149, "nodeType": "StructuredDocumentation", "src": "1756:324:5", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1165, + "id": 1162, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1155, + "id": 1152, "kind": "modifierInvocation", "modifierName": { - "id": 1154, + "id": 1151, "name": "onlyOwner", "nameLocations": [ "2129:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2129:9:5" }, "nodeType": "ModifierInvocation", @@ -2521,18 +2521,18 @@ "nameLocation": "2094:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1153, + "id": 1150, "nodeType": "ParameterList", "parameters": [], "src": "2111:2:5" }, "returnParameters": { - "id": 1156, + "id": 1153, "nodeType": "ParameterList", "parameters": [], "src": "2139:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2085:101:5", "stateMutability": "nonpayable", "virtual": true, @@ -2540,7 +2540,7 @@ }, { "body": { - "id": 1187, + "id": 1184, "nodeType": "Block", "src": "2405:128:5", "statements": [ @@ -2552,17 +2552,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1179, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1174, + "id": 1171, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2423:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2575,7 +2575,7 @@ "arguments": [ { "hexValue": "30", - "id": 1177, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, @@ -2597,7 +2597,7 @@ "typeString": "int_const 0" } ], - "id": 1176, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": true, @@ -2609,14 +2609,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1175, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", "src": "2435:7:5", "typeDescriptions": {} } }, - "id": 1178, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, @@ -2640,7 +2640,7 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1180, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, @@ -2666,7 +2666,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1173, + "id": 1170, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2680,7 +2680,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1181, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -2696,7 +2696,7 @@ "typeString": "tuple()" } }, - "id": 1182, + "id": 1179, "nodeType": "ExpressionStatement", "src": "2415:73:5" }, @@ -2704,11 +2704,11 @@ "expression": { "arguments": [ { - "id": 1184, + "id": 1181, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, + "referencedDeclaration": 1165, "src": "2517:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2723,18 +2723,18 @@ "typeString": "address" } ], - "id": 1183, + "id": 1180, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1208, + "referencedDeclaration": 1205, "src": "2498:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1185, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -2750,34 +2750,34 @@ "typeString": "tuple()" } }, - "id": 1186, + "id": 1183, "nodeType": "ExpressionStatement", "src": "2498:28:5" } ] }, "documentation": { - "id": 1166, + "id": 1163, "nodeType": "StructuredDocumentation", "src": "2192:138:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1188, + "id": 1185, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1171, + "id": 1168, "kind": "modifierInvocation", "modifierName": { - "id": 1170, + "id": 1167, "name": "onlyOwner", "nameLocations": [ "2395:9:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1128, + "referencedDeclaration": 1125, "src": "2395:9:5" }, "nodeType": "ModifierInvocation", @@ -2788,17 +2788,17 @@ "nameLocation": "2344:17:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1169, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 1165, "mutability": "mutable", "name": "newOwner", "nameLocation": "2370:8:5", "nodeType": "VariableDeclaration", - "scope": 1188, + "scope": 1185, "src": "2362:16:5", "stateVariable": false, "storageLocation": "default", @@ -2807,7 +2807,7 @@ "typeString": "address" }, "typeName": { - "id": 1167, + "id": 1164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:5", @@ -2823,12 +2823,12 @@ "src": "2361:18:5" }, "returnParameters": { - "id": 1172, + "id": 1169, "nodeType": "ParameterList", "parameters": [], "src": "2405:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2335:198:5", "stateMutability": "nonpayable", "virtual": true, @@ -2836,23 +2836,23 @@ }, { "body": { - "id": 1207, + "id": 1204, "nodeType": "Block", "src": "2750:124:5", "statements": [ { "assignments": [ - 1195 + 1192 ], "declarations": [ { "constant": false, - "id": 1195, + "id": 1192, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2768:8:5", "nodeType": "VariableDeclaration", - "scope": 1207, + "scope": 1204, "src": "2760:16:5", "stateVariable": false, "storageLocation": "default", @@ -2861,7 +2861,7 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "2760:7:5", @@ -2874,13 +2874,13 @@ "visibility": "internal" } ], - "id": 1197, + "id": 1194, "initialValue": { - "id": 1196, + "id": 1193, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2779:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2892,17 +2892,17 @@ }, { "expression": { - "id": 1200, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1198, + "id": 1195, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1090, "src": "2795:6:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2912,11 +2912,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1199, + "id": 1196, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2804:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2929,7 +2929,7 @@ "typeString": "address" } }, - "id": 1201, + "id": 1198, "nodeType": "ExpressionStatement", "src": "2795:17:5" }, @@ -2937,11 +2937,11 @@ "eventCall": { "arguments": [ { - "id": 1203, + "id": 1200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, + "referencedDeclaration": 1192, "src": "2848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2949,11 +2949,11 @@ } }, { - "id": 1204, + "id": 1201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1188, "src": "2858:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2972,18 +2972,18 @@ "typeString": "address" } ], - "id": 1202, + "id": 1199, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1096, "src": "2827:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1205, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -2999,19 +2999,19 @@ "typeString": "tuple()" } }, - "id": 1206, + "id": 1203, "nodeType": "EmitStatement", "src": "2822:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1186, "nodeType": "StructuredDocumentation", "src": "2539:143:5", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1208, + "id": 1205, "implemented": true, "kind": "function", "modifiers": [], @@ -3019,17 +3019,17 @@ "nameLocation": "2696:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1192, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1188, "mutability": "mutable", "name": "newOwner", "nameLocation": "2723:8:5", "nodeType": "VariableDeclaration", - "scope": 1208, + "scope": 1205, "src": "2715:16:5", "stateVariable": false, "storageLocation": "default", @@ -3038,7 +3038,7 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1187, "name": "address", "nodeType": "ElementaryTypeName", "src": "2715:7:5", @@ -3054,12 +3054,12 @@ "src": "2714:18:5" }, "returnParameters": { - "id": 1193, + "id": 1190, "nodeType": "ParameterList", "parameters": [], "src": "2750:0:5" }, - "scope": 1214, + "scope": 1211, "src": "2687:187:5", "stateMutability": "nonpayable", "virtual": true, @@ -3068,17 +3068,17 @@ { "constant": false, "documentation": { - "id": 1209, + "id": 1206, "nodeType": "StructuredDocumentation", "src": "2880:254:5", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1213, + "id": 1210, "mutability": "mutable", "name": "__gap", "nameLocation": "3159:5:5", "nodeType": "VariableDeclaration", - "scope": 1214, + "scope": 1211, "src": "3139:25:5", "stateVariable": true, "storageLocation": "default", @@ -3088,7 +3088,7 @@ }, "typeName": { "baseType": { - "id": 1210, + "id": 1207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3139:7:5", @@ -3097,10 +3097,10 @@ "typeString": "uint256" } }, - "id": 1212, + "id": 1209, "length": { "hexValue": "3439", - "id": 1211, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -3124,7 +3124,7 @@ "visibility": "private" } ], - "scope": 1215, + "scope": 1212, "src": "729:2438:5", "usedErrors": [] } @@ -3137,5 +3137,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.551Z" + "updatedAt": "2024-06-27T12:24:25.262Z" } \ No newline at end of file diff --git a/build/contracts/PausableUpgradeable.json b/build/contracts/PausableUpgradeable.json index 9fa7b4f..2ddae33 100644 --- a/build/contracts/PausableUpgradeable.json +++ b/build/contracts/PausableUpgradeable.json @@ -64,21 +64,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 1512, + "id": 1509, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1385, + "id": 1382, "literals": [ "solidity", "^", @@ -91,11 +91,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1386, + "id": 1383, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1893, + "scope": 1509, + "sourceUnit": 1890, "src": "130:41:7", "symbolAliases": [], "unitAlias": "" @@ -103,20 +103,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1388, + "id": 1385, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1384, + "scope": 1509, + "sourceUnit": 1381, "src": "172:63:7", "symbolAliases": [ { "foreign": { - "id": 1387, + "id": 1384, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "180:13:7", "typeDescriptions": {} }, @@ -130,31 +130,31 @@ "baseContracts": [ { "baseName": { - "id": 1390, + "id": 1387, "name": "Initializable", "nameLocations": [ "718:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "718:13:7" }, - "id": 1391, + "id": 1388, "nodeType": "InheritanceSpecifier", "src": "718:13:7" }, { "baseName": { - "id": 1392, + "id": 1389, "name": "ContextUpgradeable", "nameLocations": [ "733:18:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "733:18:7" }, - "id": 1393, + "id": 1390, "nodeType": "InheritanceSpecifier", "src": "733:18:7" } @@ -163,17 +163,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1389, + "id": 1386, "nodeType": "StructuredDocumentation", "src": "237:439:7", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1511, + "id": 1508, "linearizedBaseContracts": [ - 1511, - 1892, - 1383 + 1508, + 1889, + 1380 ], "name": "PausableUpgradeable", "nameLocation": "695:19:7", @@ -182,29 +182,29 @@ { "anonymous": false, "documentation": { - "id": 1394, + "id": 1391, "nodeType": "StructuredDocumentation", "src": "758:73:7", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1398, + "id": 1395, "name": "Paused", "nameLocation": "842:6:7", "nodeType": "EventDefinition", "parameters": { - "id": 1397, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1393, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "857:7:7", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1395, "src": "849:15:7", "stateVariable": false, "storageLocation": "default", @@ -213,7 +213,7 @@ "typeString": "address" }, "typeName": { - "id": 1395, + "id": 1392, "name": "address", "nodeType": "ElementaryTypeName", "src": "849:7:7", @@ -233,29 +233,29 @@ { "anonymous": false, "documentation": { - "id": 1399, + "id": 1396, "nodeType": "StructuredDocumentation", "src": "872:70:7", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1403, + "id": 1400, "name": "Unpaused", "nameLocation": "953:8:7", "nodeType": "EventDefinition", "parameters": { - "id": 1402, + "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1401, + "id": 1398, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "970:7:7", "nodeType": "VariableDeclaration", - "scope": 1403, + "scope": 1400, "src": "962:15:7", "stateVariable": false, "storageLocation": "default", @@ -264,7 +264,7 @@ "typeString": "address" }, "typeName": { - "id": 1400, + "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "962:7:7", @@ -283,12 +283,12 @@ }, { "constant": false, - "id": 1405, + "id": 1402, "mutability": "mutable", "name": "_paused", "nameLocation": "998:7:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "985:20:7", "stateVariable": true, "storageLocation": "default", @@ -297,7 +297,7 @@ "typeString": "bool" }, "typeName": { - "id": 1404, + "id": 1401, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:7", @@ -310,7 +310,7 @@ }, { "body": { - "id": 1414, + "id": 1411, "nodeType": "Block", "src": "1137:44:7", "statements": [ @@ -319,18 +319,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1411, + "id": 1408, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, + "referencedDeclaration": 1422, "src": "1147:25:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1412, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": false, @@ -346,33 +346,33 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1410, "nodeType": "ExpressionStatement", "src": "1147:27:7" } ] }, "documentation": { - "id": 1406, + "id": 1403, "nodeType": "StructuredDocumentation", "src": "1012:67:7", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1415, + "id": 1412, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1409, + "id": 1406, "kind": "modifierInvocation", "modifierName": { - "id": 1408, + "id": 1405, "name": "onlyInitializing", "nameLocations": [ "1120:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1120:16:7" }, "nodeType": "ModifierInvocation", @@ -383,18 +383,18 @@ "nameLocation": "1093:15:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1404, "nodeType": "ParameterList", "parameters": [], "src": "1108:2:7" }, "returnParameters": { - "id": 1410, + "id": 1407, "nodeType": "ParameterList", "parameters": [], "src": "1137:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1084:97:7", "stateMutability": "nonpayable", "virtual": false, @@ -402,23 +402,23 @@ }, { "body": { - "id": 1424, + "id": 1421, "nodeType": "Block", "src": "1250:32:7", "statements": [ { "expression": { - "id": 1422, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1420, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1260:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -429,7 +429,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1421, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, @@ -449,27 +449,27 @@ "typeString": "bool" } }, - "id": 1423, + "id": 1420, "nodeType": "ExpressionStatement", "src": "1260:15:7" } ] }, - "id": 1425, + "id": 1422, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1418, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1417, + "id": 1414, "name": "onlyInitializing", "nameLocations": [ "1233:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1233:16:7" }, "nodeType": "ModifierInvocation", @@ -480,18 +480,18 @@ "nameLocation": "1196:25:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1416, + "id": 1413, "nodeType": "ParameterList", "parameters": [], "src": "1221:2:7" }, "returnParameters": { - "id": 1419, + "id": 1416, "nodeType": "ParameterList", "parameters": [], "src": "1250:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1187:95:7", "stateMutability": "nonpayable", "virtual": false, @@ -499,7 +499,7 @@ }, { "body": { - "id": 1432, + "id": 1429, "nodeType": "Block", "src": "1493:47:7", "statements": [ @@ -508,18 +508,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1428, + "id": 1425, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1462, + "referencedDeclaration": 1459, "src": "1503:17:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1429, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,29 +535,29 @@ "typeString": "tuple()" } }, - "id": 1430, + "id": 1427, "nodeType": "ExpressionStatement", "src": "1503:19:7" }, { - "id": 1431, + "id": 1428, "nodeType": "PlaceholderStatement", "src": "1532:1:7" } ] }, "documentation": { - "id": 1426, + "id": 1423, "nodeType": "StructuredDocumentation", "src": "1288:175:7", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1433, + "id": 1430, "name": "whenNotPaused", "nameLocation": "1477:13:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1427, + "id": 1424, "nodeType": "ParameterList", "parameters": [], "src": "1490:2:7" @@ -568,7 +568,7 @@ }, { "body": { - "id": 1440, + "id": 1437, "nodeType": "Block", "src": "1740:44:7", "statements": [ @@ -577,18 +577,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1436, + "id": 1433, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1470, "src": "1750:14:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1437, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, @@ -604,29 +604,29 @@ "typeString": "tuple()" } }, - "id": 1438, + "id": 1435, "nodeType": "ExpressionStatement", "src": "1750:16:7" }, { - "id": 1439, + "id": 1436, "nodeType": "PlaceholderStatement", "src": "1776:1:7" } ] }, "documentation": { - "id": 1434, + "id": 1431, "nodeType": "StructuredDocumentation", "src": "1546:167:7", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1441, + "id": 1438, "name": "whenPaused", "nameLocation": "1727:10:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1432, "nodeType": "ParameterList", "parameters": [], "src": "1737:2:7" @@ -637,38 +637,38 @@ }, { "body": { - "id": 1449, + "id": 1446, "nodeType": "Block", "src": "1932:31:7", "statements": [ { "expression": { - "id": 1447, + "id": 1444, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1949:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1446, - "id": 1448, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", "src": "1942:14:7" } ] }, "documentation": { - "id": 1442, + "id": 1439, "nodeType": "StructuredDocumentation", "src": "1790:84:7", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1450, + "id": 1447, "implemented": true, "kind": "function", "modifiers": [], @@ -676,23 +676,23 @@ "nameLocation": "1888:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1443, + "id": 1440, "nodeType": "ParameterList", "parameters": [], "src": "1894:2:7" }, "returnParameters": { - "id": 1446, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1447, "src": "1926:4:7", "stateVariable": false, "storageLocation": "default", @@ -701,7 +701,7 @@ "typeString": "bool" }, "typeName": { - "id": 1444, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1926:4:7", @@ -715,7 +715,7 @@ ], "src": "1925:6:7" }, - "scope": 1511, + "scope": 1508, "src": "1879:84:7", "stateMutability": "view", "virtual": true, @@ -723,7 +723,7 @@ }, { "body": { - "id": 1461, + "id": 1458, "nodeType": "Block", "src": "2082:55:7", "statements": [ @@ -731,7 +731,7 @@ "expression": { "arguments": [ { - "id": 1457, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, @@ -744,18 +744,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1455, + "id": 1452, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2101:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1456, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -778,7 +778,7 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1458, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -804,7 +804,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1454, + "id": 1451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -818,7 +818,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1459, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -834,19 +834,19 @@ "typeString": "tuple()" } }, - "id": 1460, + "id": 1457, "nodeType": "ExpressionStatement", "src": "2092:38:7" } ] }, "documentation": { - "id": 1451, + "id": 1448, "nodeType": "StructuredDocumentation", "src": "1969:57:7", "text": " @dev Throws if the contract is paused." }, - "id": 1462, + "id": 1459, "implemented": true, "kind": "function", "modifiers": [], @@ -854,18 +854,18 @@ "nameLocation": "2040:17:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1449, "nodeType": "ParameterList", "parameters": [], "src": "2057:2:7" }, "returnParameters": { - "id": 1453, + "id": 1450, "nodeType": "ParameterList", "parameters": [], "src": "2082:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2031:106:7", "stateMutability": "view", "virtual": true, @@ -873,7 +873,7 @@ }, { "body": { - "id": 1472, + "id": 1469, "nodeType": "Block", "src": "2257:58:7", "statements": [ @@ -884,18 +884,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1467, + "id": 1464, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2275:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1468, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -913,7 +913,7 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1469, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -939,7 +939,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1466, + "id": 1463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -953,7 +953,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1470, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -969,19 +969,19 @@ "typeString": "tuple()" } }, - "id": 1471, + "id": 1468, "nodeType": "ExpressionStatement", "src": "2267:41:7" } ] }, "documentation": { - "id": 1463, + "id": 1460, "nodeType": "StructuredDocumentation", "src": "2143:61:7", "text": " @dev Throws if the contract is not paused." }, - "id": 1473, + "id": 1470, "implemented": true, "kind": "function", "modifiers": [], @@ -989,18 +989,18 @@ "nameLocation": "2218:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1464, + "id": 1461, "nodeType": "ParameterList", "parameters": [], "src": "2232:2:7" }, "returnParameters": { - "id": 1465, + "id": 1462, "nodeType": "ParameterList", "parameters": [], "src": "2257:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2209:106:7", "stateMutability": "view", "virtual": true, @@ -1008,23 +1008,23 @@ }, { "body": { - "id": 1488, + "id": 1485, "nodeType": "Block", "src": "2499:66:7", "statements": [ { "expression": { - "id": 1481, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1479, + "id": 1476, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2509:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1035,7 +1035,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1480, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, @@ -1055,7 +1055,7 @@ "typeString": "bool" } }, - "id": 1482, + "id": 1479, "nodeType": "ExpressionStatement", "src": "2509:14:7" }, @@ -1066,18 +1066,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1484, + "id": 1481, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2545:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1485, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -1101,18 +1101,18 @@ "typeString": "address" } ], - "id": 1483, + "id": 1480, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1398, + "referencedDeclaration": 1395, "src": "2538:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1486, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -1128,33 +1128,33 @@ "typeString": "tuple()" } }, - "id": 1487, + "id": 1484, "nodeType": "EmitStatement", "src": "2533:25:7" } ] }, "documentation": { - "id": 1474, + "id": 1471, "nodeType": "StructuredDocumentation", "src": "2321:124:7", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1489, + "id": 1486, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1477, + "id": 1474, "kind": "modifierInvocation", "modifierName": { - "id": 1476, + "id": 1473, "name": "whenNotPaused", "nameLocations": [ "2485:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "2485:13:7" }, "nodeType": "ModifierInvocation", @@ -1165,18 +1165,18 @@ "nameLocation": "2459:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1475, + "id": 1472, "nodeType": "ParameterList", "parameters": [], "src": "2465:2:7" }, "returnParameters": { - "id": 1478, + "id": 1475, "nodeType": "ParameterList", "parameters": [], "src": "2499:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2450:115:7", "stateMutability": "nonpayable", "virtual": true, @@ -1184,23 +1184,23 @@ }, { "body": { - "id": 1504, + "id": 1501, "nodeType": "Block", "src": "2745:69:7", "statements": [ { "expression": { - "id": 1497, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1495, + "id": 1492, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2755:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1211,7 +1211,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1496, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, @@ -1231,7 +1231,7 @@ "typeString": "bool" } }, - "id": 1498, + "id": 1495, "nodeType": "ExpressionStatement", "src": "2755:15:7" }, @@ -1242,18 +1242,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1500, + "id": 1497, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2794:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1501, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,18 +1277,18 @@ "typeString": "address" } ], - "id": 1499, + "id": 1496, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, + "referencedDeclaration": 1400, "src": "2785:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1502, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,33 +1304,33 @@ "typeString": "tuple()" } }, - "id": 1503, + "id": 1500, "nodeType": "EmitStatement", "src": "2780:27:7" } ] }, "documentation": { - "id": 1490, + "id": 1487, "nodeType": "StructuredDocumentation", "src": "2571:121:7", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1505, + "id": 1502, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1493, + "id": 1490, "kind": "modifierInvocation", "modifierName": { - "id": 1492, + "id": 1489, "name": "whenPaused", "nameLocations": [ "2734:10:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1441, + "referencedDeclaration": 1438, "src": "2734:10:7" }, "nodeType": "ModifierInvocation", @@ -1341,18 +1341,18 @@ "nameLocation": "2706:8:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1491, + "id": 1488, "nodeType": "ParameterList", "parameters": [], "src": "2714:2:7" }, "returnParameters": { - "id": 1494, + "id": 1491, "nodeType": "ParameterList", "parameters": [], "src": "2745:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2697:117:7", "stateMutability": "nonpayable", "virtual": true, @@ -1361,17 +1361,17 @@ { "constant": false, "documentation": { - "id": 1506, + "id": 1503, "nodeType": "StructuredDocumentation", "src": "2820:254:7", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1510, + "id": 1507, "mutability": "mutable", "name": "__gap", "nameLocation": "3099:5:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "3079:25:7", "stateVariable": true, "storageLocation": "default", @@ -1381,7 +1381,7 @@ }, "typeName": { "baseType": { - "id": 1507, + "id": 1504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3079:7:7", @@ -1390,10 +1390,10 @@ "typeString": "uint256" } }, - "id": 1509, + "id": 1506, "length": { "hexValue": "3439", - "id": 1508, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, @@ -1417,7 +1417,7 @@ "visibility": "private" } ], - "scope": 1512, + "scope": 1509, "src": "677:2430:7", "usedErrors": [] } @@ -1428,21 +1428,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1892 + 1889 ], "Initializable": [ - 1383 + 1380 ], "PausableUpgradeable": [ - 1511 + 1508 ] }, - "id": 1512, + "id": 1509, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1385, + "id": 1382, "literals": [ "solidity", "^", @@ -1455,11 +1455,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1386, + "id": 1383, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1893, + "scope": 1509, + "sourceUnit": 1890, "src": "130:41:7", "symbolAliases": [], "unitAlias": "" @@ -1467,20 +1467,20 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1388, + "id": 1385, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1512, - "sourceUnit": 1384, + "scope": 1509, + "sourceUnit": 1381, "src": "172:63:7", "symbolAliases": [ { "foreign": { - "id": 1387, + "id": 1384, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "180:13:7", "typeDescriptions": {} }, @@ -1494,31 +1494,31 @@ "baseContracts": [ { "baseName": { - "id": 1390, + "id": 1387, "name": "Initializable", "nameLocations": [ "718:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1383, + "referencedDeclaration": 1380, "src": "718:13:7" }, - "id": 1391, + "id": 1388, "nodeType": "InheritanceSpecifier", "src": "718:13:7" }, { "baseName": { - "id": 1392, + "id": 1389, "name": "ContextUpgradeable", "nameLocations": [ "733:18:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1892, + "referencedDeclaration": 1889, "src": "733:18:7" }, - "id": 1393, + "id": 1390, "nodeType": "InheritanceSpecifier", "src": "733:18:7" } @@ -1527,17 +1527,17 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1389, + "id": 1386, "nodeType": "StructuredDocumentation", "src": "237:439:7", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1511, + "id": 1508, "linearizedBaseContracts": [ - 1511, - 1892, - 1383 + 1508, + 1889, + 1380 ], "name": "PausableUpgradeable", "nameLocation": "695:19:7", @@ -1546,29 +1546,29 @@ { "anonymous": false, "documentation": { - "id": 1394, + "id": 1391, "nodeType": "StructuredDocumentation", "src": "758:73:7", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1398, + "id": 1395, "name": "Paused", "nameLocation": "842:6:7", "nodeType": "EventDefinition", "parameters": { - "id": 1397, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1393, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "857:7:7", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1395, "src": "849:15:7", "stateVariable": false, "storageLocation": "default", @@ -1577,7 +1577,7 @@ "typeString": "address" }, "typeName": { - "id": 1395, + "id": 1392, "name": "address", "nodeType": "ElementaryTypeName", "src": "849:7:7", @@ -1597,29 +1597,29 @@ { "anonymous": false, "documentation": { - "id": 1399, + "id": 1396, "nodeType": "StructuredDocumentation", "src": "872:70:7", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1403, + "id": 1400, "name": "Unpaused", "nameLocation": "953:8:7", "nodeType": "EventDefinition", "parameters": { - "id": 1402, + "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1401, + "id": 1398, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "970:7:7", "nodeType": "VariableDeclaration", - "scope": 1403, + "scope": 1400, "src": "962:15:7", "stateVariable": false, "storageLocation": "default", @@ -1628,7 +1628,7 @@ "typeString": "address" }, "typeName": { - "id": 1400, + "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "962:7:7", @@ -1647,12 +1647,12 @@ }, { "constant": false, - "id": 1405, + "id": 1402, "mutability": "mutable", "name": "_paused", "nameLocation": "998:7:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "985:20:7", "stateVariable": true, "storageLocation": "default", @@ -1661,7 +1661,7 @@ "typeString": "bool" }, "typeName": { - "id": 1404, + "id": 1401, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:7", @@ -1674,7 +1674,7 @@ }, { "body": { - "id": 1414, + "id": 1411, "nodeType": "Block", "src": "1137:44:7", "statements": [ @@ -1683,18 +1683,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1411, + "id": 1408, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, + "referencedDeclaration": 1422, "src": "1147:25:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1412, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": false, @@ -1710,33 +1710,33 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1410, "nodeType": "ExpressionStatement", "src": "1147:27:7" } ] }, "documentation": { - "id": 1406, + "id": 1403, "nodeType": "StructuredDocumentation", "src": "1012:67:7", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1415, + "id": 1412, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1409, + "id": 1406, "kind": "modifierInvocation", "modifierName": { - "id": 1408, + "id": 1405, "name": "onlyInitializing", "nameLocations": [ "1120:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1120:16:7" }, "nodeType": "ModifierInvocation", @@ -1747,18 +1747,18 @@ "nameLocation": "1093:15:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1407, + "id": 1404, "nodeType": "ParameterList", "parameters": [], "src": "1108:2:7" }, "returnParameters": { - "id": 1410, + "id": 1407, "nodeType": "ParameterList", "parameters": [], "src": "1137:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1084:97:7", "stateMutability": "nonpayable", "virtual": false, @@ -1766,23 +1766,23 @@ }, { "body": { - "id": 1424, + "id": 1421, "nodeType": "Block", "src": "1250:32:7", "statements": [ { "expression": { - "id": 1422, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1420, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1260:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1793,7 +1793,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1421, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, @@ -1813,27 +1813,27 @@ "typeString": "bool" } }, - "id": 1423, + "id": 1420, "nodeType": "ExpressionStatement", "src": "1260:15:7" } ] }, - "id": 1425, + "id": 1422, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1418, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1417, + "id": 1414, "name": "onlyInitializing", "nameLocations": [ "1233:16:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1328, + "referencedDeclaration": 1325, "src": "1233:16:7" }, "nodeType": "ModifierInvocation", @@ -1844,18 +1844,18 @@ "nameLocation": "1196:25:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1416, + "id": 1413, "nodeType": "ParameterList", "parameters": [], "src": "1221:2:7" }, "returnParameters": { - "id": 1419, + "id": 1416, "nodeType": "ParameterList", "parameters": [], "src": "1250:0:7" }, - "scope": 1511, + "scope": 1508, "src": "1187:95:7", "stateMutability": "nonpayable", "virtual": false, @@ -1863,7 +1863,7 @@ }, { "body": { - "id": 1432, + "id": 1429, "nodeType": "Block", "src": "1493:47:7", "statements": [ @@ -1872,18 +1872,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1428, + "id": 1425, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1462, + "referencedDeclaration": 1459, "src": "1503:17:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1429, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, @@ -1899,29 +1899,29 @@ "typeString": "tuple()" } }, - "id": 1430, + "id": 1427, "nodeType": "ExpressionStatement", "src": "1503:19:7" }, { - "id": 1431, + "id": 1428, "nodeType": "PlaceholderStatement", "src": "1532:1:7" } ] }, "documentation": { - "id": 1426, + "id": 1423, "nodeType": "StructuredDocumentation", "src": "1288:175:7", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1433, + "id": 1430, "name": "whenNotPaused", "nameLocation": "1477:13:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1427, + "id": 1424, "nodeType": "ParameterList", "parameters": [], "src": "1490:2:7" @@ -1932,7 +1932,7 @@ }, { "body": { - "id": 1440, + "id": 1437, "nodeType": "Block", "src": "1740:44:7", "statements": [ @@ -1941,18 +1941,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1436, + "id": 1433, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1470, "src": "1750:14:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1437, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, @@ -1968,29 +1968,29 @@ "typeString": "tuple()" } }, - "id": 1438, + "id": 1435, "nodeType": "ExpressionStatement", "src": "1750:16:7" }, { - "id": 1439, + "id": 1436, "nodeType": "PlaceholderStatement", "src": "1776:1:7" } ] }, "documentation": { - "id": 1434, + "id": 1431, "nodeType": "StructuredDocumentation", "src": "1546:167:7", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1441, + "id": 1438, "name": "whenPaused", "nameLocation": "1727:10:7", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1432, "nodeType": "ParameterList", "parameters": [], "src": "1737:2:7" @@ -2001,38 +2001,38 @@ }, { "body": { - "id": 1449, + "id": 1446, "nodeType": "Block", "src": "1932:31:7", "statements": [ { "expression": { - "id": 1447, + "id": 1444, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "1949:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1446, - "id": 1448, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", "src": "1942:14:7" } ] }, "documentation": { - "id": 1442, + "id": 1439, "nodeType": "StructuredDocumentation", "src": "1790:84:7", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1450, + "id": 1447, "implemented": true, "kind": "function", "modifiers": [], @@ -2040,23 +2040,23 @@ "nameLocation": "1888:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1443, + "id": 1440, "nodeType": "ParameterList", "parameters": [], "src": "1894:2:7" }, "returnParameters": { - "id": 1446, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1447, "src": "1926:4:7", "stateVariable": false, "storageLocation": "default", @@ -2065,7 +2065,7 @@ "typeString": "bool" }, "typeName": { - "id": 1444, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1926:4:7", @@ -2079,7 +2079,7 @@ ], "src": "1925:6:7" }, - "scope": 1511, + "scope": 1508, "src": "1879:84:7", "stateMutability": "view", "virtual": true, @@ -2087,7 +2087,7 @@ }, { "body": { - "id": 1461, + "id": 1458, "nodeType": "Block", "src": "2082:55:7", "statements": [ @@ -2095,7 +2095,7 @@ "expression": { "arguments": [ { - "id": 1457, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, @@ -2108,18 +2108,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1455, + "id": 1452, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2101:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1456, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -2142,7 +2142,7 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1458, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -2168,7 +2168,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1454, + "id": 1451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2182,7 +2182,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1459, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -2198,19 +2198,19 @@ "typeString": "tuple()" } }, - "id": 1460, + "id": 1457, "nodeType": "ExpressionStatement", "src": "2092:38:7" } ] }, "documentation": { - "id": 1451, + "id": 1448, "nodeType": "StructuredDocumentation", "src": "1969:57:7", "text": " @dev Throws if the contract is paused." }, - "id": 1462, + "id": 1459, "implemented": true, "kind": "function", "modifiers": [], @@ -2218,18 +2218,18 @@ "nameLocation": "2040:17:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1449, "nodeType": "ParameterList", "parameters": [], "src": "2057:2:7" }, "returnParameters": { - "id": 1453, + "id": 1450, "nodeType": "ParameterList", "parameters": [], "src": "2082:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2031:106:7", "stateMutability": "view", "virtual": true, @@ -2237,7 +2237,7 @@ }, { "body": { - "id": 1472, + "id": 1469, "nodeType": "Block", "src": "2257:58:7", "statements": [ @@ -2248,18 +2248,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1467, + "id": 1464, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1447, "src": "2275:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1468, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -2277,7 +2277,7 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1469, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -2303,7 +2303,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1466, + "id": 1463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2317,7 +2317,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1470, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -2333,19 +2333,19 @@ "typeString": "tuple()" } }, - "id": 1471, + "id": 1468, "nodeType": "ExpressionStatement", "src": "2267:41:7" } ] }, "documentation": { - "id": 1463, + "id": 1460, "nodeType": "StructuredDocumentation", "src": "2143:61:7", "text": " @dev Throws if the contract is not paused." }, - "id": 1473, + "id": 1470, "implemented": true, "kind": "function", "modifiers": [], @@ -2353,18 +2353,18 @@ "nameLocation": "2218:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1464, + "id": 1461, "nodeType": "ParameterList", "parameters": [], "src": "2232:2:7" }, "returnParameters": { - "id": 1465, + "id": 1462, "nodeType": "ParameterList", "parameters": [], "src": "2257:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2209:106:7", "stateMutability": "view", "virtual": true, @@ -2372,23 +2372,23 @@ }, { "body": { - "id": 1488, + "id": 1485, "nodeType": "Block", "src": "2499:66:7", "statements": [ { "expression": { - "id": 1481, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1479, + "id": 1476, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2509:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2399,7 +2399,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1480, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, @@ -2419,7 +2419,7 @@ "typeString": "bool" } }, - "id": 1482, + "id": 1479, "nodeType": "ExpressionStatement", "src": "2509:14:7" }, @@ -2430,18 +2430,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1484, + "id": 1481, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2545:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1485, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -2465,18 +2465,18 @@ "typeString": "address" } ], - "id": 1483, + "id": 1480, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1398, + "referencedDeclaration": 1395, "src": "2538:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1486, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -2492,33 +2492,33 @@ "typeString": "tuple()" } }, - "id": 1487, + "id": 1484, "nodeType": "EmitStatement", "src": "2533:25:7" } ] }, "documentation": { - "id": 1474, + "id": 1471, "nodeType": "StructuredDocumentation", "src": "2321:124:7", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1489, + "id": 1486, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1477, + "id": 1474, "kind": "modifierInvocation", "modifierName": { - "id": 1476, + "id": 1473, "name": "whenNotPaused", "nameLocations": [ "2485:13:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1433, + "referencedDeclaration": 1430, "src": "2485:13:7" }, "nodeType": "ModifierInvocation", @@ -2529,18 +2529,18 @@ "nameLocation": "2459:6:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1475, + "id": 1472, "nodeType": "ParameterList", "parameters": [], "src": "2465:2:7" }, "returnParameters": { - "id": 1478, + "id": 1475, "nodeType": "ParameterList", "parameters": [], "src": "2499:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2450:115:7", "stateMutability": "nonpayable", "virtual": true, @@ -2548,23 +2548,23 @@ }, { "body": { - "id": 1504, + "id": 1501, "nodeType": "Block", "src": "2745:69:7", "statements": [ { "expression": { - "id": 1497, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1495, + "id": 1492, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1405, + "referencedDeclaration": 1402, "src": "2755:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2575,7 +2575,7 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1496, + "id": 1493, "isConstant": false, "isLValue": false, "isPure": true, @@ -2595,7 +2595,7 @@ "typeString": "bool" } }, - "id": 1498, + "id": 1495, "nodeType": "ExpressionStatement", "src": "2755:15:7" }, @@ -2606,18 +2606,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1500, + "id": 1497, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, + "referencedDeclaration": 1866, "src": "2794:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1501, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": false, @@ -2641,18 +2641,18 @@ "typeString": "address" } ], - "id": 1499, + "id": 1496, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, + "referencedDeclaration": 1400, "src": "2785:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1502, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -2668,33 +2668,33 @@ "typeString": "tuple()" } }, - "id": 1503, + "id": 1500, "nodeType": "EmitStatement", "src": "2780:27:7" } ] }, "documentation": { - "id": 1490, + "id": 1487, "nodeType": "StructuredDocumentation", "src": "2571:121:7", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1505, + "id": 1502, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1493, + "id": 1490, "kind": "modifierInvocation", "modifierName": { - "id": 1492, + "id": 1489, "name": "whenPaused", "nameLocations": [ "2734:10:7" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1441, + "referencedDeclaration": 1438, "src": "2734:10:7" }, "nodeType": "ModifierInvocation", @@ -2705,18 +2705,18 @@ "nameLocation": "2706:8:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1491, + "id": 1488, "nodeType": "ParameterList", "parameters": [], "src": "2714:2:7" }, "returnParameters": { - "id": 1494, + "id": 1491, "nodeType": "ParameterList", "parameters": [], "src": "2745:0:7" }, - "scope": 1511, + "scope": 1508, "src": "2697:117:7", "stateMutability": "nonpayable", "virtual": true, @@ -2725,17 +2725,17 @@ { "constant": false, "documentation": { - "id": 1506, + "id": 1503, "nodeType": "StructuredDocumentation", "src": "2820:254:7", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1510, + "id": 1507, "mutability": "mutable", "name": "__gap", "nameLocation": "3099:5:7", "nodeType": "VariableDeclaration", - "scope": 1511, + "scope": 1508, "src": "3079:25:7", "stateVariable": true, "storageLocation": "default", @@ -2745,7 +2745,7 @@ }, "typeName": { "baseType": { - "id": 1507, + "id": 1504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3079:7:7", @@ -2754,10 +2754,10 @@ "typeString": "uint256" } }, - "id": 1509, + "id": 1506, "length": { "hexValue": "3439", - "id": 1508, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, @@ -2781,7 +2781,7 @@ "visibility": "private" } ], - "scope": 1512, + "scope": 1509, "src": "677:2430:7", "usedErrors": [] } @@ -2794,5 +2794,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-20T09:33:52.553Z" + "updatedAt": "2024-06-27T12:24:25.261Z" } \ No newline at end of file From b892b367d9b477ebd4e0b0580351cfdd84c3c8b5 Mon Sep 17 00:00:00 2001 From: Chibuotu Amadi Date: Thu, 4 Jul 2024 16:05:58 +0100 Subject: [PATCH 15/25] chore: adjust readme contract tables --- README.md | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3940916..4524ad2 100644 --- a/README.md +++ b/README.md @@ -98,16 +98,18 @@ npx hardhat run scripts/tron/updateProtocolFee.ts - Tron Shasta + Tron Shasta Gateway Proxy TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ - Gateway Admin - TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR Gateway Implementation TSGr6Ri7NZ7FxN1gCiWkn8cPA2qtF6ctdF + + Gateway Admin + TNcogTDoWxpuv77WtsiNTRhqjRbZmmDLTR + @@ -180,38 +182,53 @@ npx hardhat run scripts/tron/updateProtocolFee.ts 0x47afB97999801FD98CBD16Bb94F6efD2C779d242 - Optimism Ethereum + + + + Optimism Ethereum Gateway Proxy 0xD293fCd3dBc025603911853d893A4724CF9f70a0 - Gateway Admin - 0xb9B5280AB99E48a9662D4740B1e1398abdf87b6D Gateway Implementation 0xB04c9622a583DEbe5fef8f5E594582490604D45c - Scroll + Gateway Admin + 0xb9B5280AB99E48a9662D4740B1e1398abdf87b6D + + + + + + Scroll Gateway Proxy 0x663C5BfE7d44bA946C2dd4b2D1Cf9580319F9338 - Gateway Admin - 0x16c9C78Dbb224889E3e2ADef991C8c4438ea797B Gateway Implementation 0x5E7eC39915F6CD48829d06648F6682765846602a - Tron + Gateway Admin + 0x16c9C78Dbb224889E3e2ADef991C8c4438ea797B + + + + + + Tron Gateway Proxy THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU - Gateway Admin - TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ Gateway Implementation TDhBvHbnF8nN7YctokpdZAVPcmBx2Jrn2d + + Gateway Admin + TLw6AW9khfwLVq5gq9uV71wTVZEPxKjoiZ + From 6508a8e47f6ba9ff96d48d8a6717fed7bed99919 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 17:38:21 +0100 Subject: [PATCH 16/25] chore: update and upgrade some chains --- .openzeppelin/arbitrum-one.json | 267 ++++++++++++++++++++++++++++++++ .openzeppelin/base.json | 267 ++++++++++++++++++++++++++++++++ .openzeppelin/bsc.json | 267 ++++++++++++++++++++++++++++++++ .openzeppelin/optimism.json | 267 ++++++++++++++++++++++++++++++++ .openzeppelin/polygon.json | 267 ++++++++++++++++++++++++++++++++ README.md | 8 +- scripts/upgrade.ts | 14 +- 7 files changed, 1344 insertions(+), 13 deletions(-) diff --git a/.openzeppelin/arbitrum-one.json b/.openzeppelin/arbitrum-one.json index 172941c..b2cf348 100644 --- a/.openzeppelin/arbitrum-one.json +++ b/.openzeppelin/arbitrum-one.json @@ -880,6 +880,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x647daC4807Eb82E67CE3bca930D6202190831B4a", + "txHash": "0x28b5fdb5e52d7153b1f5ca5b029c9fe3cf8631d6fa32f5652b1b72491aae3945", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/base.json b/.openzeppelin/base.json index 62c76e5..6ce8dd8 100644 --- a/.openzeppelin/base.json +++ b/.openzeppelin/base.json @@ -880,6 +880,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x0a7aA9F8eab1665DD905288669447b66082E4B17", + "txHash": "0xcc4b5a8682f4673322731dd35ae2a7dfd52eb6af3a60636a660b428acc38caa5", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/bsc.json b/.openzeppelin/bsc.json index fdc1cde..ecb7f7a 100644 --- a/.openzeppelin/bsc.json +++ b/.openzeppelin/bsc.json @@ -880,6 +880,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x3610bF11EBF9749ECd866ad96756C5eD65B237D5", + "txHash": "0x21118e6d0e2154913a22622582b214ff1cf04f11f06776982ad413454d163896", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/optimism.json b/.openzeppelin/optimism.json index 094b921..ff97ec9 100644 --- a/.openzeppelin/optimism.json +++ b/.openzeppelin/optimism.json @@ -550,6 +550,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x847dfdAa218F9137229CF8424378871A1DA8f625", + "txHash": "0x4b80c21774d0dca8c4247fcf0f52e9b7fc8f2421da6bd813a4e5d3279b79d1d3", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/polygon.json b/.openzeppelin/polygon.json index eee52b4..50f7380 100644 --- a/.openzeppelin/polygon.json +++ b/.openzeppelin/polygon.json @@ -880,6 +880,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x46D259eF5B3E704F968cA2E50DAa800b9e674634", + "txHash": "0xe0cec43624302a992848e3f1bd01301b1dd0d336171696ee1f02af348bddd791", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/README.md b/README.md index 597e705..0d8e483 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,7 @@ tronbox migrate -f 1 --to 1 --network npx hardhat run scripts/upgrade.ts --network # upgrade across all EVM chains -npx hardhat run scripts/upgrade.ts --network -arbitrumOne && npx hardhat run scripts/upgrade.ts --network -base && npx hardhat run scripts/upgrade.ts --network -bsc && npx hardhat run scripts/upgrade.ts --network -polygon && npx hardhat run scripts/upgrade.ts --network -optimisticEthereum && npx hardhat run scripts/upgrade.ts --network -scroll +npx hardhat run scripts/upgrade.ts --network arbitrumOne && npx hardhat run scripts/upgrade.ts --network base && npx hardhat run scripts/upgrade.ts --network bsc && npx hardhat run scripts/upgrade.ts --network polygon && npx hardhat run scripts/upgrade.ts --network optimisticEthereum && npx hardhat run scripts/upgrade.ts --network scroll # for Tron network, tronbox migrate -f 2 --to 2 --network diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index f64f1a1..e579fe0 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -10,7 +10,9 @@ async function main() { const balance = await signer.getBalance(); // Get the balance of the signer's address if (balance.eq(0)) { - throw new Error(`"Can't upgrade ${network.config.chainId} with 0 balance`); + throw new Error( + `"Can't upgrade ${network.config.chainId} with 0 balance` + ); } const proxyContractAddress = networkConfig.GATEWAY_CONTRACT; @@ -18,17 +20,17 @@ async function main() { const contract = await upgrades.upgradeProxy(proxyContractAddress, factory); console.log("✅ Upgraded Gateway: ", contract.address); - - await hre.run("verify:verify", { - address: contract.address, - }); + + await hre.run("verify:verify", { + address: contract.address, + }); } catch (error) { if (error instanceof Error) { console.error("❌ Upgrade failed: ", error.message); } else { console.error("❌ Upgrade failed: Unknown error occurred"); } - process.exitCode = 1; + } } From 50ce99631752f756d65b641bc883c12ea8fcc8c7 Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 19:59:33 +0100 Subject: [PATCH 17/25] chore: added forceImport to forcefully import a proxy address, and update readme --- .openzeppelin/base-sepolia.json | 267 ++ .openzeppelin/sepolia.json | 267 ++ .openzeppelin/unknown-421614.json | 273 +- .openzeppelin/unknown-534352.json | 266 ++ README.md | 13 +- build/contracts/AddressUpgradeable.json | 3618 +++++++++--------- build/contracts/ContextUpgradeable.json | 550 +-- build/contracts/Gateway.json | 1802 ++++----- build/contracts/GatewaySettingManager.json | 1032 ++--- build/contracts/IERC20.json | 850 ++-- build/contracts/IGateway.json | 814 ++-- build/contracts/Initializable.json | 1622 ++++---- build/contracts/Ownable2StepUpgradeable.json | 1150 +++--- build/contracts/OwnableUpgradeable.json | 1366 +++---- build/contracts/PausableUpgradeable.json | 1290 +++---- migrations/2_upgrade.js | 5 +- scripts/forceImport.ts | 33 + scripts/upgrade.ts | 6 + 18 files changed, 8096 insertions(+), 7128 deletions(-) create mode 100644 scripts/forceImport.ts diff --git a/.openzeppelin/base-sepolia.json b/.openzeppelin/base-sepolia.json index e0d77d7..9b3988d 100644 --- a/.openzeppelin/base-sepolia.json +++ b/.openzeppelin/base-sepolia.json @@ -880,6 +880,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x0a7aA9F8eab1665DD905288669447b66082E4B17", + "txHash": "0x6c53f49d38fbcd0a587b74ab32f1596af36f835ca4729ebd194f151d5753ff6f", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/sepolia.json b/.openzeppelin/sepolia.json index 075a96b..669900a 100644 --- a/.openzeppelin/sepolia.json +++ b/.openzeppelin/sepolia.json @@ -1222,6 +1222,273 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x7bBeEf64680Db7bc3B00b1c9C4bAc0e57f85b7A8", + "txHash": "0x152f65e7150bc1bff92f0503d2034adb0d19b3d028109d6ddf47c7c3853e7c4c", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/unknown-421614.json b/.openzeppelin/unknown-421614.json index 0b952e2..1c16958 100644 --- a/.openzeppelin/unknown-421614.json +++ b/.openzeppelin/unknown-421614.json @@ -415,7 +415,7 @@ "label": "order", "offset": 0, "slot": "255", - "type": "t_mapping(t_bytes32,t_struct(Order)2469_storage)", + "type": "t_mapping(t_bytes32,t_struct(Order)1827_storage)", "contract": "Gateway", "src": "contracts/Gateway.sol:19" }, @@ -461,11 +461,278 @@ "label": "mapping(address => uint256)", "numberOfBytes": "32" }, - "t_mapping(t_bytes32,t_struct(Order)2469_storage)": { + "t_mapping(t_bytes32,t_struct(Order)1827_storage)": { "label": "mapping(bytes32 => struct IGateway.Order)", "numberOfBytes": "32" }, - "t_struct(Order)2469_storage": { + "t_struct(Order)1827_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x47afB97999801FD98CBD16Bb94F6efD2C779d242", + "txHash": "0x4ad9568ad5c638b4b1c1b6f3e0d13f4df142378dd555cdee40e3d7bd6d1afed2", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { "label": "struct IGateway.Order", "members": [ { diff --git a/.openzeppelin/unknown-534352.json b/.openzeppelin/unknown-534352.json index 40d9c9e..d15c9d1 100644 --- a/.openzeppelin/unknown-534352.json +++ b/.openzeppelin/unknown-534352.json @@ -545,6 +545,272 @@ }, "namespaces": {} } + }, + "3374e2edc611796055165c49e02ccebdf814460a8b82675f0d2938695e93dc3f": { + "address": "0x5E7eC39915F6CD48829d06648F6682765846602a", + "layout": { + "solcVersion": "0.8.18", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_pendingOwner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "Ownable2StepUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:70" + }, + { + "label": "MAX_BPS", + "offset": 0, + "slot": "151", + "type": "t_uint256", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:12" + }, + { + "label": "protocolFeePercent", + "offset": 0, + "slot": "152", + "type": "t_uint64", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:13" + }, + { + "label": "treasuryAddress", + "offset": 8, + "slot": "152", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:14" + }, + { + "label": "_aggregatorAddress", + "offset": 0, + "slot": "153", + "type": "t_address", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:15" + }, + { + "label": "_isTokenSupported", + "offset": 0, + "slot": "154", + "type": "t_mapping(t_address,t_uint256)", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:16" + }, + { + "label": "__gap", + "offset": 0, + "slot": "155", + "type": "t_array(t_uint256)50_storage", + "contract": "GatewaySettingManager", + "src": "contracts/GatewaySettingManager.sol:19" + }, + { + "label": "_paused", + "offset": 0, + "slot": "205", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "order", + "offset": 0, + "slot": "255", + "type": "t_mapping(t_bytes32,t_struct(Order)1822_storage)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:19" + }, + { + "label": "_nonce", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Gateway", + "src": "contracts/Gateway.sol:20" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "Gateway", + "src": "contracts/Gateway.sol:21" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Order)1822_storage)": { + "label": "mapping(bytes32 => struct IGateway.Order)", + "numberOfBytes": "32" + }, + "t_struct(Order)1822_storage": { + "label": "struct IGateway.Order", + "members": [ + { + "label": "sender", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "token", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "senderFeeRecipient", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "senderFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "protocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "isFulfilled", + "type": "t_bool", + "offset": 0, + "slot": "5" + }, + { + "label": "isRefunded", + "type": "t_bool", + "offset": 1, + "slot": "5" + }, + { + "label": "refundAddress", + "type": "t_address", + "offset": 2, + "slot": "5" + }, + { + "label": "currentBPS", + "type": "t_uint96", + "offset": 0, + "slot": "6" + }, + { + "label": "amount", + "type": "t_uint256", + "offset": 0, + "slot": "7" + } + ], + "numberOfBytes": "256" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } } } } diff --git a/README.md b/README.md index 0d8e483..977296a 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,9 @@ npx hardhat run scripts/upgrade.ts --network # upgrade across all EVM chains npx hardhat run scripts/upgrade.ts --network arbitrumOne && npx hardhat run scripts/upgrade.ts --network base && npx hardhat run scripts/upgrade.ts --network bsc && npx hardhat run scripts/upgrade.ts --network polygon && npx hardhat run scripts/upgrade.ts --network optimisticEthereum && npx hardhat run scripts/upgrade.ts --network scroll +# upgrade across all EVM testnet chains +npx hardhat run scripts/upgrade.ts --network arbitrumSepolia && npx hardhat run scripts/upgrade.ts --network amoy && npx hardhat run scripts/upgrade.ts --network baseSepolia && npx hardhat run scripts/upgrade.ts --network sepolia + # for Tron network, tronbox migrate -f 2 --to 2 --network ``` @@ -146,7 +149,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x904aDFcf6Fd29F556aA12a64B2072bA4C426A928 + 0x46D259eF5B3E704F968cA2E50DAa800b9e674634 @@ -158,7 +161,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xfB411Cc6385Af50A562aFCb441864E9d541CDA67 + 0x0a7aA9F8eab1665DD905288669447b66082E4B17 @@ -170,7 +173,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x0a7aA9F8eab1665DD905288669447b66082E4B17 + 0x3610bF11EBF9749ECd866ad96756C5eD65B237D5 @@ -182,7 +185,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x47afB97999801FD98CBD16Bb94F6efD2C779d242 + 0x647daC4807Eb82E67CE3bca930D6202190831B4a @@ -194,7 +197,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xB04c9622a583DEbe5fef8f5E594582490604D45c + 0x847dfdAa218F9137229CF8424378871A1DA8f625 Gateway Admin diff --git a/build/contracts/AddressUpgradeable.json b/build/contracts/AddressUpgradeable.json index 112b1e0..0ef83df 100644 --- a/build/contracts/AddressUpgradeable.json +++ b/build/contracts/AddressUpgradeable.json @@ -3,23 +3,23 @@ "abi": [], "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26474726f6e5822122088f13f5ae867781f077620bcdef1a35042456d4fbba7097ed28631198f76456364736f6c63430008120033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26474726f6e5822122088f13f5ae867781f077620bcdef1a35042456d4fbba7097ed28631198f76456364736f6c63430008120033", - "sourceMap": "194:9180:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "194:9180:8:-:0;;;;;;;;", + "sourceMap": "194:9180:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "194:9180:7:-:0;;;;;;;;", "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n *\n * Furthermore, `isContract` will also return true if the target contract within\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n * which only has an effect at the end of a transaction.\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason or using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n", "sourcePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1838 + 1763 ] }, - "id": 1839, + "id": 1764, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1510, + "id": 1435, "literals": [ "solidity", "^", @@ -27,7 +27,7 @@ ".1" ], "nodeType": "PragmaDirective", - "src": "101:23:8" + "src": "101:23:7" }, { "abstract": false, @@ -36,25 +36,25 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1511, + "id": 1436, "nodeType": "StructuredDocumentation", - "src": "126:67:8", + "src": "126:67:7", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1838, + "id": 1763, "linearizedBaseContracts": [ - 1838 + 1763 ], "name": "AddressUpgradeable", - "nameLocation": "202:18:8", + "nameLocation": "202:18:7", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1525, + "id": 1450, "nodeType": "Block", - "src": "1489:254:8", + "src": "1489:254:7", "statements": [ { "expression": { @@ -62,7 +62,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1523, + "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, @@ -70,40 +70,40 @@ "leftExpression": { "expression": { "expression": { - "id": 1519, + "id": 1444, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1514, - "src": "1713:7:8", + "referencedDeclaration": 1439, + "src": "1713:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1520, + "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1721:4:8", + "memberLocation": "1721:4:7", "memberName": "code", "nodeType": "MemberAccess", - "src": "1713:12:8", + "src": "1713:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1521, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1726:6:8", + "memberLocation": "1726:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "1713:19:8", + "src": "1713:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -113,59 +113,59 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1522, + "id": 1447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1735:1:8", + "src": "1735:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1713:23:8", + "src": "1713:23:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1518, - "id": 1524, + "functionReturnParameters": 1443, + "id": 1449, "nodeType": "Return", - "src": "1706:30:8" + "src": "1706:30:7" } ] }, "documentation": { - "id": 1512, + "id": 1437, "nodeType": "StructuredDocumentation", - "src": "227:1191:8", + "src": "227:1191:7", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1526, + "id": 1451, "implemented": true, "kind": "function", "modifiers": [], "name": "isContract", - "nameLocation": "1432:10:8", + "nameLocation": "1432:10:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1515, + "id": 1440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1514, + "id": 1439, "mutability": "mutable", "name": "account", - "nameLocation": "1451:7:8", + "nameLocation": "1451:7:7", "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "1443:15:8", + "scope": 1451, + "src": "1443:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -173,10 +173,10 @@ "typeString": "address" }, "typeName": { - "id": 1513, + "id": 1438, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1443:7:8", + "src": "1443:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -186,21 +186,21 @@ "visibility": "internal" } ], - "src": "1442:17:8" + "src": "1442:17:7" }, "returnParameters": { - "id": 1518, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "1483:4:8", + "scope": 1451, + "src": "1483:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -208,10 +208,10 @@ "typeString": "bool" }, "typeName": { - "id": 1516, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1483:4:8", + "src": "1483:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -220,19 +220,19 @@ "visibility": "internal" } ], - "src": "1482:6:8" + "src": "1482:6:7" }, - "scope": 1838, - "src": "1423:320:8", + "scope": 1763, + "src": "1423:320:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1559, + "id": 1484, "nodeType": "Block", - "src": "2729:241:8", + "src": "2729:241:7", "statements": [ { "expression": { @@ -242,7 +242,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1541, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, @@ -251,14 +251,14 @@ "expression": { "arguments": [ { - "id": 1537, + "id": 1462, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2755:4:8", + "src": "2755:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } } @@ -266,30 +266,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } ], - "id": 1536, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2747:7:8", + "src": "2747:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1535, + "id": 1460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2747:7:8", + "src": "2747:7:7", "typeDescriptions": {} } }, - "id": 1538, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, @@ -298,22 +298,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2747:13:8", + "src": "2747:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1539, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2761:7:8", + "memberLocation": "2761:7:7", "memberName": "balance", "nodeType": "MemberAccess", - "src": "2747:21:8", + "src": "2747:21:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -322,18 +322,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1540, + "id": 1465, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "2772:6:8", + "referencedDeclaration": 1456, + "src": "2772:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2747:31:8", + "src": "2747:31:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -341,14 +341,14 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1542, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2780:31:8", + "src": "2780:31:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\"" @@ -367,7 +367,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1534, + "id": 1459, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -375,13 +375,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2739:7:8", + "src": "2739:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1543, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": false, @@ -390,32 +390,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2739:73:8", + "src": "2739:73:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1544, + "id": 1469, "nodeType": "ExpressionStatement", - "src": "2739:73:8" + "src": "2739:73:7" }, { "assignments": [ - 1546, + 1471, null ], "declarations": [ { "constant": false, - "id": 1546, + "id": 1471, "mutability": "mutable", "name": "success", - "nameLocation": "2829:7:8", + "nameLocation": "2829:7:7", "nodeType": "VariableDeclaration", - "scope": 1559, - "src": "2824:12:8", + "scope": 1484, + "src": "2824:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +423,10 @@ "typeString": "bool" }, "typeName": { - "id": 1545, + "id": 1470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2824:4:8", + "src": "2824:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -436,19 +436,19 @@ }, null ], - "id": 1553, + "id": 1478, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1551, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2872:2:8", + "src": "2872:2:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -471,32 +471,32 @@ } ], "expression": { - "id": 1547, + "id": 1472, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2842:9:8", + "referencedDeclaration": 1454, + "src": "2842:9:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1548, + "id": 1473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2852:4:8", + "memberLocation": "2852:4:7", "memberName": "call", "nodeType": "MemberAccess", - "src": "2842:14:8", + "src": "2842:14:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1550, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -507,25 +507,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1549, + "id": 1474, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "2864:6:8", + "referencedDeclaration": 1456, + "src": "2864:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "2842:29:8", + "src": "2842:29:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1552, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, @@ -534,7 +534,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2842:33:8", + "src": "2842:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -542,18 +542,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2823:52:8" + "src": "2823:52:7" }, { "expression": { "arguments": [ { - "id": 1555, + "id": 1480, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1546, - "src": "2893:7:8", + "referencedDeclaration": 1471, + "src": "2893:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -561,14 +561,14 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1556, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2902:60:8", + "src": "2902:60:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" @@ -587,7 +587,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1554, + "id": 1479, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -595,13 +595,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2885:7:8", + "src": "2885:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1557, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -610,45 +610,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2885:78:8", + "src": "2885:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1558, + "id": 1483, "nodeType": "ExpressionStatement", - "src": "2885:78:8" + "src": "2885:78:7" } ] }, "documentation": { - "id": 1527, + "id": 1452, "nodeType": "StructuredDocumentation", - "src": "1749:904:8", + "src": "1749:904:7", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1560, + "id": 1485, "implemented": true, "kind": "function", "modifiers": [], "name": "sendValue", - "nameLocation": "2667:9:8", + "nameLocation": "2667:9:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1532, + "id": 1457, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1529, + "id": 1454, "mutability": "mutable", "name": "recipient", - "nameLocation": "2693:9:8", + "nameLocation": "2693:9:7", "nodeType": "VariableDeclaration", - "scope": 1560, - "src": "2677:25:8", + "scope": 1485, + "src": "2677:25:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -656,10 +656,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1528, + "id": 1453, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2677:15:8", + "src": "2677:15:7", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -670,13 +670,13 @@ }, { "constant": false, - "id": 1531, + "id": 1456, "mutability": "mutable", "name": "amount", - "nameLocation": "2712:6:8", + "nameLocation": "2712:6:7", "nodeType": "VariableDeclaration", - "scope": 1560, - "src": "2704:14:8", + "scope": 1485, + "src": "2704:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -684,10 +684,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1530, + "id": 1455, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2704:7:8", + "src": "2704:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -696,48 +696,48 @@ "visibility": "internal" } ], - "src": "2676:43:8" + "src": "2676:43:7" }, "returnParameters": { - "id": 1533, + "id": 1458, "nodeType": "ParameterList", "parameters": [], - "src": "2729:0:8" + "src": "2729:0:7" }, - "scope": 1838, - "src": "2658:312:8", + "scope": 1763, + "src": "2658:312:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1577, + "id": 1502, "nodeType": "Block", - "src": "3801:96:8", + "src": "3801:96:7", "statements": [ { "expression": { "arguments": [ { - "id": 1571, + "id": 1496, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3840:6:8", + "referencedDeclaration": 1488, + "src": "3840:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1572, + "id": 1497, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3848:4:8", + "referencedDeclaration": 1490, + "src": "3848:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -745,14 +745,14 @@ }, { "hexValue": "30", - "id": 1573, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3854:1:8", + "src": "3854:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -761,14 +761,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1574, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3857:32:8", + "src": "3857:32:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\"" @@ -795,21 +795,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1570, + "id": 1495, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "3818:21:8", + "referencedDeclaration": 1587, + "src": "3818:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1575, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -818,46 +818,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3818:72:8", + "src": "3818:72:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1569, - "id": 1576, + "functionReturnParameters": 1494, + "id": 1501, "nodeType": "Return", - "src": "3811:79:8" + "src": "3811:79:7" } ] }, "documentation": { - "id": 1561, + "id": 1486, "nodeType": "StructuredDocumentation", - "src": "2976:731:8", + "src": "2976:731:7", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1578, + "id": 1503, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", - "nameLocation": "3721:12:8", + "nameLocation": "3721:12:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1566, + "id": 1491, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1563, + "id": 1488, "mutability": "mutable", "name": "target", - "nameLocation": "3742:6:8", + "nameLocation": "3742:6:7", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3734:14:8", + "scope": 1503, + "src": "3734:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -865,10 +865,10 @@ "typeString": "address" }, "typeName": { - "id": 1562, + "id": 1487, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3734:7:8", + "src": "3734:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -879,13 +879,13 @@ }, { "constant": false, - "id": 1565, + "id": 1490, "mutability": "mutable", "name": "data", - "nameLocation": "3763:4:8", + "nameLocation": "3763:4:7", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3750:17:8", + "scope": 1503, + "src": "3750:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -893,10 +893,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1564, + "id": 1489, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3750:5:8", + "src": "3750:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -905,21 +905,21 @@ "visibility": "internal" } ], - "src": "3733:35:8" + "src": "3733:35:7" }, "returnParameters": { - "id": 1569, + "id": 1494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1568, + "id": 1493, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3787:12:8", + "scope": 1503, + "src": "3787:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -927,10 +927,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1492, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3787:5:8", + "src": "3787:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -939,42 +939,42 @@ "visibility": "internal" } ], - "src": "3786:14:8" + "src": "3786:14:7" }, - "scope": 1838, - "src": "3712:185:8", + "scope": 1763, + "src": "3712:185:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1597, + "id": 1522, "nodeType": "Block", - "src": "4266:76:8", + "src": "4266:76:7", "statements": [ { "expression": { "arguments": [ { - "id": 1591, + "id": 1516, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1581, - "src": "4305:6:8", + "referencedDeclaration": 1506, + "src": "4305:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1592, + "id": 1517, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1583, - "src": "4313:4:8", + "referencedDeclaration": 1508, + "src": "4313:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -982,14 +982,14 @@ }, { "hexValue": "30", - "id": 1593, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4319:1:8", + "src": "4319:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -997,12 +997,12 @@ "value": "0" }, { - "id": 1594, + "id": 1519, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1585, - "src": "4322:12:8", + "referencedDeclaration": 1510, + "src": "4322:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1028,21 +1028,21 @@ "typeString": "string memory" } ], - "id": 1590, + "id": 1515, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "4283:21:8", + "referencedDeclaration": 1587, + "src": "4283:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1595, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -1051,46 +1051,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4283:52:8", + "src": "4283:52:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1589, - "id": 1596, + "functionReturnParameters": 1514, + "id": 1521, "nodeType": "Return", - "src": "4276:59:8" + "src": "4276:59:7" } ] }, "documentation": { - "id": 1579, + "id": 1504, "nodeType": "StructuredDocumentation", - "src": "3903:211:8", + "src": "3903:211:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1598, + "id": 1523, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", - "nameLocation": "4128:12:8", + "nameLocation": "4128:12:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1586, + "id": 1511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, + "id": 1506, "mutability": "mutable", "name": "target", - "nameLocation": "4158:6:8", + "nameLocation": "4158:6:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4150:14:8", + "scope": 1523, + "src": "4150:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1098,10 +1098,10 @@ "typeString": "address" }, "typeName": { - "id": 1580, + "id": 1505, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4150:7:8", + "src": "4150:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1112,13 +1112,13 @@ }, { "constant": false, - "id": 1583, + "id": 1508, "mutability": "mutable", "name": "data", - "nameLocation": "4187:4:8", + "nameLocation": "4187:4:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4174:17:8", + "scope": 1523, + "src": "4174:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1126,10 +1126,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1582, + "id": 1507, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4174:5:8", + "src": "4174:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1139,13 +1139,13 @@ }, { "constant": false, - "id": 1585, + "id": 1510, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "4215:12:8", + "nameLocation": "4215:12:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4201:26:8", + "scope": 1523, + "src": "4201:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1153,10 +1153,10 @@ "typeString": "string" }, "typeName": { - "id": 1584, + "id": 1509, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4201:6:8", + "src": "4201:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1165,21 +1165,21 @@ "visibility": "internal" } ], - "src": "4140:93:8" + "src": "4140:93:7" }, "returnParameters": { - "id": 1589, + "id": 1514, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1588, + "id": 1513, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4252:12:8", + "scope": 1523, + "src": "4252:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1187,10 +1187,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1587, + "id": 1512, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4252:5:8", + "src": "4252:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1199,54 +1199,54 @@ "visibility": "internal" } ], - "src": "4251:14:8" + "src": "4251:14:7" }, - "scope": 1838, - "src": "4119:223:8", + "scope": 1763, + "src": "4119:223:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1617, + "id": 1542, "nodeType": "Block", - "src": "4817:111:8", + "src": "4817:111:7", "statements": [ { "expression": { "arguments": [ { - "id": 1611, + "id": 1536, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "4856:6:8", + "referencedDeclaration": 1526, + "src": "4856:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1612, + "id": 1537, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "4864:4:8", + "referencedDeclaration": 1528, + "src": "4864:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1613, + "id": 1538, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "4870:5:8", + "referencedDeclaration": 1530, + "src": "4870:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1254,14 +1254,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1614, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4877:43:8", + "src": "4877:43:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\"" @@ -1288,21 +1288,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1610, + "id": 1535, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "4834:21:8", + "referencedDeclaration": 1587, + "src": "4834:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1615, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, @@ -1311,46 +1311,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4834:87:8", + "src": "4834:87:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1609, - "id": 1616, + "functionReturnParameters": 1534, + "id": 1541, "nodeType": "Return", - "src": "4827:94:8" + "src": "4827:94:7" } ] }, "documentation": { - "id": 1599, + "id": 1524, "nodeType": "StructuredDocumentation", - "src": "4348:351:8", + "src": "4348:351:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1618, + "id": 1543, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", - "nameLocation": "4713:21:8", + "nameLocation": "4713:21:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1606, + "id": 1531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1601, + "id": 1526, "mutability": "mutable", "name": "target", - "nameLocation": "4743:6:8", + "nameLocation": "4743:6:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4735:14:8", + "scope": 1543, + "src": "4735:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1358,10 +1358,10 @@ "typeString": "address" }, "typeName": { - "id": 1600, + "id": 1525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4735:7:8", + "src": "4735:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1372,13 +1372,13 @@ }, { "constant": false, - "id": 1603, + "id": 1528, "mutability": "mutable", "name": "data", - "nameLocation": "4764:4:8", + "nameLocation": "4764:4:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4751:17:8", + "scope": 1543, + "src": "4751:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1386,10 +1386,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1602, + "id": 1527, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4751:5:8", + "src": "4751:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1399,13 +1399,13 @@ }, { "constant": false, - "id": 1605, + "id": 1530, "mutability": "mutable", "name": "value", - "nameLocation": "4778:5:8", + "nameLocation": "4778:5:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4770:13:8", + "scope": 1543, + "src": "4770:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1413,10 +1413,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1604, + "id": 1529, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4770:7:8", + "src": "4770:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1425,21 +1425,21 @@ "visibility": "internal" } ], - "src": "4734:50:8" + "src": "4734:50:7" }, "returnParameters": { - "id": 1609, + "id": 1534, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, + "id": 1533, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4803:12:8", + "scope": 1543, + "src": "4803:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1447,10 +1447,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1607, + "id": 1532, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4803:5:8", + "src": "4803:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1459,19 +1459,19 @@ "visibility": "internal" } ], - "src": "4802:14:8" + "src": "4802:14:7" }, - "scope": 1838, - "src": "4704:224:8", + "scope": 1763, + "src": "4704:224:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1661, + "id": 1586, "nodeType": "Block", - "src": "5355:267:8", + "src": "5355:267:7", "statements": [ { "expression": { @@ -1481,7 +1481,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1639, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, @@ -1490,14 +1490,14 @@ "expression": { "arguments": [ { - "id": 1635, + "id": 1560, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5381:4:8", + "src": "5381:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } } @@ -1505,30 +1505,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } ], - "id": 1634, + "id": 1559, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:8", + "src": "5373:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1633, + "id": 1558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5373:7:8", + "src": "5373:7:7", "typeDescriptions": {} } }, - "id": 1636, + "id": 1561, "isConstant": false, "isLValue": false, "isPure": false, @@ -1537,22 +1537,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5373:13:8", + "src": "5373:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1637, + "id": 1562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5387:7:8", + "memberLocation": "5387:7:7", "memberName": "balance", "nodeType": "MemberAccess", - "src": "5373:21:8", + "src": "5373:21:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1561,18 +1561,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1638, + "id": 1563, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "5398:5:8", + "referencedDeclaration": 1550, + "src": "5398:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5373:30:8", + "src": "5373:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1580,14 +1580,14 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1640, + "id": 1565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5405:40:8", + "src": "5405:40:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\"" @@ -1606,7 +1606,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1632, + "id": 1557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1614,13 +1614,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5365:7:8", + "src": "5365:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1641, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -1629,32 +1629,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5365:81:8", + "src": "5365:81:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1642, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "5365:81:8" + "src": "5365:81:7" }, { "assignments": [ - 1644, - 1646 + 1569, + 1571 ], "declarations": [ { "constant": false, - "id": 1644, + "id": 1569, "mutability": "mutable", "name": "success", - "nameLocation": "5462:7:8", + "nameLocation": "5462:7:7", "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "5457:12:8", + "scope": 1586, + "src": "5457:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1662,10 +1662,10 @@ "typeString": "bool" }, "typeName": { - "id": 1643, + "id": 1568, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5457:4:8", + "src": "5457:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1675,13 +1675,13 @@ }, { "constant": false, - "id": 1646, + "id": 1571, "mutability": "mutable", "name": "returndata", - "nameLocation": "5484:10:8", + "nameLocation": "5484:10:7", "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "5471:23:8", + "scope": 1586, + "src": "5471:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1689,10 +1689,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1645, + "id": 1570, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5471:5:8", + "src": "5471:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1701,16 +1701,16 @@ "visibility": "internal" } ], - "id": 1653, + "id": 1578, "initialValue": { "arguments": [ { - "id": 1651, + "id": 1576, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "5524:4:8", + "referencedDeclaration": 1548, + "src": "5524:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1732,32 +1732,32 @@ } ], "expression": { - "id": 1647, + "id": 1572, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "5498:6:8", + "referencedDeclaration": 1546, + "src": "5498:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1648, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5505:4:8", + "memberLocation": "5505:4:7", "memberName": "call", "nodeType": "MemberAccess", - "src": "5498:11:8", + "src": "5498:11:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1650, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -1768,25 +1768,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1649, + "id": 1574, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "5517:5:8", + "referencedDeclaration": 1550, + "src": "5517:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "5498:25:8", + "src": "5498:25:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1652, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, @@ -1795,7 +1795,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5498:31:8", + "src": "5498:31:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -1803,54 +1803,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5456:73:8" + "src": "5456:73:7" }, { "expression": { "arguments": [ { - "id": 1655, + "id": 1580, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "5573:6:8", + "referencedDeclaration": 1546, + "src": "5573:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1656, + "id": 1581, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "5581:7:8", + "referencedDeclaration": 1569, + "src": "5581:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1657, + "id": 1582, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "5590:10:8", + "referencedDeclaration": 1571, + "src": "5590:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1658, + "id": 1583, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "5602:12:8", + "referencedDeclaration": 1552, + "src": "5602:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1876,18 +1876,18 @@ "typeString": "string memory" } ], - "id": 1654, + "id": 1579, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "5546:26:8", + "referencedDeclaration": 1718, + "src": "5546:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1659, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -1896,46 +1896,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5546:69:8", + "src": "5546:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1631, - "id": 1660, + "functionReturnParameters": 1556, + "id": 1585, "nodeType": "Return", - "src": "5539:76:8" + "src": "5539:76:7" } ] }, "documentation": { - "id": 1619, + "id": 1544, "nodeType": "StructuredDocumentation", - "src": "4934:237:8", + "src": "4934:237:7", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1662, + "id": 1587, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", - "nameLocation": "5185:21:8", + "nameLocation": "5185:21:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1628, + "id": 1553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1621, + "id": 1546, "mutability": "mutable", "name": "target", - "nameLocation": "5224:6:8", + "nameLocation": "5224:6:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5216:14:8", + "scope": 1587, + "src": "5216:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1943,10 +1943,10 @@ "typeString": "address" }, "typeName": { - "id": 1620, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5216:7:8", + "src": "5216:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1957,13 +1957,13 @@ }, { "constant": false, - "id": 1623, + "id": 1548, "mutability": "mutable", "name": "data", - "nameLocation": "5253:4:8", + "nameLocation": "5253:4:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5240:17:8", + "scope": 1587, + "src": "5240:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1971,10 +1971,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1622, + "id": 1547, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5240:5:8", + "src": "5240:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1984,13 +1984,13 @@ }, { "constant": false, - "id": 1625, + "id": 1550, "mutability": "mutable", "name": "value", - "nameLocation": "5275:5:8", + "nameLocation": "5275:5:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5267:13:8", + "scope": 1587, + "src": "5267:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1998,10 +1998,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1624, + "id": 1549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5267:7:8", + "src": "5267:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2011,13 +2011,13 @@ }, { "constant": false, - "id": 1627, + "id": 1552, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "5304:12:8", + "nameLocation": "5304:12:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5290:26:8", + "scope": 1587, + "src": "5290:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2025,10 +2025,10 @@ "typeString": "string" }, "typeName": { - "id": 1626, + "id": 1551, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5290:6:8", + "src": "5290:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2037,21 +2037,21 @@ "visibility": "internal" } ], - "src": "5206:116:8" + "src": "5206:116:7" }, "returnParameters": { - "id": 1631, + "id": 1556, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1630, + "id": 1555, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5341:12:8", + "scope": 1587, + "src": "5341:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2059,10 +2059,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1629, + "id": 1554, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5341:5:8", + "src": "5341:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2071,42 +2071,42 @@ "visibility": "internal" } ], - "src": "5340:14:8" + "src": "5340:14:7" }, - "scope": 1838, - "src": "5176:446:8", + "scope": 1763, + "src": "5176:446:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1678, + "id": 1603, "nodeType": "Block", - "src": "5899:97:8", + "src": "5899:97:7", "statements": [ { "expression": { "arguments": [ { - "id": 1673, + "id": 1598, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "5935:6:8", + "referencedDeclaration": 1590, + "src": "5935:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1674, + "id": 1599, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "5943:4:8", + "referencedDeclaration": 1592, + "src": "5943:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2114,14 +2114,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1675, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5949:39:8", + "src": "5949:39:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\"" @@ -2144,21 +2144,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1672, + "id": 1597, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1679, - 1708 + 1604, + 1633 ], - "referencedDeclaration": 1708, - "src": "5916:18:8", + "referencedDeclaration": 1633, + "src": "5916:18:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1676, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -2167,46 +2167,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5916:73:8", + "src": "5916:73:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1671, - "id": 1677, + "functionReturnParameters": 1596, + "id": 1602, "nodeType": "Return", - "src": "5909:80:8" + "src": "5909:80:7" } ] }, "documentation": { - "id": 1663, + "id": 1588, "nodeType": "StructuredDocumentation", - "src": "5628:166:8", + "src": "5628:166:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1679, + "id": 1604, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", - "nameLocation": "5808:18:8", + "nameLocation": "5808:18:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1668, + "id": 1593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1665, + "id": 1590, "mutability": "mutable", "name": "target", - "nameLocation": "5835:6:8", + "nameLocation": "5835:6:7", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5827:14:8", + "scope": 1604, + "src": "5827:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2214,10 +2214,10 @@ "typeString": "address" }, "typeName": { - "id": 1664, + "id": 1589, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5827:7:8", + "src": "5827:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2228,13 +2228,13 @@ }, { "constant": false, - "id": 1667, + "id": 1592, "mutability": "mutable", "name": "data", - "nameLocation": "5856:4:8", + "nameLocation": "5856:4:7", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5843:17:8", + "scope": 1604, + "src": "5843:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2242,10 +2242,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1666, + "id": 1591, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5843:5:8", + "src": "5843:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2254,21 +2254,21 @@ "visibility": "internal" } ], - "src": "5826:35:8" + "src": "5826:35:7" }, "returnParameters": { - "id": 1671, + "id": 1596, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1670, + "id": 1595, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5885:12:8", + "scope": 1604, + "src": "5885:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2276,10 +2276,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1594, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5885:5:8", + "src": "5885:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2288,35 +2288,35 @@ "visibility": "internal" } ], - "src": "5884:14:8" + "src": "5884:14:7" }, - "scope": 1838, - "src": "5799:197:8", + "scope": 1763, + "src": "5799:197:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1707, + "id": 1632, "nodeType": "Block", - "src": "6338:168:8", + "src": "6338:168:7", "statements": [ { "assignments": [ - 1692, - 1694 + 1617, + 1619 ], "declarations": [ { "constant": false, - "id": 1692, + "id": 1617, "mutability": "mutable", "name": "success", - "nameLocation": "6354:7:8", + "nameLocation": "6354:7:7", "nodeType": "VariableDeclaration", - "scope": 1707, - "src": "6349:12:8", + "scope": 1632, + "src": "6349:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2324,10 +2324,10 @@ "typeString": "bool" }, "typeName": { - "id": 1691, + "id": 1616, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6349:4:8", + "src": "6349:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2337,13 +2337,13 @@ }, { "constant": false, - "id": 1694, + "id": 1619, "mutability": "mutable", "name": "returndata", - "nameLocation": "6376:10:8", + "nameLocation": "6376:10:7", "nodeType": "VariableDeclaration", - "scope": 1707, - "src": "6363:23:8", + "scope": 1632, + "src": "6363:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2351,10 +2351,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1693, + "id": 1618, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6363:5:8", + "src": "6363:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2363,16 +2363,16 @@ "visibility": "internal" } ], - "id": 1699, + "id": 1624, "initialValue": { "arguments": [ { - "id": 1697, + "id": 1622, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "6408:4:8", + "referencedDeclaration": 1609, + "src": "6408:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2387,32 +2387,32 @@ } ], "expression": { - "id": 1695, + "id": 1620, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6390:6:8", + "referencedDeclaration": 1607, + "src": "6390:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1696, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6397:10:8", + "memberLocation": "6397:10:7", "memberName": "staticcall", "nodeType": "MemberAccess", - "src": "6390:17:8", + "src": "6390:17:7", "typeDescriptions": { "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1698, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -2421,7 +2421,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:23:8", + "src": "6390:23:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -2429,54 +2429,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6348:65:8" + "src": "6348:65:7" }, { "expression": { "arguments": [ { - "id": 1701, + "id": 1626, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6457:6:8", + "referencedDeclaration": 1607, + "src": "6457:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1702, + "id": 1627, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1692, - "src": "6465:7:8", + "referencedDeclaration": 1617, + "src": "6465:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1703, + "id": 1628, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1694, - "src": "6474:10:8", + "referencedDeclaration": 1619, + "src": "6474:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1704, + "id": 1629, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1686, - "src": "6486:12:8", + "referencedDeclaration": 1611, + "src": "6486:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2502,18 +2502,18 @@ "typeString": "string memory" } ], - "id": 1700, + "id": 1625, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "6430:26:8", + "referencedDeclaration": 1718, + "src": "6430:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1705, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, @@ -2522,46 +2522,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6430:69:8", + "src": "6430:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1690, - "id": 1706, + "functionReturnParameters": 1615, + "id": 1631, "nodeType": "Return", - "src": "6423:76:8" + "src": "6423:76:7" } ] }, "documentation": { - "id": 1680, + "id": 1605, "nodeType": "StructuredDocumentation", - "src": "6002:173:8", + "src": "6002:173:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1708, + "id": 1633, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", - "nameLocation": "6189:18:8", + "nameLocation": "6189:18:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1687, + "id": 1612, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1682, + "id": 1607, "mutability": "mutable", "name": "target", - "nameLocation": "6225:6:8", + "nameLocation": "6225:6:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6217:14:8", + "scope": 1633, + "src": "6217:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2569,10 +2569,10 @@ "typeString": "address" }, "typeName": { - "id": 1681, + "id": 1606, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6217:7:8", + "src": "6217:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2583,13 +2583,13 @@ }, { "constant": false, - "id": 1684, + "id": 1609, "mutability": "mutable", "name": "data", - "nameLocation": "6254:4:8", + "nameLocation": "6254:4:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6241:17:8", + "scope": 1633, + "src": "6241:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2597,10 +2597,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1683, + "id": 1608, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6241:5:8", + "src": "6241:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2610,13 +2610,13 @@ }, { "constant": false, - "id": 1686, + "id": 1611, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "6282:12:8", + "nameLocation": "6282:12:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6268:26:8", + "scope": 1633, + "src": "6268:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2624,10 +2624,10 @@ "typeString": "string" }, "typeName": { - "id": 1685, + "id": 1610, "name": "string", "nodeType": "ElementaryTypeName", - "src": "6268:6:8", + "src": "6268:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2636,21 +2636,21 @@ "visibility": "internal" } ], - "src": "6207:93:8" + "src": "6207:93:7" }, "returnParameters": { - "id": 1690, + "id": 1615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1689, + "id": 1614, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6324:12:8", + "scope": 1633, + "src": "6324:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2658,10 +2658,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1688, + "id": 1613, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6324:5:8", + "src": "6324:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2670,42 +2670,42 @@ "visibility": "internal" } ], - "src": "6323:14:8" + "src": "6323:14:7" }, - "scope": 1838, - "src": "6180:326:8", + "scope": 1763, + "src": "6180:326:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1724, + "id": 1649, "nodeType": "Block", - "src": "6782:101:8", + "src": "6782:101:7", "statements": [ { "expression": { "arguments": [ { - "id": 1719, + "id": 1644, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "6820:6:8", + "referencedDeclaration": 1636, + "src": "6820:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1720, + "id": 1645, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1713, - "src": "6828:4:8", + "referencedDeclaration": 1638, + "src": "6828:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2713,14 +2713,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1721, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6834:41:8", + "src": "6834:41:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\"" @@ -2743,21 +2743,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1718, + "id": 1643, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1725, - 1754 + 1650, + 1679 ], - "referencedDeclaration": 1754, - "src": "6799:20:8", + "referencedDeclaration": 1679, + "src": "6799:20:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1722, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, @@ -2766,46 +2766,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6799:77:8", + "src": "6799:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1717, - "id": 1723, + "functionReturnParameters": 1642, + "id": 1648, "nodeType": "Return", - "src": "6792:84:8" + "src": "6792:84:7" } ] }, "documentation": { - "id": 1709, + "id": 1634, "nodeType": "StructuredDocumentation", - "src": "6512:168:8", + "src": "6512:168:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1725, + "id": 1650, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", - "nameLocation": "6694:20:8", + "nameLocation": "6694:20:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1714, + "id": 1639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1711, + "id": 1636, "mutability": "mutable", "name": "target", - "nameLocation": "6723:6:8", + "nameLocation": "6723:6:7", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6715:14:8", + "scope": 1650, + "src": "6715:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2813,10 +2813,10 @@ "typeString": "address" }, "typeName": { - "id": 1710, + "id": 1635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6715:7:8", + "src": "6715:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2827,13 +2827,13 @@ }, { "constant": false, - "id": 1713, + "id": 1638, "mutability": "mutable", "name": "data", - "nameLocation": "6744:4:8", + "nameLocation": "6744:4:7", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6731:17:8", + "scope": 1650, + "src": "6731:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2841,10 +2841,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1712, + "id": 1637, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6731:5:8", + "src": "6731:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2853,21 +2853,21 @@ "visibility": "internal" } ], - "src": "6714:35:8" + "src": "6714:35:7" }, "returnParameters": { - "id": 1717, + "id": 1642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1716, + "id": 1641, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6768:12:8", + "scope": 1650, + "src": "6768:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2875,10 +2875,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1640, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6768:5:8", + "src": "6768:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2887,35 +2887,35 @@ "visibility": "internal" } ], - "src": "6767:14:8" + "src": "6767:14:7" }, - "scope": 1838, - "src": "6685:198:8", + "scope": 1763, + "src": "6685:198:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1753, + "id": 1678, "nodeType": "Block", - "src": "7224:170:8", + "src": "7224:170:7", "statements": [ { "assignments": [ - 1738, - 1740 + 1663, + 1665 ], "declarations": [ { "constant": false, - "id": 1738, + "id": 1663, "mutability": "mutable", "name": "success", - "nameLocation": "7240:7:8", + "nameLocation": "7240:7:7", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "7235:12:8", + "scope": 1678, + "src": "7235:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2923,10 +2923,10 @@ "typeString": "bool" }, "typeName": { - "id": 1737, + "id": 1662, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7235:4:8", + "src": "7235:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2936,13 +2936,13 @@ }, { "constant": false, - "id": 1740, + "id": 1665, "mutability": "mutable", "name": "returndata", - "nameLocation": "7262:10:8", + "nameLocation": "7262:10:7", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "7249:23:8", + "scope": 1678, + "src": "7249:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2950,10 +2950,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1739, + "id": 1664, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7249:5:8", + "src": "7249:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2962,16 +2962,16 @@ "visibility": "internal" } ], - "id": 1745, + "id": 1670, "initialValue": { "arguments": [ { - "id": 1743, + "id": 1668, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "7296:4:8", + "referencedDeclaration": 1655, + "src": "7296:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2986,32 +2986,32 @@ } ], "expression": { - "id": 1741, + "id": 1666, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7276:6:8", + "referencedDeclaration": 1653, + "src": "7276:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1742, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7283:12:8", + "memberLocation": "7283:12:7", "memberName": "delegatecall", "nodeType": "MemberAccess", - "src": "7276:19:8", + "src": "7276:19:7", "typeDescriptions": { "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1744, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": false, @@ -3020,7 +3020,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7276:25:8", + "src": "7276:25:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -3028,54 +3028,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7234:67:8" + "src": "7234:67:7" }, { "expression": { "arguments": [ { - "id": 1747, + "id": 1672, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7345:6:8", + "referencedDeclaration": 1653, + "src": "7345:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1748, + "id": 1673, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "7353:7:8", + "referencedDeclaration": 1663, + "src": "7353:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1749, + "id": 1674, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "7362:10:8", + "referencedDeclaration": 1665, + "src": "7362:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1750, + "id": 1675, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7374:12:8", + "referencedDeclaration": 1657, + "src": "7374:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3101,18 +3101,18 @@ "typeString": "string memory" } ], - "id": 1746, + "id": 1671, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "7318:26:8", + "referencedDeclaration": 1718, + "src": "7318:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1751, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -3121,46 +3121,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7318:69:8", + "src": "7318:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1736, - "id": 1752, + "functionReturnParameters": 1661, + "id": 1677, "nodeType": "Return", - "src": "7311:76:8" + "src": "7311:76:7" } ] }, "documentation": { - "id": 1726, + "id": 1651, "nodeType": "StructuredDocumentation", - "src": "6889:175:8", + "src": "6889:175:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1754, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", - "nameLocation": "7078:20:8", + "nameLocation": "7078:20:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1733, + "id": 1658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1728, + "id": 1653, "mutability": "mutable", "name": "target", - "nameLocation": "7116:6:8", + "nameLocation": "7116:6:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7108:14:8", + "scope": 1679, + "src": "7108:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3168,10 +3168,10 @@ "typeString": "address" }, "typeName": { - "id": 1727, + "id": 1652, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7108:7:8", + "src": "7108:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3182,13 +3182,13 @@ }, { "constant": false, - "id": 1730, + "id": 1655, "mutability": "mutable", "name": "data", - "nameLocation": "7145:4:8", + "nameLocation": "7145:4:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7132:17:8", + "scope": 1679, + "src": "7132:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3196,10 +3196,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1729, + "id": 1654, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7132:5:8", + "src": "7132:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3209,13 +3209,13 @@ }, { "constant": false, - "id": 1732, + "id": 1657, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "7173:12:8", + "nameLocation": "7173:12:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7159:26:8", + "scope": 1679, + "src": "7159:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3223,10 +3223,10 @@ "typeString": "string" }, "typeName": { - "id": 1731, + "id": 1656, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7159:6:8", + "src": "7159:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3235,21 +3235,21 @@ "visibility": "internal" } ], - "src": "7098:93:8" + "src": "7098:93:7" }, "returnParameters": { - "id": 1736, + "id": 1661, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1735, + "id": 1660, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7210:12:8", + "scope": 1679, + "src": "7210:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3257,10 +3257,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1734, + "id": 1659, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7210:5:8", + "src": "7210:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3269,60 +3269,60 @@ "visibility": "internal" } ], - "src": "7209:14:8" + "src": "7209:14:7" }, - "scope": 1838, - "src": "7069:325:8", + "scope": 1763, + "src": "7069:325:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1792, + "id": 1717, "nodeType": "Block", - "src": "7876:434:8", + "src": "7876:434:7", "statements": [ { "condition": { - "id": 1768, + "id": 1693, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "7890:7:8", + "referencedDeclaration": 1684, + "src": "7890:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1790, + "id": 1715, "nodeType": "Block", - "src": "8246:58:8", + "src": "8246:58:7", "statements": [ { "expression": { "arguments": [ { - "id": 1786, + "id": 1711, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "8268:10:8", + "referencedDeclaration": 1686, + "src": "8268:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1787, + "id": 1712, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "8280:12:8", + "referencedDeclaration": 1688, + "src": "8280:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3340,18 +3340,18 @@ "typeString": "string memory" } ], - "id": 1785, + "id": 1710, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "8260:7:8", + "referencedDeclaration": 1762, + "src": "8260:7:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1788, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, @@ -3360,26 +3360,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8260:33:8", + "src": "8260:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1789, + "id": 1714, "nodeType": "ExpressionStatement", - "src": "8260:33:8" + "src": "8260:33:7" } ] }, - "id": 1791, + "id": 1716, "nodeType": "IfStatement", - "src": "7886:418:8", + "src": "7886:418:7", "trueBody": { - "id": 1784, + "id": 1709, "nodeType": "Block", - "src": "7899:341:8", + "src": "7899:341:7", "statements": [ { "condition": { @@ -3387,33 +3387,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1772, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1769, + "id": 1694, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "7917:10:8", + "referencedDeclaration": 1686, + "src": "7917:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1770, + "id": 1695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7928:6:8", + "memberLocation": "7928:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "7917:17:8", + "src": "7917:17:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3423,33 +3423,33 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1771, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7938:1:8", + "src": "7938:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "7917:22:8", + "src": "7917:22:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1781, + "id": 1706, "nodeType": "IfStatement", - "src": "7913:286:8", + "src": "7913:286:7", "trueBody": { - "id": 1780, + "id": 1705, "nodeType": "Block", - "src": "7941:258:8", + "src": "7941:258:7", "statements": [ { "expression": { @@ -3457,12 +3457,12 @@ { "arguments": [ { - "id": 1775, + "id": 1700, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1757, - "src": "8143:6:8", + "referencedDeclaration": 1682, + "src": "8143:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3476,18 +3476,18 @@ "typeString": "address" } ], - "id": 1774, + "id": 1699, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "8132:10:8", + "referencedDeclaration": 1451, + "src": "8132:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1776, + "id": 1701, "isConstant": false, "isLValue": false, "isPure": false, @@ -3496,7 +3496,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8132:18:8", + "src": "8132:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3505,14 +3505,14 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1777, + "id": 1702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8152:31:8", + "src": "8152:31:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\"" @@ -3531,7 +3531,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1773, + "id": 1698, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3539,13 +3539,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8124:7:8", + "src": "8124:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1778, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -3554,37 +3554,37 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8124:60:8", + "src": "8124:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1779, + "id": 1704, "nodeType": "ExpressionStatement", - "src": "8124:60:8" + "src": "8124:60:7" } ] } }, { "expression": { - "id": 1782, + "id": 1707, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "8219:10:8", + "referencedDeclaration": 1686, + "src": "8219:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1767, - "id": 1783, + "functionReturnParameters": 1692, + "id": 1708, "nodeType": "Return", - "src": "8212:17:8" + "src": "8212:17:7" } ] } @@ -3592,31 +3592,31 @@ ] }, "documentation": { - "id": 1755, + "id": 1680, "nodeType": "StructuredDocumentation", - "src": "7400:277:8", + "src": "7400:277:7", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1793, + "id": 1718, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResultFromTarget", - "nameLocation": "7691:26:8", + "nameLocation": "7691:26:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1764, + "id": 1689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1757, + "id": 1682, "mutability": "mutable", "name": "target", - "nameLocation": "7735:6:8", + "nameLocation": "7735:6:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7727:14:8", + "scope": 1718, + "src": "7727:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3624,10 +3624,10 @@ "typeString": "address" }, "typeName": { - "id": 1756, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7727:7:8", + "src": "7727:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3638,13 +3638,13 @@ }, { "constant": false, - "id": 1759, + "id": 1684, "mutability": "mutable", "name": "success", - "nameLocation": "7756:7:8", + "nameLocation": "7756:7:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7751:12:8", + "scope": 1718, + "src": "7751:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3652,10 +3652,10 @@ "typeString": "bool" }, "typeName": { - "id": 1758, + "id": 1683, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7751:4:8", + "src": "7751:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3665,13 +3665,13 @@ }, { "constant": false, - "id": 1761, + "id": 1686, "mutability": "mutable", "name": "returndata", - "nameLocation": "7786:10:8", + "nameLocation": "7786:10:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7773:23:8", + "scope": 1718, + "src": "7773:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3679,10 +3679,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1760, + "id": 1685, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7773:5:8", + "src": "7773:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3692,13 +3692,13 @@ }, { "constant": false, - "id": 1763, + "id": 1688, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "7820:12:8", + "nameLocation": "7820:12:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7806:26:8", + "scope": 1718, + "src": "7806:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3706,10 +3706,10 @@ "typeString": "string" }, "typeName": { - "id": 1762, + "id": 1687, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7806:6:8", + "src": "7806:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3718,21 +3718,21 @@ "visibility": "internal" } ], - "src": "7717:121:8" + "src": "7717:121:7" }, "returnParameters": { - "id": 1767, + "id": 1692, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1766, + "id": 1691, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7862:12:8", + "scope": 1718, + "src": "7862:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3740,10 +3740,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1765, + "id": 1690, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7862:5:8", + "src": "7862:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3752,60 +3752,60 @@ "visibility": "internal" } ], - "src": "7861:14:8" + "src": "7861:14:7" }, - "scope": 1838, - "src": "7682:628:8", + "scope": 1763, + "src": "7682:628:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1816, + "id": 1741, "nodeType": "Block", - "src": "8691:135:8", + "src": "8691:135:7", "statements": [ { "condition": { - "id": 1805, + "id": 1730, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "8705:7:8", + "referencedDeclaration": 1721, + "src": "8705:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1814, + "id": 1739, "nodeType": "Block", - "src": "8762:58:8", + "src": "8762:58:7", "statements": [ { "expression": { "arguments": [ { - "id": 1810, + "id": 1735, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "8784:10:8", + "referencedDeclaration": 1723, + "src": "8784:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1811, + "id": 1736, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "8796:12:8", + "referencedDeclaration": 1725, + "src": "8796:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3823,18 +3823,18 @@ "typeString": "string memory" } ], - "id": 1809, + "id": 1734, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "8776:7:8", + "referencedDeclaration": 1762, + "src": "8776:7:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1812, + "id": 1737, "isConstant": false, "isLValue": false, "isPure": false, @@ -3843,44 +3843,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8776:33:8", + "src": "8776:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1813, + "id": 1738, "nodeType": "ExpressionStatement", - "src": "8776:33:8" + "src": "8776:33:7" } ] }, - "id": 1815, + "id": 1740, "nodeType": "IfStatement", - "src": "8701:119:8", + "src": "8701:119:7", "trueBody": { - "id": 1808, + "id": 1733, "nodeType": "Block", - "src": "8714:42:8", + "src": "8714:42:7", "statements": [ { "expression": { - "id": 1806, + "id": 1731, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "8735:10:8", + "referencedDeclaration": 1723, + "src": "8735:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1804, - "id": 1807, + "functionReturnParameters": 1729, + "id": 1732, "nodeType": "Return", - "src": "8728:17:8" + "src": "8728:17:7" } ] } @@ -3888,31 +3888,31 @@ ] }, "documentation": { - "id": 1794, + "id": 1719, "nodeType": "StructuredDocumentation", - "src": "8316:210:8", + "src": "8316:210:7", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1817, + "id": 1742, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResult", - "nameLocation": "8540:16:8", + "nameLocation": "8540:16:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1801, + "id": 1726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 1721, "mutability": "mutable", "name": "success", - "nameLocation": "8571:7:8", + "nameLocation": "8571:7:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8566:12:8", + "scope": 1742, + "src": "8566:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3920,10 +3920,10 @@ "typeString": "bool" }, "typeName": { - "id": 1795, + "id": 1720, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8566:4:8", + "src": "8566:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3933,13 +3933,13 @@ }, { "constant": false, - "id": 1798, + "id": 1723, "mutability": "mutable", "name": "returndata", - "nameLocation": "8601:10:8", + "nameLocation": "8601:10:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8588:23:8", + "scope": 1742, + "src": "8588:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3947,10 +3947,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1797, + "id": 1722, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8588:5:8", + "src": "8588:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3960,13 +3960,13 @@ }, { "constant": false, - "id": 1800, + "id": 1725, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "8635:12:8", + "nameLocation": "8635:12:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8621:26:8", + "scope": 1742, + "src": "8621:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3974,10 +3974,10 @@ "typeString": "string" }, "typeName": { - "id": 1799, + "id": 1724, "name": "string", "nodeType": "ElementaryTypeName", - "src": "8621:6:8", + "src": "8621:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3986,21 +3986,21 @@ "visibility": "internal" } ], - "src": "8556:97:8" + "src": "8556:97:7" }, "returnParameters": { - "id": 1804, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 1728, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8677:12:8", + "scope": 1742, + "src": "8677:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4008,10 +4008,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1802, + "id": 1727, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8677:5:8", + "src": "8677:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4020,19 +4020,19 @@ "visibility": "internal" } ], - "src": "8676:14:8" + "src": "8676:14:7" }, - "scope": 1838, - "src": "8531:295:8", + "scope": 1763, + "src": "8531:295:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1836, + "id": 1761, "nodeType": "Block", - "src": "8915:457:8", + "src": "8915:457:7", "statements": [ { "condition": { @@ -4040,33 +4040,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1827, + "id": 1752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1824, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "8991:10:8", + "referencedDeclaration": 1744, + "src": "8991:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1825, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9002:6:8", + "memberLocation": "9002:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "8991:17:8", + "src": "8991:17:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4076,41 +4076,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1826, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9011:1:8", + "src": "9011:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8991:21:8", + "src": "8991:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1834, + "id": 1759, "nodeType": "Block", - "src": "9321:45:8", + "src": "9321:45:7", "statements": [ { "expression": { "arguments": [ { - "id": 1831, + "id": 1756, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "9342:12:8", + "referencedDeclaration": 1746, + "src": "9342:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -4124,7 +4124,7 @@ "typeString": "string memory" } ], - "id": 1830, + "id": 1755, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4132,13 +4132,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "9335:6:8", + "src": "9335:6:7", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1832, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": false, @@ -4147,56 +4147,56 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9335:20:8", + "src": "9335:20:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1833, + "id": 1758, "nodeType": "ExpressionStatement", - "src": "9335:20:8" + "src": "9335:20:7" } ] }, - "id": 1835, + "id": 1760, "nodeType": "IfStatement", - "src": "8987:379:8", + "src": "8987:379:7", "trueBody": { - "id": 1829, + "id": 1754, "nodeType": "Block", - "src": "9014:301:8", + "src": "9014:301:7", "statements": [ { "AST": { "nodeType": "YulBlock", - "src": "9172:133:8", + "src": "9172:133:7", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9190:40:8", + "src": "9190:40:7", "value": { "arguments": [ { "name": "returndata", "nodeType": "YulIdentifier", - "src": "9219:10:8" + "src": "9219:10:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "9213:5:8" + "src": "9213:5:7" }, "nodeType": "YulFunctionCall", - "src": "9213:17:8" + "src": "9213:17:7" }, "variables": [ { "name": "returndata_size", "nodeType": "YulTypedName", - "src": "9194:15:8", + "src": "9194:15:7", "type": "" } ] @@ -4209,40 +4209,40 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9258:2:8", + "src": "9258:2:7", "type": "", "value": "32" }, { "name": "returndata", "nodeType": "YulIdentifier", - "src": "9262:10:8" + "src": "9262:10:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9254:3:8" + "src": "9254:3:7" }, "nodeType": "YulFunctionCall", - "src": "9254:19:8" + "src": "9254:19:7" }, { "name": "returndata_size", "nodeType": "YulIdentifier", - "src": "9275:15:8" + "src": "9275:15:7" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9247:6:8" + "src": "9247:6:7" }, "nodeType": "YulFunctionCall", - "src": "9247:44:8" + "src": "9247:44:7" }, "nodeType": "YulExpressionStatement", - "src": "9247:44:8" + "src": "9247:44:7" } ] }, @@ -4250,49 +4250,49 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1819, + "declaration": 1744, "isOffset": false, "isSlot": false, - "src": "9219:10:8", + "src": "9219:10:7", "valueSize": 1 }, { - "declaration": 1819, + "declaration": 1744, "isOffset": false, "isSlot": false, - "src": "9262:10:8", + "src": "9262:10:7", "valueSize": 1 } ], - "id": 1828, + "id": 1753, "nodeType": "InlineAssembly", - "src": "9163:142:8" + "src": "9163:142:7" } ] } } ] }, - "id": 1837, + "id": 1762, "implemented": true, "kind": "function", "modifiers": [], "name": "_revert", - "nameLocation": "8841:7:8", + "nameLocation": "8841:7:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1822, + "id": 1747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1819, + "id": 1744, "mutability": "mutable", "name": "returndata", - "nameLocation": "8862:10:8", + "nameLocation": "8862:10:7", "nodeType": "VariableDeclaration", - "scope": 1837, - "src": "8849:23:8", + "scope": 1762, + "src": "8849:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4300,10 +4300,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1818, + "id": 1743, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8849:5:8", + "src": "8849:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4313,13 +4313,13 @@ }, { "constant": false, - "id": 1821, + "id": 1746, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "8888:12:8", + "nameLocation": "8888:12:7", "nodeType": "VariableDeclaration", - "scope": 1837, - "src": "8874:26:8", + "scope": 1762, + "src": "8874:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4327,10 +4327,10 @@ "typeString": "string" }, "typeName": { - "id": 1820, + "id": 1745, "name": "string", "nodeType": "ElementaryTypeName", - "src": "8874:6:8", + "src": "8874:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4339,41 +4339,41 @@ "visibility": "internal" } ], - "src": "8848:53:8" + "src": "8848:53:7" }, "returnParameters": { - "id": 1823, + "id": 1748, "nodeType": "ParameterList", "parameters": [], - "src": "8915:0:8" + "src": "8915:0:7" }, - "scope": 1838, - "src": "8832:540:8", + "scope": 1763, + "src": "8832:540:7", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1839, - "src": "194:9180:8", + "scope": 1764, + "src": "194:9180:7", "usedErrors": [] } ], - "src": "101:9274:8" + "src": "101:9274:7" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1838 + 1763 ] }, - "id": 1839, + "id": 1764, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1510, + "id": 1435, "literals": [ "solidity", "^", @@ -4381,7 +4381,7 @@ ".1" ], "nodeType": "PragmaDirective", - "src": "101:23:8" + "src": "101:23:7" }, { "abstract": false, @@ -4390,25 +4390,25 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1511, + "id": 1436, "nodeType": "StructuredDocumentation", - "src": "126:67:8", + "src": "126:67:7", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 1838, + "id": 1763, "linearizedBaseContracts": [ - 1838 + 1763 ], "name": "AddressUpgradeable", - "nameLocation": "202:18:8", + "nameLocation": "202:18:7", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1525, + "id": 1450, "nodeType": "Block", - "src": "1489:254:8", + "src": "1489:254:7", "statements": [ { "expression": { @@ -4416,7 +4416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1523, + "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, @@ -4424,40 +4424,40 @@ "leftExpression": { "expression": { "expression": { - "id": 1519, + "id": 1444, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1514, - "src": "1713:7:8", + "referencedDeclaration": 1439, + "src": "1713:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1520, + "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1721:4:8", + "memberLocation": "1721:4:7", "memberName": "code", "nodeType": "MemberAccess", - "src": "1713:12:8", + "src": "1713:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1521, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1726:6:8", + "memberLocation": "1726:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "1713:19:8", + "src": "1713:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4467,59 +4467,59 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1522, + "id": 1447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1735:1:8", + "src": "1735:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1713:23:8", + "src": "1713:23:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1518, - "id": 1524, + "functionReturnParameters": 1443, + "id": 1449, "nodeType": "Return", - "src": "1706:30:8" + "src": "1706:30:7" } ] }, "documentation": { - "id": 1512, + "id": 1437, "nodeType": "StructuredDocumentation", - "src": "227:1191:8", + "src": "227:1191:7", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" }, - "id": 1526, + "id": 1451, "implemented": true, "kind": "function", "modifiers": [], "name": "isContract", - "nameLocation": "1432:10:8", + "nameLocation": "1432:10:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1515, + "id": 1440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1514, + "id": 1439, "mutability": "mutable", "name": "account", - "nameLocation": "1451:7:8", + "nameLocation": "1451:7:7", "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "1443:15:8", + "scope": 1451, + "src": "1443:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4527,10 +4527,10 @@ "typeString": "address" }, "typeName": { - "id": 1513, + "id": 1438, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1443:7:8", + "src": "1443:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4540,21 +4540,21 @@ "visibility": "internal" } ], - "src": "1442:17:8" + "src": "1442:17:7" }, "returnParameters": { - "id": 1518, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "1483:4:8", + "scope": 1451, + "src": "1483:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4562,10 +4562,10 @@ "typeString": "bool" }, "typeName": { - "id": 1516, + "id": 1441, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1483:4:8", + "src": "1483:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4574,19 +4574,19 @@ "visibility": "internal" } ], - "src": "1482:6:8" + "src": "1482:6:7" }, - "scope": 1838, - "src": "1423:320:8", + "scope": 1763, + "src": "1423:320:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1559, + "id": 1484, "nodeType": "Block", - "src": "2729:241:8", + "src": "2729:241:7", "statements": [ { "expression": { @@ -4596,7 +4596,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1541, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, @@ -4605,14 +4605,14 @@ "expression": { "arguments": [ { - "id": 1537, + "id": 1462, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2755:4:8", + "src": "2755:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } } @@ -4620,30 +4620,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } ], - "id": 1536, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2747:7:8", + "src": "2747:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1535, + "id": 1460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2747:7:8", + "src": "2747:7:7", "typeDescriptions": {} } }, - "id": 1538, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, @@ -4652,22 +4652,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2747:13:8", + "src": "2747:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1539, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2761:7:8", + "memberLocation": "2761:7:7", "memberName": "balance", "nodeType": "MemberAccess", - "src": "2747:21:8", + "src": "2747:21:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4676,18 +4676,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1540, + "id": 1465, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "2772:6:8", + "referencedDeclaration": 1456, + "src": "2772:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2747:31:8", + "src": "2747:31:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4695,14 +4695,14 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 1542, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2780:31:8", + "src": "2780:31:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\"" @@ -4721,7 +4721,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 1534, + "id": 1459, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4729,13 +4729,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2739:7:8", + "src": "2739:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1543, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": false, @@ -4744,32 +4744,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2739:73:8", + "src": "2739:73:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1544, + "id": 1469, "nodeType": "ExpressionStatement", - "src": "2739:73:8" + "src": "2739:73:7" }, { "assignments": [ - 1546, + 1471, null ], "declarations": [ { "constant": false, - "id": 1546, + "id": 1471, "mutability": "mutable", "name": "success", - "nameLocation": "2829:7:8", + "nameLocation": "2829:7:7", "nodeType": "VariableDeclaration", - "scope": 1559, - "src": "2824:12:8", + "scope": 1484, + "src": "2824:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4777,10 +4777,10 @@ "typeString": "bool" }, "typeName": { - "id": 1545, + "id": 1470, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2824:4:8", + "src": "2824:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4790,19 +4790,19 @@ }, null ], - "id": 1553, + "id": 1478, "initialValue": { "arguments": [ { "hexValue": "", - "id": 1551, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2872:2:8", + "src": "2872:2:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -4825,32 +4825,32 @@ } ], "expression": { - "id": 1547, + "id": 1472, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2842:9:8", + "referencedDeclaration": 1454, + "src": "2842:9:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1548, + "id": 1473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2852:4:8", + "memberLocation": "2852:4:7", "memberName": "call", "nodeType": "MemberAccess", - "src": "2842:14:8", + "src": "2842:14:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1550, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,25 +4861,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1549, + "id": 1474, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "2864:6:8", + "referencedDeclaration": 1456, + "src": "2864:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "2842:29:8", + "src": "2842:29:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1552, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, @@ -4888,7 +4888,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2842:33:8", + "src": "2842:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -4896,18 +4896,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2823:52:8" + "src": "2823:52:7" }, { "expression": { "arguments": [ { - "id": 1555, + "id": 1480, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1546, - "src": "2893:7:8", + "referencedDeclaration": 1471, + "src": "2893:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4915,14 +4915,14 @@ }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 1556, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2902:60:8", + "src": "2902:60:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" @@ -4941,7 +4941,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 1554, + "id": 1479, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4949,13 +4949,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2885:7:8", + "src": "2885:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1557, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -4964,45 +4964,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2885:78:8", + "src": "2885:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1558, + "id": 1483, "nodeType": "ExpressionStatement", - "src": "2885:78:8" + "src": "2885:78:7" } ] }, "documentation": { - "id": 1527, + "id": 1452, "nodeType": "StructuredDocumentation", - "src": "1749:904:8", + "src": "1749:904:7", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 1560, + "id": 1485, "implemented": true, "kind": "function", "modifiers": [], "name": "sendValue", - "nameLocation": "2667:9:8", + "nameLocation": "2667:9:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1532, + "id": 1457, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1529, + "id": 1454, "mutability": "mutable", "name": "recipient", - "nameLocation": "2693:9:8", + "nameLocation": "2693:9:7", "nodeType": "VariableDeclaration", - "scope": 1560, - "src": "2677:25:8", + "scope": 1485, + "src": "2677:25:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5010,10 +5010,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1528, + "id": 1453, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2677:15:8", + "src": "2677:15:7", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5024,13 +5024,13 @@ }, { "constant": false, - "id": 1531, + "id": 1456, "mutability": "mutable", "name": "amount", - "nameLocation": "2712:6:8", + "nameLocation": "2712:6:7", "nodeType": "VariableDeclaration", - "scope": 1560, - "src": "2704:14:8", + "scope": 1485, + "src": "2704:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5038,10 +5038,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1530, + "id": 1455, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2704:7:8", + "src": "2704:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5050,48 +5050,48 @@ "visibility": "internal" } ], - "src": "2676:43:8" + "src": "2676:43:7" }, "returnParameters": { - "id": 1533, + "id": 1458, "nodeType": "ParameterList", "parameters": [], - "src": "2729:0:8" + "src": "2729:0:7" }, - "scope": 1838, - "src": "2658:312:8", + "scope": 1763, + "src": "2658:312:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1577, + "id": 1502, "nodeType": "Block", - "src": "3801:96:8", + "src": "3801:96:7", "statements": [ { "expression": { "arguments": [ { - "id": 1571, + "id": 1496, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3840:6:8", + "referencedDeclaration": 1488, + "src": "3840:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1572, + "id": 1497, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3848:4:8", + "referencedDeclaration": 1490, + "src": "3848:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5099,14 +5099,14 @@ }, { "hexValue": "30", - "id": 1573, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3854:1:8", + "src": "3854:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -5115,14 +5115,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 1574, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3857:32:8", + "src": "3857:32:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\"" @@ -5149,21 +5149,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 1570, + "id": 1495, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "3818:21:8", + "referencedDeclaration": 1587, + "src": "3818:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1575, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -5172,46 +5172,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3818:72:8", + "src": "3818:72:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1569, - "id": 1576, + "functionReturnParameters": 1494, + "id": 1501, "nodeType": "Return", - "src": "3811:79:8" + "src": "3811:79:7" } ] }, "documentation": { - "id": 1561, + "id": 1486, "nodeType": "StructuredDocumentation", - "src": "2976:731:8", + "src": "2976:731:7", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 1578, + "id": 1503, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", - "nameLocation": "3721:12:8", + "nameLocation": "3721:12:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1566, + "id": 1491, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1563, + "id": 1488, "mutability": "mutable", "name": "target", - "nameLocation": "3742:6:8", + "nameLocation": "3742:6:7", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3734:14:8", + "scope": 1503, + "src": "3734:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5219,10 +5219,10 @@ "typeString": "address" }, "typeName": { - "id": 1562, + "id": 1487, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3734:7:8", + "src": "3734:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5233,13 +5233,13 @@ }, { "constant": false, - "id": 1565, + "id": 1490, "mutability": "mutable", "name": "data", - "nameLocation": "3763:4:8", + "nameLocation": "3763:4:7", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3750:17:8", + "scope": 1503, + "src": "3750:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5247,10 +5247,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1564, + "id": 1489, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3750:5:8", + "src": "3750:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5259,21 +5259,21 @@ "visibility": "internal" } ], - "src": "3733:35:8" + "src": "3733:35:7" }, "returnParameters": { - "id": 1569, + "id": 1494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1568, + "id": 1493, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1578, - "src": "3787:12:8", + "scope": 1503, + "src": "3787:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5281,10 +5281,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1567, + "id": 1492, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3787:5:8", + "src": "3787:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5293,42 +5293,42 @@ "visibility": "internal" } ], - "src": "3786:14:8" + "src": "3786:14:7" }, - "scope": 1838, - "src": "3712:185:8", + "scope": 1763, + "src": "3712:185:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1597, + "id": 1522, "nodeType": "Block", - "src": "4266:76:8", + "src": "4266:76:7", "statements": [ { "expression": { "arguments": [ { - "id": 1591, + "id": 1516, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1581, - "src": "4305:6:8", + "referencedDeclaration": 1506, + "src": "4305:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1592, + "id": 1517, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1583, - "src": "4313:4:8", + "referencedDeclaration": 1508, + "src": "4313:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5336,14 +5336,14 @@ }, { "hexValue": "30", - "id": 1593, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4319:1:8", + "src": "4319:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -5351,12 +5351,12 @@ "value": "0" }, { - "id": 1594, + "id": 1519, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1585, - "src": "4322:12:8", + "referencedDeclaration": 1510, + "src": "4322:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -5382,21 +5382,21 @@ "typeString": "string memory" } ], - "id": 1590, + "id": 1515, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "4283:21:8", + "referencedDeclaration": 1587, + "src": "4283:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1595, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, @@ -5405,46 +5405,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4283:52:8", + "src": "4283:52:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1589, - "id": 1596, + "functionReturnParameters": 1514, + "id": 1521, "nodeType": "Return", - "src": "4276:59:8" + "src": "4276:59:7" } ] }, "documentation": { - "id": 1579, + "id": 1504, "nodeType": "StructuredDocumentation", - "src": "3903:211:8", + "src": "3903:211:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1598, + "id": 1523, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", - "nameLocation": "4128:12:8", + "nameLocation": "4128:12:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1586, + "id": 1511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, + "id": 1506, "mutability": "mutable", "name": "target", - "nameLocation": "4158:6:8", + "nameLocation": "4158:6:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4150:14:8", + "scope": 1523, + "src": "4150:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5452,10 +5452,10 @@ "typeString": "address" }, "typeName": { - "id": 1580, + "id": 1505, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4150:7:8", + "src": "4150:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5466,13 +5466,13 @@ }, { "constant": false, - "id": 1583, + "id": 1508, "mutability": "mutable", "name": "data", - "nameLocation": "4187:4:8", + "nameLocation": "4187:4:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4174:17:8", + "scope": 1523, + "src": "4174:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5480,10 +5480,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1582, + "id": 1507, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4174:5:8", + "src": "4174:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5493,13 +5493,13 @@ }, { "constant": false, - "id": 1585, + "id": 1510, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "4215:12:8", + "nameLocation": "4215:12:7", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4201:26:8", + "scope": 1523, + "src": "4201:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5507,10 +5507,10 @@ "typeString": "string" }, "typeName": { - "id": 1584, + "id": 1509, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4201:6:8", + "src": "4201:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5519,21 +5519,21 @@ "visibility": "internal" } ], - "src": "4140:93:8" + "src": "4140:93:7" }, "returnParameters": { - "id": 1589, + "id": 1514, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1588, + "id": 1513, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1598, - "src": "4252:12:8", + "scope": 1523, + "src": "4252:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5541,10 +5541,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1587, + "id": 1512, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4252:5:8", + "src": "4252:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5553,54 +5553,54 @@ "visibility": "internal" } ], - "src": "4251:14:8" + "src": "4251:14:7" }, - "scope": 1838, - "src": "4119:223:8", + "scope": 1763, + "src": "4119:223:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1617, + "id": 1542, "nodeType": "Block", - "src": "4817:111:8", + "src": "4817:111:7", "statements": [ { "expression": { "arguments": [ { - "id": 1611, + "id": 1536, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "4856:6:8", + "referencedDeclaration": 1526, + "src": "4856:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1612, + "id": 1537, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "4864:4:8", + "referencedDeclaration": 1528, + "src": "4864:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1613, + "id": 1538, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "4870:5:8", + "referencedDeclaration": 1530, + "src": "4870:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5608,14 +5608,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 1614, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4877:43:8", + "src": "4877:43:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\"" @@ -5642,21 +5642,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 1610, + "id": 1535, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 1618, - 1662 + 1543, + 1587 ], - "referencedDeclaration": 1662, - "src": "4834:21:8", + "referencedDeclaration": 1587, + "src": "4834:21:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 1615, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, @@ -5665,46 +5665,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4834:87:8", + "src": "4834:87:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1609, - "id": 1616, + "functionReturnParameters": 1534, + "id": 1541, "nodeType": "Return", - "src": "4827:94:8" + "src": "4827:94:7" } ] }, "documentation": { - "id": 1599, + "id": 1524, "nodeType": "StructuredDocumentation", - "src": "4348:351:8", + "src": "4348:351:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 1618, + "id": 1543, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", - "nameLocation": "4713:21:8", + "nameLocation": "4713:21:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1606, + "id": 1531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1601, + "id": 1526, "mutability": "mutable", "name": "target", - "nameLocation": "4743:6:8", + "nameLocation": "4743:6:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4735:14:8", + "scope": 1543, + "src": "4735:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5712,10 +5712,10 @@ "typeString": "address" }, "typeName": { - "id": 1600, + "id": 1525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4735:7:8", + "src": "4735:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5726,13 +5726,13 @@ }, { "constant": false, - "id": 1603, + "id": 1528, "mutability": "mutable", "name": "data", - "nameLocation": "4764:4:8", + "nameLocation": "4764:4:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4751:17:8", + "scope": 1543, + "src": "4751:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5740,10 +5740,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1602, + "id": 1527, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4751:5:8", + "src": "4751:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5753,13 +5753,13 @@ }, { "constant": false, - "id": 1605, + "id": 1530, "mutability": "mutable", "name": "value", - "nameLocation": "4778:5:8", + "nameLocation": "4778:5:7", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4770:13:8", + "scope": 1543, + "src": "4770:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5767,10 +5767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1604, + "id": 1529, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4770:7:8", + "src": "4770:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5779,21 +5779,21 @@ "visibility": "internal" } ], - "src": "4734:50:8" + "src": "4734:50:7" }, "returnParameters": { - "id": 1609, + "id": 1534, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, + "id": 1533, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "4803:12:8", + "scope": 1543, + "src": "4803:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5801,10 +5801,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1607, + "id": 1532, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4803:5:8", + "src": "4803:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5813,19 +5813,19 @@ "visibility": "internal" } ], - "src": "4802:14:8" + "src": "4802:14:7" }, - "scope": 1838, - "src": "4704:224:8", + "scope": 1763, + "src": "4704:224:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1661, + "id": 1586, "nodeType": "Block", - "src": "5355:267:8", + "src": "5355:267:7", "statements": [ { "expression": { @@ -5835,7 +5835,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1639, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, @@ -5844,14 +5844,14 @@ "expression": { "arguments": [ { - "id": 1635, + "id": 1560, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5381:4:8", + "src": "5381:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } } @@ -5859,30 +5859,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AddressUpgradeable_$1838", + "typeIdentifier": "t_contract$_AddressUpgradeable_$1763", "typeString": "library AddressUpgradeable" } ], - "id": 1634, + "id": 1559, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:8", + "src": "5373:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1633, + "id": 1558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5373:7:8", + "src": "5373:7:7", "typeDescriptions": {} } }, - "id": 1636, + "id": 1561, "isConstant": false, "isLValue": false, "isPure": false, @@ -5891,22 +5891,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5373:13:8", + "src": "5373:13:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1637, + "id": 1562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5387:7:8", + "memberLocation": "5387:7:7", "memberName": "balance", "nodeType": "MemberAccess", - "src": "5373:21:8", + "src": "5373:21:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5915,18 +5915,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1638, + "id": 1563, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "5398:5:8", + "referencedDeclaration": 1550, + "src": "5398:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5373:30:8", + "src": "5373:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5934,14 +5934,14 @@ }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 1640, + "id": 1565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5405:40:8", + "src": "5405:40:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\"" @@ -5960,7 +5960,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 1632, + "id": 1557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5968,13 +5968,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5365:7:8", + "src": "5365:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1641, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -5983,32 +5983,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5365:81:8", + "src": "5365:81:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1642, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "5365:81:8" + "src": "5365:81:7" }, { "assignments": [ - 1644, - 1646 + 1569, + 1571 ], "declarations": [ { "constant": false, - "id": 1644, + "id": 1569, "mutability": "mutable", "name": "success", - "nameLocation": "5462:7:8", + "nameLocation": "5462:7:7", "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "5457:12:8", + "scope": 1586, + "src": "5457:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6016,10 +6016,10 @@ "typeString": "bool" }, "typeName": { - "id": 1643, + "id": 1568, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5457:4:8", + "src": "5457:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6029,13 +6029,13 @@ }, { "constant": false, - "id": 1646, + "id": 1571, "mutability": "mutable", "name": "returndata", - "nameLocation": "5484:10:8", + "nameLocation": "5484:10:7", "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "5471:23:8", + "scope": 1586, + "src": "5471:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6043,10 +6043,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1645, + "id": 1570, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5471:5:8", + "src": "5471:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6055,16 +6055,16 @@ "visibility": "internal" } ], - "id": 1653, + "id": 1578, "initialValue": { "arguments": [ { - "id": 1651, + "id": 1576, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "5524:4:8", + "referencedDeclaration": 1548, + "src": "5524:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6086,32 +6086,32 @@ } ], "expression": { - "id": 1647, + "id": 1572, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "5498:6:8", + "referencedDeclaration": 1546, + "src": "5498:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1648, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5505:4:8", + "memberLocation": "5505:4:7", "memberName": "call", "nodeType": "MemberAccess", - "src": "5498:11:8", + "src": "5498:11:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1650, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, @@ -6122,25 +6122,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 1649, + "id": 1574, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "5517:5:8", + "referencedDeclaration": 1550, + "src": "5517:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "5498:25:8", + "src": "5498:25:7", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 1652, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, @@ -6149,7 +6149,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5498:31:8", + "src": "5498:31:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -6157,54 +6157,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5456:73:8" + "src": "5456:73:7" }, { "expression": { "arguments": [ { - "id": 1655, + "id": 1580, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "5573:6:8", + "referencedDeclaration": 1546, + "src": "5573:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1656, + "id": 1581, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "5581:7:8", + "referencedDeclaration": 1569, + "src": "5581:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1657, + "id": 1582, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "5590:10:8", + "referencedDeclaration": 1571, + "src": "5590:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1658, + "id": 1583, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "5602:12:8", + "referencedDeclaration": 1552, + "src": "5602:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6230,18 +6230,18 @@ "typeString": "string memory" } ], - "id": 1654, + "id": 1579, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "5546:26:8", + "referencedDeclaration": 1718, + "src": "5546:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1659, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -6250,46 +6250,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5546:69:8", + "src": "5546:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1631, - "id": 1660, + "functionReturnParameters": 1556, + "id": 1585, "nodeType": "Return", - "src": "5539:76:8" + "src": "5539:76:7" } ] }, "documentation": { - "id": 1619, + "id": 1544, "nodeType": "StructuredDocumentation", - "src": "4934:237:8", + "src": "4934:237:7", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 1662, + "id": 1587, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", - "nameLocation": "5185:21:8", + "nameLocation": "5185:21:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1628, + "id": 1553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1621, + "id": 1546, "mutability": "mutable", "name": "target", - "nameLocation": "5224:6:8", + "nameLocation": "5224:6:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5216:14:8", + "scope": 1587, + "src": "5216:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6297,10 +6297,10 @@ "typeString": "address" }, "typeName": { - "id": 1620, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5216:7:8", + "src": "5216:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6311,13 +6311,13 @@ }, { "constant": false, - "id": 1623, + "id": 1548, "mutability": "mutable", "name": "data", - "nameLocation": "5253:4:8", + "nameLocation": "5253:4:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5240:17:8", + "scope": 1587, + "src": "5240:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6325,10 +6325,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1622, + "id": 1547, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5240:5:8", + "src": "5240:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6338,13 +6338,13 @@ }, { "constant": false, - "id": 1625, + "id": 1550, "mutability": "mutable", "name": "value", - "nameLocation": "5275:5:8", + "nameLocation": "5275:5:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5267:13:8", + "scope": 1587, + "src": "5267:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6352,10 +6352,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1624, + "id": 1549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5267:7:8", + "src": "5267:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6365,13 +6365,13 @@ }, { "constant": false, - "id": 1627, + "id": 1552, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "5304:12:8", + "nameLocation": "5304:12:7", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5290:26:8", + "scope": 1587, + "src": "5290:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6379,10 +6379,10 @@ "typeString": "string" }, "typeName": { - "id": 1626, + "id": 1551, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5290:6:8", + "src": "5290:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6391,21 +6391,21 @@ "visibility": "internal" } ], - "src": "5206:116:8" + "src": "5206:116:7" }, "returnParameters": { - "id": 1631, + "id": 1556, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1630, + "id": 1555, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1662, - "src": "5341:12:8", + "scope": 1587, + "src": "5341:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6413,10 +6413,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1629, + "id": 1554, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5341:5:8", + "src": "5341:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6425,42 +6425,42 @@ "visibility": "internal" } ], - "src": "5340:14:8" + "src": "5340:14:7" }, - "scope": 1838, - "src": "5176:446:8", + "scope": 1763, + "src": "5176:446:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1678, + "id": 1603, "nodeType": "Block", - "src": "5899:97:8", + "src": "5899:97:7", "statements": [ { "expression": { "arguments": [ { - "id": 1673, + "id": 1598, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "5935:6:8", + "referencedDeclaration": 1590, + "src": "5935:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1674, + "id": 1599, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "5943:4:8", + "referencedDeclaration": 1592, + "src": "5943:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6468,14 +6468,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 1675, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5949:39:8", + "src": "5949:39:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\"" @@ -6498,21 +6498,21 @@ "typeString": "literal_string \"Address: low-level static call failed\"" } ], - "id": 1672, + "id": 1597, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1679, - 1708 + 1604, + 1633 ], - "referencedDeclaration": 1708, - "src": "5916:18:8", + "referencedDeclaration": 1633, + "src": "5916:18:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1676, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -6521,46 +6521,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5916:73:8", + "src": "5916:73:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1671, - "id": 1677, + "functionReturnParameters": 1596, + "id": 1602, "nodeType": "Return", - "src": "5909:80:8" + "src": "5909:80:7" } ] }, "documentation": { - "id": 1663, + "id": 1588, "nodeType": "StructuredDocumentation", - "src": "5628:166:8", + "src": "5628:166:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1679, + "id": 1604, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", - "nameLocation": "5808:18:8", + "nameLocation": "5808:18:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1668, + "id": 1593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1665, + "id": 1590, "mutability": "mutable", "name": "target", - "nameLocation": "5835:6:8", + "nameLocation": "5835:6:7", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5827:14:8", + "scope": 1604, + "src": "5827:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6568,10 +6568,10 @@ "typeString": "address" }, "typeName": { - "id": 1664, + "id": 1589, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5827:7:8", + "src": "5827:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6582,13 +6582,13 @@ }, { "constant": false, - "id": 1667, + "id": 1592, "mutability": "mutable", "name": "data", - "nameLocation": "5856:4:8", + "nameLocation": "5856:4:7", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5843:17:8", + "scope": 1604, + "src": "5843:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6596,10 +6596,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1666, + "id": 1591, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5843:5:8", + "src": "5843:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6608,21 +6608,21 @@ "visibility": "internal" } ], - "src": "5826:35:8" + "src": "5826:35:7" }, "returnParameters": { - "id": 1671, + "id": 1596, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1670, + "id": 1595, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "5885:12:8", + "scope": 1604, + "src": "5885:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6630,10 +6630,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1669, + "id": 1594, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5885:5:8", + "src": "5885:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6642,35 +6642,35 @@ "visibility": "internal" } ], - "src": "5884:14:8" + "src": "5884:14:7" }, - "scope": 1838, - "src": "5799:197:8", + "scope": 1763, + "src": "5799:197:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1707, + "id": 1632, "nodeType": "Block", - "src": "6338:168:8", + "src": "6338:168:7", "statements": [ { "assignments": [ - 1692, - 1694 + 1617, + 1619 ], "declarations": [ { "constant": false, - "id": 1692, + "id": 1617, "mutability": "mutable", "name": "success", - "nameLocation": "6354:7:8", + "nameLocation": "6354:7:7", "nodeType": "VariableDeclaration", - "scope": 1707, - "src": "6349:12:8", + "scope": 1632, + "src": "6349:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6678,10 +6678,10 @@ "typeString": "bool" }, "typeName": { - "id": 1691, + "id": 1616, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6349:4:8", + "src": "6349:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6691,13 +6691,13 @@ }, { "constant": false, - "id": 1694, + "id": 1619, "mutability": "mutable", "name": "returndata", - "nameLocation": "6376:10:8", + "nameLocation": "6376:10:7", "nodeType": "VariableDeclaration", - "scope": 1707, - "src": "6363:23:8", + "scope": 1632, + "src": "6363:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6705,10 +6705,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1693, + "id": 1618, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6363:5:8", + "src": "6363:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6717,16 +6717,16 @@ "visibility": "internal" } ], - "id": 1699, + "id": 1624, "initialValue": { "arguments": [ { - "id": 1697, + "id": 1622, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "6408:4:8", + "referencedDeclaration": 1609, + "src": "6408:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6741,32 +6741,32 @@ } ], "expression": { - "id": 1695, + "id": 1620, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6390:6:8", + "referencedDeclaration": 1607, + "src": "6390:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1696, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6397:10:8", + "memberLocation": "6397:10:7", "memberName": "staticcall", "nodeType": "MemberAccess", - "src": "6390:17:8", + "src": "6390:17:7", "typeDescriptions": { "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, - "id": 1698, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -6775,7 +6775,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6390:23:8", + "src": "6390:23:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -6783,54 +6783,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6348:65:8" + "src": "6348:65:7" }, { "expression": { "arguments": [ { - "id": 1701, + "id": 1626, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6457:6:8", + "referencedDeclaration": 1607, + "src": "6457:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1702, + "id": 1627, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1692, - "src": "6465:7:8", + "referencedDeclaration": 1617, + "src": "6465:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1703, + "id": 1628, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1694, - "src": "6474:10:8", + "referencedDeclaration": 1619, + "src": "6474:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1704, + "id": 1629, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1686, - "src": "6486:12:8", + "referencedDeclaration": 1611, + "src": "6486:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6856,18 +6856,18 @@ "typeString": "string memory" } ], - "id": 1700, + "id": 1625, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "6430:26:8", + "referencedDeclaration": 1718, + "src": "6430:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1705, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, @@ -6876,46 +6876,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6430:69:8", + "src": "6430:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1690, - "id": 1706, + "functionReturnParameters": 1615, + "id": 1631, "nodeType": "Return", - "src": "6423:76:8" + "src": "6423:76:7" } ] }, "documentation": { - "id": 1680, + "id": 1605, "nodeType": "StructuredDocumentation", - "src": "6002:173:8", + "src": "6002:173:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, - "id": 1708, + "id": 1633, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", - "nameLocation": "6189:18:8", + "nameLocation": "6189:18:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1687, + "id": 1612, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1682, + "id": 1607, "mutability": "mutable", "name": "target", - "nameLocation": "6225:6:8", + "nameLocation": "6225:6:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6217:14:8", + "scope": 1633, + "src": "6217:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6923,10 +6923,10 @@ "typeString": "address" }, "typeName": { - "id": 1681, + "id": 1606, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6217:7:8", + "src": "6217:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6937,13 +6937,13 @@ }, { "constant": false, - "id": 1684, + "id": 1609, "mutability": "mutable", "name": "data", - "nameLocation": "6254:4:8", + "nameLocation": "6254:4:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6241:17:8", + "scope": 1633, + "src": "6241:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6951,10 +6951,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1683, + "id": 1608, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6241:5:8", + "src": "6241:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6964,13 +6964,13 @@ }, { "constant": false, - "id": 1686, + "id": 1611, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "6282:12:8", + "nameLocation": "6282:12:7", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6268:26:8", + "scope": 1633, + "src": "6268:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6978,10 +6978,10 @@ "typeString": "string" }, "typeName": { - "id": 1685, + "id": 1610, "name": "string", "nodeType": "ElementaryTypeName", - "src": "6268:6:8", + "src": "6268:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6990,21 +6990,21 @@ "visibility": "internal" } ], - "src": "6207:93:8" + "src": "6207:93:7" }, "returnParameters": { - "id": 1690, + "id": 1615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1689, + "id": 1614, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "6324:12:8", + "scope": 1633, + "src": "6324:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7012,10 +7012,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1688, + "id": 1613, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6324:5:8", + "src": "6324:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7024,42 +7024,42 @@ "visibility": "internal" } ], - "src": "6323:14:8" + "src": "6323:14:7" }, - "scope": 1838, - "src": "6180:326:8", + "scope": 1763, + "src": "6180:326:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1724, + "id": 1649, "nodeType": "Block", - "src": "6782:101:8", + "src": "6782:101:7", "statements": [ { "expression": { "arguments": [ { - "id": 1719, + "id": 1644, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "6820:6:8", + "referencedDeclaration": 1636, + "src": "6820:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1720, + "id": 1645, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1713, - "src": "6828:4:8", + "referencedDeclaration": 1638, + "src": "6828:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7067,14 +7067,14 @@ }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 1721, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6834:41:8", + "src": "6834:41:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\"" @@ -7097,21 +7097,21 @@ "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], - "id": 1718, + "id": 1643, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 1725, - 1754 + 1650, + 1679 ], - "referencedDeclaration": 1754, - "src": "6799:20:8", + "referencedDeclaration": 1679, + "src": "6799:20:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 1722, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, @@ -7120,46 +7120,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6799:77:8", + "src": "6799:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1717, - "id": 1723, + "functionReturnParameters": 1642, + "id": 1648, "nodeType": "Return", - "src": "6792:84:8" + "src": "6792:84:7" } ] }, "documentation": { - "id": 1709, + "id": 1634, "nodeType": "StructuredDocumentation", - "src": "6512:168:8", + "src": "6512:168:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1725, + "id": 1650, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", - "nameLocation": "6694:20:8", + "nameLocation": "6694:20:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1714, + "id": 1639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1711, + "id": 1636, "mutability": "mutable", "name": "target", - "nameLocation": "6723:6:8", + "nameLocation": "6723:6:7", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6715:14:8", + "scope": 1650, + "src": "6715:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7167,10 +7167,10 @@ "typeString": "address" }, "typeName": { - "id": 1710, + "id": 1635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6715:7:8", + "src": "6715:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7181,13 +7181,13 @@ }, { "constant": false, - "id": 1713, + "id": 1638, "mutability": "mutable", "name": "data", - "nameLocation": "6744:4:8", + "nameLocation": "6744:4:7", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6731:17:8", + "scope": 1650, + "src": "6731:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7195,10 +7195,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1712, + "id": 1637, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6731:5:8", + "src": "6731:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7207,21 +7207,21 @@ "visibility": "internal" } ], - "src": "6714:35:8" + "src": "6714:35:7" }, "returnParameters": { - "id": 1717, + "id": 1642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1716, + "id": 1641, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1725, - "src": "6768:12:8", + "scope": 1650, + "src": "6768:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7229,10 +7229,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1715, + "id": 1640, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6768:5:8", + "src": "6768:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7241,35 +7241,35 @@ "visibility": "internal" } ], - "src": "6767:14:8" + "src": "6767:14:7" }, - "scope": 1838, - "src": "6685:198:8", + "scope": 1763, + "src": "6685:198:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1753, + "id": 1678, "nodeType": "Block", - "src": "7224:170:8", + "src": "7224:170:7", "statements": [ { "assignments": [ - 1738, - 1740 + 1663, + 1665 ], "declarations": [ { "constant": false, - "id": 1738, + "id": 1663, "mutability": "mutable", "name": "success", - "nameLocation": "7240:7:8", + "nameLocation": "7240:7:7", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "7235:12:8", + "scope": 1678, + "src": "7235:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7277,10 +7277,10 @@ "typeString": "bool" }, "typeName": { - "id": 1737, + "id": 1662, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7235:4:8", + "src": "7235:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7290,13 +7290,13 @@ }, { "constant": false, - "id": 1740, + "id": 1665, "mutability": "mutable", "name": "returndata", - "nameLocation": "7262:10:8", + "nameLocation": "7262:10:7", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "7249:23:8", + "scope": 1678, + "src": "7249:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7304,10 +7304,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1739, + "id": 1664, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7249:5:8", + "src": "7249:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7316,16 +7316,16 @@ "visibility": "internal" } ], - "id": 1745, + "id": 1670, "initialValue": { "arguments": [ { - "id": 1743, + "id": 1668, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "7296:4:8", + "referencedDeclaration": 1655, + "src": "7296:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7340,32 +7340,32 @@ } ], "expression": { - "id": 1741, + "id": 1666, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7276:6:8", + "referencedDeclaration": 1653, + "src": "7276:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1742, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7283:12:8", + "memberLocation": "7283:12:7", "memberName": "delegatecall", "nodeType": "MemberAccess", - "src": "7276:19:8", + "src": "7276:19:7", "typeDescriptions": { "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, - "id": 1744, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": false, @@ -7374,7 +7374,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7276:25:8", + "src": "7276:25:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -7382,54 +7382,54 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7234:67:8" + "src": "7234:67:7" }, { "expression": { "arguments": [ { - "id": 1747, + "id": 1672, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7345:6:8", + "referencedDeclaration": 1653, + "src": "7345:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1748, + "id": 1673, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "7353:7:8", + "referencedDeclaration": 1663, + "src": "7353:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 1749, + "id": 1674, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "7362:10:8", + "referencedDeclaration": 1665, + "src": "7362:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1750, + "id": 1675, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7374:12:8", + "referencedDeclaration": 1657, + "src": "7374:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7455,18 +7455,18 @@ "typeString": "string memory" } ], - "id": 1746, + "id": 1671, "name": "verifyCallResultFromTarget", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "7318:26:8", + "referencedDeclaration": 1718, + "src": "7318:26:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" } }, - "id": 1751, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -7475,46 +7475,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7318:69:8", + "src": "7318:69:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1736, - "id": 1752, + "functionReturnParameters": 1661, + "id": 1677, "nodeType": "Return", - "src": "7311:76:8" + "src": "7311:76:7" } ] }, "documentation": { - "id": 1726, + "id": 1651, "nodeType": "StructuredDocumentation", - "src": "6889:175:8", + "src": "6889:175:7", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, - "id": 1754, + "id": 1679, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", - "nameLocation": "7078:20:8", + "nameLocation": "7078:20:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1733, + "id": 1658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1728, + "id": 1653, "mutability": "mutable", "name": "target", - "nameLocation": "7116:6:8", + "nameLocation": "7116:6:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7108:14:8", + "scope": 1679, + "src": "7108:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7522,10 +7522,10 @@ "typeString": "address" }, "typeName": { - "id": 1727, + "id": 1652, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7108:7:8", + "src": "7108:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7536,13 +7536,13 @@ }, { "constant": false, - "id": 1730, + "id": 1655, "mutability": "mutable", "name": "data", - "nameLocation": "7145:4:8", + "nameLocation": "7145:4:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7132:17:8", + "scope": 1679, + "src": "7132:17:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7550,10 +7550,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1729, + "id": 1654, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7132:5:8", + "src": "7132:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7563,13 +7563,13 @@ }, { "constant": false, - "id": 1732, + "id": 1657, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "7173:12:8", + "nameLocation": "7173:12:7", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7159:26:8", + "scope": 1679, + "src": "7159:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7577,10 +7577,10 @@ "typeString": "string" }, "typeName": { - "id": 1731, + "id": 1656, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7159:6:8", + "src": "7159:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7589,21 +7589,21 @@ "visibility": "internal" } ], - "src": "7098:93:8" + "src": "7098:93:7" }, "returnParameters": { - "id": 1736, + "id": 1661, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1735, + "id": 1660, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1754, - "src": "7210:12:8", + "scope": 1679, + "src": "7210:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7611,10 +7611,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1734, + "id": 1659, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7210:5:8", + "src": "7210:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7623,60 +7623,60 @@ "visibility": "internal" } ], - "src": "7209:14:8" + "src": "7209:14:7" }, - "scope": 1838, - "src": "7069:325:8", + "scope": 1763, + "src": "7069:325:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1792, + "id": 1717, "nodeType": "Block", - "src": "7876:434:8", + "src": "7876:434:7", "statements": [ { "condition": { - "id": 1768, + "id": 1693, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "7890:7:8", + "referencedDeclaration": 1684, + "src": "7890:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1790, + "id": 1715, "nodeType": "Block", - "src": "8246:58:8", + "src": "8246:58:7", "statements": [ { "expression": { "arguments": [ { - "id": 1786, + "id": 1711, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "8268:10:8", + "referencedDeclaration": 1686, + "src": "8268:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1787, + "id": 1712, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "8280:12:8", + "referencedDeclaration": 1688, + "src": "8280:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7694,18 +7694,18 @@ "typeString": "string memory" } ], - "id": 1785, + "id": 1710, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "8260:7:8", + "referencedDeclaration": 1762, + "src": "8260:7:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1788, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, @@ -7714,26 +7714,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8260:33:8", + "src": "8260:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1789, + "id": 1714, "nodeType": "ExpressionStatement", - "src": "8260:33:8" + "src": "8260:33:7" } ] }, - "id": 1791, + "id": 1716, "nodeType": "IfStatement", - "src": "7886:418:8", + "src": "7886:418:7", "trueBody": { - "id": 1784, + "id": 1709, "nodeType": "Block", - "src": "7899:341:8", + "src": "7899:341:7", "statements": [ { "condition": { @@ -7741,33 +7741,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1772, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1769, + "id": 1694, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "7917:10:8", + "referencedDeclaration": 1686, + "src": "7917:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1770, + "id": 1695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7928:6:8", + "memberLocation": "7928:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "7917:17:8", + "src": "7917:17:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7777,33 +7777,33 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1771, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7938:1:8", + "src": "7938:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "7917:22:8", + "src": "7917:22:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1781, + "id": 1706, "nodeType": "IfStatement", - "src": "7913:286:8", + "src": "7913:286:7", "trueBody": { - "id": 1780, + "id": 1705, "nodeType": "Block", - "src": "7941:258:8", + "src": "7941:258:7", "statements": [ { "expression": { @@ -7811,12 +7811,12 @@ { "arguments": [ { - "id": 1775, + "id": 1700, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1757, - "src": "8143:6:8", + "referencedDeclaration": 1682, + "src": "8143:6:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7830,18 +7830,18 @@ "typeString": "address" } ], - "id": 1774, + "id": 1699, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "8132:10:8", + "referencedDeclaration": 1451, + "src": "8132:10:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1776, + "id": 1701, "isConstant": false, "isLValue": false, "isPure": false, @@ -7850,7 +7850,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8132:18:8", + "src": "8132:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7859,14 +7859,14 @@ }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 1777, + "id": 1702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8152:31:8", + "src": "8152:31:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\"" @@ -7885,7 +7885,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 1773, + "id": 1698, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7893,13 +7893,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8124:7:8", + "src": "8124:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1778, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -7908,37 +7908,37 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8124:60:8", + "src": "8124:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1779, + "id": 1704, "nodeType": "ExpressionStatement", - "src": "8124:60:8" + "src": "8124:60:7" } ] } }, { "expression": { - "id": 1782, + "id": 1707, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "8219:10:8", + "referencedDeclaration": 1686, + "src": "8219:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1767, - "id": 1783, + "functionReturnParameters": 1692, + "id": 1708, "nodeType": "Return", - "src": "8212:17:8" + "src": "8212:17:7" } ] } @@ -7946,31 +7946,31 @@ ] }, "documentation": { - "id": 1755, + "id": 1680, "nodeType": "StructuredDocumentation", - "src": "7400:277:8", + "src": "7400:277:7", "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" }, - "id": 1793, + "id": 1718, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResultFromTarget", - "nameLocation": "7691:26:8", + "nameLocation": "7691:26:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1764, + "id": 1689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1757, + "id": 1682, "mutability": "mutable", "name": "target", - "nameLocation": "7735:6:8", + "nameLocation": "7735:6:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7727:14:8", + "scope": 1718, + "src": "7727:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7978,10 +7978,10 @@ "typeString": "address" }, "typeName": { - "id": 1756, + "id": 1681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7727:7:8", + "src": "7727:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7992,13 +7992,13 @@ }, { "constant": false, - "id": 1759, + "id": 1684, "mutability": "mutable", "name": "success", - "nameLocation": "7756:7:8", + "nameLocation": "7756:7:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7751:12:8", + "scope": 1718, + "src": "7751:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8006,10 +8006,10 @@ "typeString": "bool" }, "typeName": { - "id": 1758, + "id": 1683, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7751:4:8", + "src": "7751:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8019,13 +8019,13 @@ }, { "constant": false, - "id": 1761, + "id": 1686, "mutability": "mutable", "name": "returndata", - "nameLocation": "7786:10:8", + "nameLocation": "7786:10:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7773:23:8", + "scope": 1718, + "src": "7773:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8033,10 +8033,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1760, + "id": 1685, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7773:5:8", + "src": "7773:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8046,13 +8046,13 @@ }, { "constant": false, - "id": 1763, + "id": 1688, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "7820:12:8", + "nameLocation": "7820:12:7", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7806:26:8", + "scope": 1718, + "src": "7806:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8060,10 +8060,10 @@ "typeString": "string" }, "typeName": { - "id": 1762, + "id": 1687, "name": "string", "nodeType": "ElementaryTypeName", - "src": "7806:6:8", + "src": "7806:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8072,21 +8072,21 @@ "visibility": "internal" } ], - "src": "7717:121:8" + "src": "7717:121:7" }, "returnParameters": { - "id": 1767, + "id": 1692, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1766, + "id": 1691, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "7862:12:8", + "scope": 1718, + "src": "7862:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8094,10 +8094,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1765, + "id": 1690, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7862:5:8", + "src": "7862:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8106,60 +8106,60 @@ "visibility": "internal" } ], - "src": "7861:14:8" + "src": "7861:14:7" }, - "scope": 1838, - "src": "7682:628:8", + "scope": 1763, + "src": "7682:628:7", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1816, + "id": 1741, "nodeType": "Block", - "src": "8691:135:8", + "src": "8691:135:7", "statements": [ { "condition": { - "id": 1805, + "id": 1730, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "8705:7:8", + "referencedDeclaration": 1721, + "src": "8705:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1814, + "id": 1739, "nodeType": "Block", - "src": "8762:58:8", + "src": "8762:58:7", "statements": [ { "expression": { "arguments": [ { - "id": 1810, + "id": 1735, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "8784:10:8", + "referencedDeclaration": 1723, + "src": "8784:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 1811, + "id": 1736, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "8796:12:8", + "referencedDeclaration": 1725, + "src": "8796:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8177,18 +8177,18 @@ "typeString": "string memory" } ], - "id": 1809, + "id": 1734, "name": "_revert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "8776:7:8", + "referencedDeclaration": 1762, + "src": "8776:7:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes memory,string memory) pure" } }, - "id": 1812, + "id": 1737, "isConstant": false, "isLValue": false, "isPure": false, @@ -8197,44 +8197,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8776:33:8", + "src": "8776:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1813, + "id": 1738, "nodeType": "ExpressionStatement", - "src": "8776:33:8" + "src": "8776:33:7" } ] }, - "id": 1815, + "id": 1740, "nodeType": "IfStatement", - "src": "8701:119:8", + "src": "8701:119:7", "trueBody": { - "id": 1808, + "id": 1733, "nodeType": "Block", - "src": "8714:42:8", + "src": "8714:42:7", "statements": [ { "expression": { - "id": 1806, + "id": 1731, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "8735:10:8", + "referencedDeclaration": 1723, + "src": "8735:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 1804, - "id": 1807, + "functionReturnParameters": 1729, + "id": 1732, "nodeType": "Return", - "src": "8728:17:8" + "src": "8728:17:7" } ] } @@ -8242,31 +8242,31 @@ ] }, "documentation": { - "id": 1794, + "id": 1719, "nodeType": "StructuredDocumentation", - "src": "8316:210:8", + "src": "8316:210:7", "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" }, - "id": 1817, + "id": 1742, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResult", - "nameLocation": "8540:16:8", + "nameLocation": "8540:16:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1801, + "id": 1726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 1721, "mutability": "mutable", "name": "success", - "nameLocation": "8571:7:8", + "nameLocation": "8571:7:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8566:12:8", + "scope": 1742, + "src": "8566:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8274,10 +8274,10 @@ "typeString": "bool" }, "typeName": { - "id": 1795, + "id": 1720, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8566:4:8", + "src": "8566:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8287,13 +8287,13 @@ }, { "constant": false, - "id": 1798, + "id": 1723, "mutability": "mutable", "name": "returndata", - "nameLocation": "8601:10:8", + "nameLocation": "8601:10:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8588:23:8", + "scope": 1742, + "src": "8588:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8301,10 +8301,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1797, + "id": 1722, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8588:5:8", + "src": "8588:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8314,13 +8314,13 @@ }, { "constant": false, - "id": 1800, + "id": 1725, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "8635:12:8", + "nameLocation": "8635:12:7", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8621:26:8", + "scope": 1742, + "src": "8621:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8328,10 +8328,10 @@ "typeString": "string" }, "typeName": { - "id": 1799, + "id": 1724, "name": "string", "nodeType": "ElementaryTypeName", - "src": "8621:6:8", + "src": "8621:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8340,21 +8340,21 @@ "visibility": "internal" } ], - "src": "8556:97:8" + "src": "8556:97:7" }, "returnParameters": { - "id": 1804, + "id": 1729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 1728, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "8677:12:8", + "scope": 1742, + "src": "8677:12:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8362,10 +8362,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1802, + "id": 1727, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8677:5:8", + "src": "8677:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8374,19 +8374,19 @@ "visibility": "internal" } ], - "src": "8676:14:8" + "src": "8676:14:7" }, - "scope": 1838, - "src": "8531:295:8", + "scope": 1763, + "src": "8531:295:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1836, + "id": 1761, "nodeType": "Block", - "src": "8915:457:8", + "src": "8915:457:7", "statements": [ { "condition": { @@ -8394,33 +8394,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1827, + "id": 1752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1824, + "id": 1749, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "8991:10:8", + "referencedDeclaration": 1744, + "src": "8991:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1825, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9002:6:8", + "memberLocation": "9002:6:7", "memberName": "length", "nodeType": "MemberAccess", - "src": "8991:17:8", + "src": "8991:17:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8430,41 +8430,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1826, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9011:1:8", + "src": "9011:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8991:21:8", + "src": "8991:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1834, + "id": 1759, "nodeType": "Block", - "src": "9321:45:8", + "src": "9321:45:7", "statements": [ { "expression": { "arguments": [ { - "id": 1831, + "id": 1756, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "9342:12:8", + "referencedDeclaration": 1746, + "src": "9342:12:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8478,7 +8478,7 @@ "typeString": "string memory" } ], - "id": 1830, + "id": 1755, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8486,13 +8486,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "9335:6:8", + "src": "9335:6:7", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1832, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": false, @@ -8501,56 +8501,56 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9335:20:8", + "src": "9335:20:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1833, + "id": 1758, "nodeType": "ExpressionStatement", - "src": "9335:20:8" + "src": "9335:20:7" } ] }, - "id": 1835, + "id": 1760, "nodeType": "IfStatement", - "src": "8987:379:8", + "src": "8987:379:7", "trueBody": { - "id": 1829, + "id": 1754, "nodeType": "Block", - "src": "9014:301:8", + "src": "9014:301:7", "statements": [ { "AST": { "nodeType": "YulBlock", - "src": "9172:133:8", + "src": "9172:133:7", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9190:40:8", + "src": "9190:40:7", "value": { "arguments": [ { "name": "returndata", "nodeType": "YulIdentifier", - "src": "9219:10:8" + "src": "9219:10:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "9213:5:8" + "src": "9213:5:7" }, "nodeType": "YulFunctionCall", - "src": "9213:17:8" + "src": "9213:17:7" }, "variables": [ { "name": "returndata_size", "nodeType": "YulTypedName", - "src": "9194:15:8", + "src": "9194:15:7", "type": "" } ] @@ -8563,40 +8563,40 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9258:2:8", + "src": "9258:2:7", "type": "", "value": "32" }, { "name": "returndata", "nodeType": "YulIdentifier", - "src": "9262:10:8" + "src": "9262:10:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9254:3:8" + "src": "9254:3:7" }, "nodeType": "YulFunctionCall", - "src": "9254:19:8" + "src": "9254:19:7" }, { "name": "returndata_size", "nodeType": "YulIdentifier", - "src": "9275:15:8" + "src": "9275:15:7" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9247:6:8" + "src": "9247:6:7" }, "nodeType": "YulFunctionCall", - "src": "9247:44:8" + "src": "9247:44:7" }, "nodeType": "YulExpressionStatement", - "src": "9247:44:8" + "src": "9247:44:7" } ] }, @@ -8604,49 +8604,49 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 1819, + "declaration": 1744, "isOffset": false, "isSlot": false, - "src": "9219:10:8", + "src": "9219:10:7", "valueSize": 1 }, { - "declaration": 1819, + "declaration": 1744, "isOffset": false, "isSlot": false, - "src": "9262:10:8", + "src": "9262:10:7", "valueSize": 1 } ], - "id": 1828, + "id": 1753, "nodeType": "InlineAssembly", - "src": "9163:142:8" + "src": "9163:142:7" } ] } } ] }, - "id": 1837, + "id": 1762, "implemented": true, "kind": "function", "modifiers": [], "name": "_revert", - "nameLocation": "8841:7:8", + "nameLocation": "8841:7:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 1822, + "id": 1747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1819, + "id": 1744, "mutability": "mutable", "name": "returndata", - "nameLocation": "8862:10:8", + "nameLocation": "8862:10:7", "nodeType": "VariableDeclaration", - "scope": 1837, - "src": "8849:23:8", + "scope": 1762, + "src": "8849:23:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8654,10 +8654,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1818, + "id": 1743, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8849:5:8", + "src": "8849:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8667,13 +8667,13 @@ }, { "constant": false, - "id": 1821, + "id": 1746, "mutability": "mutable", "name": "errorMessage", - "nameLocation": "8888:12:8", + "nameLocation": "8888:12:7", "nodeType": "VariableDeclaration", - "scope": 1837, - "src": "8874:26:8", + "scope": 1762, + "src": "8874:26:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8681,10 +8681,10 @@ "typeString": "string" }, "typeName": { - "id": 1820, + "id": 1745, "name": "string", "nodeType": "ElementaryTypeName", - "src": "8874:6:8", + "src": "8874:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8693,27 +8693,27 @@ "visibility": "internal" } ], - "src": "8848:53:8" + "src": "8848:53:7" }, "returnParameters": { - "id": 1823, + "id": 1748, "nodeType": "ParameterList", "parameters": [], - "src": "8915:0:8" + "src": "8915:0:7" }, - "scope": 1838, - "src": "8832:540:8", + "scope": 1763, + "src": "8832:540:7", "stateMutability": "pure", "virtual": false, "visibility": "private" } ], - "scope": 1839, - "src": "194:9180:8", + "scope": 1764, + "src": "194:9180:7", "usedErrors": [] } ], - "src": "101:9274:8" + "src": "101:9274:7" }, "compiler": { "name": "solc", @@ -8721,5 +8721,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.260Z" + "updatedAt": "2024-07-04T18:51:17.147Z" } \ No newline at end of file diff --git a/build/contracts/ContextUpgradeable.json b/build/contracts/ContextUpgradeable.json index 981c686..cbe6ba1 100644 --- a/build/contracts/ContextUpgradeable.json +++ b/build/contracts/ContextUpgradeable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ] }, - "id": 1890, + "id": 1815, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1840, + "id": 1765, "literals": [ "solidity", "^", @@ -44,26 +44,26 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "101:23:9" + "src": "101:23:8" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1842, + "id": 1767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1890, - "sourceUnit": 1381, - "src": "125:63:9", + "scope": 1815, + "sourceUnit": 1306, + "src": "125:63:8", "symbolAliases": [ { "foreign": { - "id": 1841, + "id": 1766, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "133:13:9", + "referencedDeclaration": 1305, + "src": "133:13:8", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -76,204 +76,204 @@ "baseContracts": [ { "baseName": { - "id": 1844, + "id": 1769, "name": "Initializable", "nameLocations": [ - "727:13:9" + "727:13:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "727:13:9" + "referencedDeclaration": 1305, + "src": "727:13:8" }, - "id": 1845, + "id": 1770, "nodeType": "InheritanceSpecifier", - "src": "727:13:9" + "src": "727:13:8" } ], "canonicalName": "ContextUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1843, + "id": 1768, "nodeType": "StructuredDocumentation", - "src": "190:496:9", + "src": "190:496:8", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1889, + "id": 1814, "linearizedBaseContracts": [ - 1889, - 1380 + 1814, + 1305 ], "name": "ContextUpgradeable", - "nameLocation": "705:18:9", + "nameLocation": "705:18:8", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1850, + "id": 1775, "nodeType": "Block", - "src": "799:7:9", + "src": "799:7:8", "statements": [] }, - "id": 1851, + "id": 1776, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1848, + "id": 1773, "kind": "modifierInvocation", "modifierName": { - "id": 1847, + "id": 1772, "name": "onlyInitializing", "nameLocations": [ - "782:16:9" + "782:16:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "782:16:9" + "referencedDeclaration": 1250, + "src": "782:16:8" }, "nodeType": "ModifierInvocation", - "src": "782:16:9" + "src": "782:16:8" } ], "name": "__Context_init", - "nameLocation": "756:14:9", + "nameLocation": "756:14:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1846, + "id": 1771, "nodeType": "ParameterList", "parameters": [], - "src": "770:2:9" + "src": "770:2:8" }, "returnParameters": { - "id": 1849, + "id": 1774, "nodeType": "ParameterList", "parameters": [], - "src": "799:0:9" + "src": "799:0:8" }, - "scope": 1889, - "src": "747:59:9", + "scope": 1814, + "src": "747:59:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1856, + "id": 1781, "nodeType": "Block", - "src": "874:7:9", + "src": "874:7:8", "statements": [] }, - "id": 1857, + "id": 1782, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1854, + "id": 1779, "kind": "modifierInvocation", "modifierName": { - "id": 1853, + "id": 1778, "name": "onlyInitializing", "nameLocations": [ - "857:16:9" + "857:16:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "857:16:9" + "referencedDeclaration": 1250, + "src": "857:16:8" }, "nodeType": "ModifierInvocation", - "src": "857:16:9" + "src": "857:16:8" } ], "name": "__Context_init_unchained", - "nameLocation": "821:24:9", + "nameLocation": "821:24:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1852, + "id": 1777, "nodeType": "ParameterList", "parameters": [], - "src": "845:2:9" + "src": "845:2:8" }, "returnParameters": { - "id": 1855, + "id": 1780, "nodeType": "ParameterList", "parameters": [], - "src": "874:0:9" + "src": "874:0:8" }, - "scope": 1889, - "src": "812:69:9", + "scope": 1814, + "src": "812:69:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1865, + "id": 1790, "nodeType": "Block", - "src": "948:34:9", + "src": "948:34:8", "statements": [ { "expression": { "expression": { - "id": 1862, + "id": 1787, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "965:3:9", + "src": "965:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1863, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "969:6:9", + "memberLocation": "969:6:8", "memberName": "sender", "nodeType": "MemberAccess", - "src": "965:10:9", + "src": "965:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1861, - "id": 1864, + "functionReturnParameters": 1786, + "id": 1789, "nodeType": "Return", - "src": "958:17:9" + "src": "958:17:8" } ] }, - "id": 1866, + "id": 1791, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", - "nameLocation": "895:10:9", + "nameLocation": "895:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1858, + "id": 1783, "nodeType": "ParameterList", "parameters": [], - "src": "905:2:9" + "src": "905:2:8" }, "returnParameters": { - "id": 1861, + "id": 1786, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1860, + "id": 1785, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1866, - "src": "939:7:9", + "scope": 1791, + "src": "939:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -281,10 +281,10 @@ "typeString": "address" }, "typeName": { - "id": 1859, + "id": 1784, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:9", + "src": "939:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -294,81 +294,81 @@ "visibility": "internal" } ], - "src": "938:9:9" + "src": "938:9:8" }, - "scope": 1889, - "src": "886:96:9", + "scope": 1814, + "src": "886:96:8", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1874, + "id": 1799, "nodeType": "Block", - "src": "1055:32:9", + "src": "1055:32:8", "statements": [ { "expression": { "expression": { - "id": 1871, + "id": 1796, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "1072:3:9", + "src": "1072:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1872, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1076:4:9", + "memberLocation": "1076:4:8", "memberName": "data", "nodeType": "MemberAccess", - "src": "1072:8:9", + "src": "1072:8:8", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "functionReturnParameters": 1870, - "id": 1873, + "functionReturnParameters": 1795, + "id": 1798, "nodeType": "Return", - "src": "1065:15:9" + "src": "1065:15:8" } ] }, - "id": 1875, + "id": 1800, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", - "nameLocation": "997:8:9", + "nameLocation": "997:8:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1867, + "id": 1792, "nodeType": "ParameterList", "parameters": [], - "src": "1005:2:9" + "src": "1005:2:8" }, "returnParameters": { - "id": 1870, + "id": 1795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1869, + "id": 1794, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "1039:14:9", + "scope": 1800, + "src": "1039:14:8", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -376,10 +376,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1868, + "id": 1793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1039:5:9", + "src": "1039:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -388,70 +388,70 @@ "visibility": "internal" } ], - "src": "1038:16:9" + "src": "1038:16:8" }, - "scope": 1889, - "src": "988:99:9", + "scope": 1814, + "src": "988:99:8", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1882, + "id": 1807, "nodeType": "Block", - "src": "1165:25:9", + "src": "1165:25:8", "statements": [ { "expression": { "hexValue": "30", - "id": 1880, + "id": 1805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1182:1:9", + "src": "1182:1:8", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 1879, - "id": 1881, + "functionReturnParameters": 1804, + "id": 1806, "nodeType": "Return", - "src": "1175:8:9" + "src": "1175:8:8" } ] }, - "id": 1883, + "id": 1808, "implemented": true, "kind": "function", "modifiers": [], "name": "_contextSuffixLength", - "nameLocation": "1102:20:9", + "nameLocation": "1102:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1876, + "id": 1801, "nodeType": "ParameterList", "parameters": [], - "src": "1122:2:9" + "src": "1122:2:8" }, "returnParameters": { - "id": 1879, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1878, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1883, - "src": "1156:7:9", + "scope": 1808, + "src": "1156:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -459,10 +459,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1877, + "id": 1802, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1156:7:9", + "src": "1156:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -471,10 +471,10 @@ "visibility": "internal" } ], - "src": "1155:9:9" + "src": "1155:9:8" }, - "scope": 1889, - "src": "1093:97:9", + "scope": 1814, + "src": "1093:97:8", "stateMutability": "view", "virtual": true, "visibility": "internal" @@ -482,18 +482,18 @@ { "constant": false, "documentation": { - "id": 1884, + "id": 1809, "nodeType": "StructuredDocumentation", - "src": "1196:254:9", + "src": "1196:254:8", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1888, + "id": 1813, "mutability": "mutable", "name": "__gap", - "nameLocation": "1475:5:9", + "nameLocation": "1475:5:8", "nodeType": "VariableDeclaration", - "scope": 1889, - "src": "1455:25:9", + "scope": 1814, + "src": "1455:25:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -502,26 +502,26 @@ }, "typeName": { "baseType": { - "id": 1885, + "id": 1810, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1455:7:9", + "src": "1455:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1887, + "id": 1812, "length": { "hexValue": "3530", - "id": 1886, + "id": 1811, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1463:2:9", + "src": "1463:2:8", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -529,7 +529,7 @@ "value": "50" }, "nodeType": "ArrayTypeName", - "src": "1455:11:9", + "src": "1455:11:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]" @@ -538,29 +538,29 @@ "visibility": "private" } ], - "scope": 1890, - "src": "687:796:9", + "scope": 1815, + "src": "687:796:8", "usedErrors": [] } ], - "src": "101:1383:9" + "src": "101:1383:8" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ] }, - "id": 1890, + "id": 1815, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1840, + "id": 1765, "literals": [ "solidity", "^", @@ -568,26 +568,26 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "101:23:9" + "src": "101:23:8" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1842, + "id": 1767, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1890, - "sourceUnit": 1381, - "src": "125:63:9", + "scope": 1815, + "sourceUnit": 1306, + "src": "125:63:8", "symbolAliases": [ { "foreign": { - "id": 1841, + "id": 1766, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "133:13:9", + "referencedDeclaration": 1305, + "src": "133:13:8", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -600,204 +600,204 @@ "baseContracts": [ { "baseName": { - "id": 1844, + "id": 1769, "name": "Initializable", "nameLocations": [ - "727:13:9" + "727:13:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "727:13:9" + "referencedDeclaration": 1305, + "src": "727:13:8" }, - "id": 1845, + "id": 1770, "nodeType": "InheritanceSpecifier", - "src": "727:13:9" + "src": "727:13:8" } ], "canonicalName": "ContextUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1843, + "id": 1768, "nodeType": "StructuredDocumentation", - "src": "190:496:9", + "src": "190:496:8", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, - "id": 1889, + "id": 1814, "linearizedBaseContracts": [ - 1889, - 1380 + 1814, + 1305 ], "name": "ContextUpgradeable", - "nameLocation": "705:18:9", + "nameLocation": "705:18:8", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1850, + "id": 1775, "nodeType": "Block", - "src": "799:7:9", + "src": "799:7:8", "statements": [] }, - "id": 1851, + "id": 1776, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1848, + "id": 1773, "kind": "modifierInvocation", "modifierName": { - "id": 1847, + "id": 1772, "name": "onlyInitializing", "nameLocations": [ - "782:16:9" + "782:16:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "782:16:9" + "referencedDeclaration": 1250, + "src": "782:16:8" }, "nodeType": "ModifierInvocation", - "src": "782:16:9" + "src": "782:16:8" } ], "name": "__Context_init", - "nameLocation": "756:14:9", + "nameLocation": "756:14:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1846, + "id": 1771, "nodeType": "ParameterList", "parameters": [], - "src": "770:2:9" + "src": "770:2:8" }, "returnParameters": { - "id": 1849, + "id": 1774, "nodeType": "ParameterList", "parameters": [], - "src": "799:0:9" + "src": "799:0:8" }, - "scope": 1889, - "src": "747:59:9", + "scope": 1814, + "src": "747:59:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1856, + "id": 1781, "nodeType": "Block", - "src": "874:7:9", + "src": "874:7:8", "statements": [] }, - "id": 1857, + "id": 1782, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1854, + "id": 1779, "kind": "modifierInvocation", "modifierName": { - "id": 1853, + "id": 1778, "name": "onlyInitializing", "nameLocations": [ - "857:16:9" + "857:16:8" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "857:16:9" + "referencedDeclaration": 1250, + "src": "857:16:8" }, "nodeType": "ModifierInvocation", - "src": "857:16:9" + "src": "857:16:8" } ], "name": "__Context_init_unchained", - "nameLocation": "821:24:9", + "nameLocation": "821:24:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1852, + "id": 1777, "nodeType": "ParameterList", "parameters": [], - "src": "845:2:9" + "src": "845:2:8" }, "returnParameters": { - "id": 1855, + "id": 1780, "nodeType": "ParameterList", "parameters": [], - "src": "874:0:9" + "src": "874:0:8" }, - "scope": 1889, - "src": "812:69:9", + "scope": 1814, + "src": "812:69:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1865, + "id": 1790, "nodeType": "Block", - "src": "948:34:9", + "src": "948:34:8", "statements": [ { "expression": { "expression": { - "id": 1862, + "id": 1787, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "965:3:9", + "src": "965:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1863, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "969:6:9", + "memberLocation": "969:6:8", "memberName": "sender", "nodeType": "MemberAccess", - "src": "965:10:9", + "src": "965:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1861, - "id": 1864, + "functionReturnParameters": 1786, + "id": 1789, "nodeType": "Return", - "src": "958:17:9" + "src": "958:17:8" } ] }, - "id": 1866, + "id": 1791, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", - "nameLocation": "895:10:9", + "nameLocation": "895:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1858, + "id": 1783, "nodeType": "ParameterList", "parameters": [], - "src": "905:2:9" + "src": "905:2:8" }, "returnParameters": { - "id": 1861, + "id": 1786, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1860, + "id": 1785, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1866, - "src": "939:7:9", + "scope": 1791, + "src": "939:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,10 +805,10 @@ "typeString": "address" }, "typeName": { - "id": 1859, + "id": 1784, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:9", + "src": "939:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -818,81 +818,81 @@ "visibility": "internal" } ], - "src": "938:9:9" + "src": "938:9:8" }, - "scope": 1889, - "src": "886:96:9", + "scope": 1814, + "src": "886:96:8", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1874, + "id": 1799, "nodeType": "Block", - "src": "1055:32:9", + "src": "1055:32:8", "statements": [ { "expression": { "expression": { - "id": 1871, + "id": 1796, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "1072:3:9", + "src": "1072:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1872, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1076:4:9", + "memberLocation": "1076:4:8", "memberName": "data", "nodeType": "MemberAccess", - "src": "1072:8:9", + "src": "1072:8:8", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "functionReturnParameters": 1870, - "id": 1873, + "functionReturnParameters": 1795, + "id": 1798, "nodeType": "Return", - "src": "1065:15:9" + "src": "1065:15:8" } ] }, - "id": 1875, + "id": 1800, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", - "nameLocation": "997:8:9", + "nameLocation": "997:8:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1867, + "id": 1792, "nodeType": "ParameterList", "parameters": [], - "src": "1005:2:9" + "src": "1005:2:8" }, "returnParameters": { - "id": 1870, + "id": 1795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1869, + "id": 1794, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "1039:14:9", + "scope": 1800, + "src": "1039:14:8", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -900,10 +900,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1868, + "id": 1793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1039:5:9", + "src": "1039:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -912,70 +912,70 @@ "visibility": "internal" } ], - "src": "1038:16:9" + "src": "1038:16:8" }, - "scope": 1889, - "src": "988:99:9", + "scope": 1814, + "src": "988:99:8", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1882, + "id": 1807, "nodeType": "Block", - "src": "1165:25:9", + "src": "1165:25:8", "statements": [ { "expression": { "hexValue": "30", - "id": 1880, + "id": 1805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1182:1:9", + "src": "1182:1:8", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 1879, - "id": 1881, + "functionReturnParameters": 1804, + "id": 1806, "nodeType": "Return", - "src": "1175:8:9" + "src": "1175:8:8" } ] }, - "id": 1883, + "id": 1808, "implemented": true, "kind": "function", "modifiers": [], "name": "_contextSuffixLength", - "nameLocation": "1102:20:9", + "nameLocation": "1102:20:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1876, + "id": 1801, "nodeType": "ParameterList", "parameters": [], - "src": "1122:2:9" + "src": "1122:2:8" }, "returnParameters": { - "id": 1879, + "id": 1804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1878, + "id": 1803, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1883, - "src": "1156:7:9", + "scope": 1808, + "src": "1156:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -983,10 +983,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1877, + "id": 1802, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1156:7:9", + "src": "1156:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -995,10 +995,10 @@ "visibility": "internal" } ], - "src": "1155:9:9" + "src": "1155:9:8" }, - "scope": 1889, - "src": "1093:97:9", + "scope": 1814, + "src": "1093:97:8", "stateMutability": "view", "virtual": true, "visibility": "internal" @@ -1006,18 +1006,18 @@ { "constant": false, "documentation": { - "id": 1884, + "id": 1809, "nodeType": "StructuredDocumentation", - "src": "1196:254:9", + "src": "1196:254:8", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1888, + "id": 1813, "mutability": "mutable", "name": "__gap", - "nameLocation": "1475:5:9", + "nameLocation": "1475:5:8", "nodeType": "VariableDeclaration", - "scope": 1889, - "src": "1455:25:9", + "scope": 1814, + "src": "1455:25:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1026,26 +1026,26 @@ }, "typeName": { "baseType": { - "id": 1885, + "id": 1810, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1455:7:9", + "src": "1455:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1887, + "id": 1812, "length": { "hexValue": "3530", - "id": 1886, + "id": 1811, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1463:2:9", + "src": "1463:2:8", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -1053,7 +1053,7 @@ "value": "50" }, "nodeType": "ArrayTypeName", - "src": "1455:11:9", + "src": "1455:11:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]" @@ -1062,12 +1062,12 @@ "visibility": "private" } ], - "scope": 1890, - "src": "687:796:9", + "scope": 1815, + "src": "687:796:8", "usedErrors": [] } ], - "src": "101:1383:9" + "src": "101:1383:8" }, "compiler": { "name": "solc", @@ -1075,5 +1075,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.257Z" + "updatedAt": "2024-07-04T18:51:17.145Z" } \ No newline at end of file diff --git a/build/contracts/Gateway.json b/build/contracts/Gateway.json index 078fa58..4ad66ff 100644 --- a/build/contracts/Gateway.json +++ b/build/contracts/Gateway.json @@ -628,38 +628,38 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61388080620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061259d565b610352565b005b6101756004803603810190610170919061261d565b61061a565b005b61017f610685565b60405161018c9190612665565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b491906126b6565b6106b0565b6040516101c69190612665565b60405180910390f35b6101e960048036038101906101e491906126f6565b610b45565b6040516101f69190612665565b60405180910390f35b61021960048036038101906102149190612723565b610ba1565b6040516102269190612870565b60405180910390f35b610237610db9565b005b610253600480360381019061024e919061291d565b610e46565b60405161026091906129ee565b60405180910390f35b61027161137b565b005b61027b6114cb565b005b6102856114dd565b6040516102929190612a18565b60405180910390f35b6102a3611507565b6040516102b1929190612a51565b60405180910390f35b6102d460048036038101906102cf9190612a7a565b61152c565b005b6102de6116b1565b6040516102eb9190612a18565b60405180910390f35b61030e60048036038101906103099190612acd565b6116db565b60405161031b9190612665565b60405180910390f35b61033e600480360381019061033991906126f6565b611d3e565b005b610348611deb565b610350611e69565b565b61035a611deb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b91565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c23565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cb5565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611deb565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cd5565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611deb565b6106ae6000611ecc565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d3c565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612da8565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612e14565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e80565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612ea0565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ef5565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff60008581526020019081526020016000206004015460ff6000868152602001908152602001600020600701546109ea9190612f51565b6109f49190612f85565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610aa19190612f51565b6040518363ffffffff1660e01b8152600401610abe929190612ea0565b6020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612ef5565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b329190612fb9565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b975760019050610b9c565b600090505b919050565b610ba9612416565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610dc3611efd565b90508073ffffffffffffffffffffffffffffffffffffffff16610de46116b1565b73ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613046565b60405180910390fd5b610e4381611ecc565b50565b6000610e50611f05565b610e5d8989868989611f4f565b60008383905003610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906130b2565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610ecd9190612f51565b6040518463ffffffff1660e01b8152600401610eeb939291906130d2565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612ef5565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f8090613109565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fd8929190612ea0565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110219190613151565b61102b91906131c2565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161136695949392919061327b565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff161590508080156113ac5750600160008054906101000a900460ff1660ff16105b806113d957506113bb30612102565b1580156113d85750600160008054906101000a900460ff1660ff16145b5b611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061333b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611455576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611467612125565b61146f61217e565b80156114c85760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516114bf91906133a3565b60405180910390a15b50565b6114d3611deb565b6114db6121d7565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611534611deb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612b91565b60405180910390fd5b60018114806115b25750600281145b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061340a565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036116ac5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116a39190612fb9565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490612d3c565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612da8565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612e14565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118b7919061342a565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611b0957600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611b085760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a33929190612ea0565b6020604051808303816000875af1158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612ef5565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b3a9190613151565b611b4491906131c2565b90508060ff60008881526020019081526020016000206007016000828254611b6c9190612f85565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611ba49190613151565b611bae91906131c2565b90508082611bbc9190612f85565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611c1b929190612ea0565b6020604051808303816000875af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612ef5565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c9a929190612ea0565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190612ef5565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d2792919061349b565b60405180910390a360019350505050949350505050565b611d46611deb565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611da66114dd565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611df3611efd565b73ffffffffffffffffffffffffffffffffffffffff16611e116114dd565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613510565b60405180910390fd5b565b611e7161223a565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611eb5611efd565b604051611ec29190612a18565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611efa81612283565b50565b600033905090565b611f0d610685565b15611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f449061357c565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906135e8565b60405180910390fd5b60008403612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906136c0565b60405180910390fd5b600081146120fb57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061372c565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b906137be565b60405180910390fd5b61217c612349565b565b600060019054906101000a900460ff166121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906137be565b60405180910390fd5b6121d56123aa565b565b6121df611f05565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612223611efd565b6040516122309190612a18565b60405180910390a1565b612242610685565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061382a565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f906137be565b60405180910390fd5b6123a86123a3611efd565b611ecc565b565b600060019054906101000a900460ff166123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906137be565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61253d81612513565b811461254857600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125768261254b565b9050919050565b60008135905061258c81612534565b6125958161256b565b905092915050565b600080604083850312156125b4576125b36124d3565b5b60006125c2858286016124fe565b92505060206125d38582860161257d565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125fa816125dd565b811461260557600080fd5b50565b600081359050612617816125f1565b92915050565b600060208284031215612633576126326124d3565b5b600061264184828501612608565b91505092915050565b60008115159050919050565b61265f8161264a565b82525050565b600060208201905061267a6000830184612656565b92915050565b6000819050919050565b61269381612680565b811461269e57600080fd5b50565b6000813590506126b08161268a565b92915050565b600080604083850312156126cd576126cc6124d3565b5b60006126db858286016126a1565b92505060206126ec858286016124fe565b9150509250929050565b60006020828403121561270c5761270b6124d3565b5b600061271a8482850161257d565b91505092915050565b600060208284031215612739576127386124d3565b5b6000612747848285016124fe565b91505092915050565b6127598161256b565b82525050565b61276881612680565b82525050565b6127778161264a565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61279e8161277d565b82525050565b610140820160008201516127bb6000850182612750565b5060208201516127ce6020850182612750565b5060408201516127e16040850182612750565b5060608201516127f4606085018261275f565b506080820151612807608085018261275f565b5060a082015161281a60a085018261276e565b5060c082015161282d60c085018261276e565b5060e082015161284060e0850182612750565b50610100820151612855610100850182612795565b5061012082015161286a61012085018261275f565b50505050565b60006101408201905061288660008301846127a4565b92915050565b6128958161277d565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128dd576128dc6128b8565b5b8235905067ffffffffffffffff8111156128fa576128f96128bd565b5b602083019150836001820283011115612916576129156128c2565b5b9250929050565b60008060008060008060008060e0898b03121561293d5761293c6124d3565b5b600061294b8b828c0161257d565b985050602061295c8b828c016126a1565b975050604061296d8b828c016128a3565b965050606061297e8b828c0161257d565b955050608061298f8b828c016126a1565b94505060a06129a08b828c0161257d565b93505060c089013567ffffffffffffffff8111156129c1576129c06124d8565b5b6129cd8b828c016128c7565b92509250509295985092959890939650565b6129e8816124dd565b82525050565b6000602082019050612a0360008301846129df565b92915050565b612a128161256b565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c816125dd565b82525050565b612a4b81612680565b82525050565b6000604082019050612a666000830185612a33565b612a736020830184612a42565b9392505050565b600080600060608486031215612a9357612a926124d3565b5b6000612aa1868287016124fe565b9350506020612ab28682870161257d565b9250506040612ac3868287016126a1565b9150509250925092565b60008060008060808587031215612ae757612ae66124d3565b5b6000612af5878288016124fe565b9450506020612b06878288016124fe565b9350506040612b178782880161257d565b9250506060612b2887828801612608565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b7b601583612b34565b9150612b8682612b45565b602082019050919050565b60006020820190508181036000830152612baa81612b6e565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612c0d602583612b34565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c9f602783612b34565b9150612caa82612c43565b604082019050919050565b60006020820190508181036000830152612cce81612c92565b9050919050565b6000602082019050612cea6000830184612a33565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d26600e83612b34565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d92600e83612b34565b9150612d9d82612d5c565b602082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612dfe600d83612b34565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e6a601583612b34565b9150612e7582612e34565b602082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b6000604082019050612eb56000830185612a09565b612ec26020830184612a42565b9392505050565b612ed28161264a565b8114612edd57600080fd5b50565b600081519050612eef81612ec9565b92915050565b600060208284031215612f0b57612f0a6124d3565b5b6000612f1984828501612ee0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5c82612680565b9150612f6783612680565b9250828201905080821115612f7f57612f7e612f22565b5b92915050565b6000612f9082612680565b9150612f9b83612680565b9250828203905081811115612fb357612fb2612f22565b5b92915050565b6000602082019050612fce6000830184612a42565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613030602983612b34565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061309c601283612b34565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60006060820190506130e76000830186612a09565b6130f46020830185612a09565b6131016040830184612a42565b949350505050565b600061311482612680565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314657613145612f22565b5b600182019050919050565b600061315c82612680565b915061316783612680565b925082820261317581612680565b9150828204841483151761318c5761318b612f22565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131cd82612680565b91506131d883612680565b9250826131e8576131e7613193565b5b828204905092915050565b6000819050919050565b600061321861321361320e8461277d565b6131f3565b612680565b9050919050565b613228816131fd565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061325a8385612b34565b935061326783858461322e565b6132708361323d565b840190509392505050565b60006080820190506132906000830188612a42565b61329d60208301876129df565b6132aa604083018661321f565b81810360608301526132bd81848661324e565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613325602e83612b34565b9150613330826132c9565b604082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b6000819050919050565b600060ff82169050919050565b600061338d6133886133838461335b565b6131f3565b613365565b9050919050565b61339d81613372565b82525050565b60006020820190506133b86000830184613394565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133f4601783612b34565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b60006134358261277d565b91506134408361277d565b925082820390506bffffffffffffffffffffffff81111561346457613463612f22565b5b92915050565b600061348561348061347b846125dd565b6131f3565b61277d565b9050919050565b6134958161346a565b82525050565b60006040820190506134b060008301856129df565b6134bd602083018461348c565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612b34565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613566601083612b34565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135d2601183612b34565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061363e600c83612b34565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b60006136aa601083612b34565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b6000613716601983612b34565b9150613721826136e0565b602082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006137a8602b83612b34565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613814601483612b34565b915061381f826137de565b602082019050919050565b6000602082019050818103600083015261384381613807565b905091905056fea26474726f6e58221220081a009ba3e4ca96d8446d5f355740cbb5a0eb734de0a667fef6eb6fa696085264736f6c63430008120033", - "sourceMap": "390:6914:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6914;;5939:280:6;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:14:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6914:0:-;;;;;;;", - "deployedSourceMap": "390:6914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:5;;;:::i;:::-;;5690:926:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7005:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6849:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:4;;;:::i;:::-;;1709:1331:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7193:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:1554:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:5;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:7:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5690:926:0:-;5771:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:5:::1;:15;5847:8;5841:15;;;;;;;;;;;:27;;;;;;;;;;;;5840:28;5832:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:5;:15;5906:8;5900:15;;;;;;;;;;;:26;;;;;;;;;;;;5899:27;5891:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5987:4;5956:5;:15;5962:8;5956:15;;;;;;;;;;;:27;;;:35;;5948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:5;:15;6076:8;6070:15;;;;;;;;;;;:21;;;;;;;;;;;;6063:38;;;6102:15;;;;;;;;;;;6119:4;6063:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6182:4;6153:5;:15;6159:8;6153:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6219:1;6190:5;:15;6196:8;6190:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6259:20;6337:4;6307:5;:15;6313:8;6307:15;;;;;;;;;;;:27;;;6282:5;:15;6288:8;6282:15;;;;;;;;;;;:22;;;:52;;;;:::i;:::-;:59;;;;:::i;:::-;6259:82;;6418:5;:15;6424:8;6418:15;;;;;;;;;;;:21;;;;;;;;;;;;6411:38;;;6454:5;:15;6460:8;6454:15;;;;;;;;;;;:29;;;;;;;;;;;;6503:5;:15;6509:8;6503:15;;;;;;;;;;;:25;;;6488:12;:40;;;;:::i;:::-;6411:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6587:8;6567:29;6581:4;6567:29;;;;;;:::i;:::-;;;;;;;;6608:4;6601:11;;;5690:926:::0;;;;:::o;7005:142::-;7070:4;7113:1;7084:17;:25;7102:6;7084:25;;;;;;;;;;;;;;;;:30;7080:47;;7123:4;7116:11;;;;7080:47;7138:5;7131:12;;7005:142;;;;:::o;6849:107::-;6912:12;;:::i;:::-;6937:5;:15;6943:8;6937:15;;;;;;;;;;;6930:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:107;;;:::o;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1331:0:-;1928:15;1503:19:7;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2551:7;;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:40;;;;:::i;:::-;2495:63;;2579:283;;;;;;;;2598:10;2579:283;;;;;;2620:6;2579:283;;;;;;2651:19;2579:283;;;;;;2686:10;2579:283;;;;2714:12;2579:283;;;;2744:5;2579:283;;;;;;2766:5;2579:283;;;;;;2791:14;2579:283;;;;;;2829:7;;2579:283;;;;;;;;2850:7;2579:283;;::::0;2562:5:::1;:14;2568:7;2562:14;;;;;;;;;;;:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;:14;2962:7;2956:14;;;;;;;;;;;:21;;;2945:6;2902:134;;2919:5;:14;2925:7;2919:14;;;;;;;;;;;:21;;;;;;;;;;;;2902:134;;;2982:12;2999:7;3011:5;3021:11;;2902:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1095;1709:1331:::0;;;;;;;;;;:::o;795:114::-;3279:19:6;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:5;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7193:109:0:-;7241:6;7249:7;7270:18;;;;;;;;;;;7290:7;;7262:36;;;;7193:109;;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4097:1554:0:-;4249:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:5:::1;:15;4325:8;4319:15;;;;;;;;;;;:27;;;;;;;;;;;;4318:28;4310:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:5;:15;4384:8;4378:15;;;;;;;;;;;:26;;;;;;;;;;;;4377:27;4369:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:13;4475:5;:15;4481:8;4475:15;;;;;;;;;;;:21;;;;;;;;;;;;4459:37;;4593:14;4563:44;;:5;:15;4569:8;4563:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4646:1;4616:5;:15;4622:8;4616:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4612:453:::1;;4729:4;4699:5;:15;4705:8;4699:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4772:1;4743:5;:15;4749:8;4743:15;;;;;;;;;;;:25;;;:30;4739:321;;4815:5;:15;4821:8;4815:15;;;;;;;;;;;:21;;;;;;;;;;;;4808:38;;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:34;;;;;;;;;;;;4894:5;:15;4900:8;4894:15;;;;;;;;;;;:25;;;4808:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5023:5;:15;5029:8;5023:15;;;;;;;;;;;:25;;;4982:5;:15;4988:8;4982:15;;;;;;;;;;;:34;;;;;;;;;;;;4955:99;;;;;;;;;;;;4739:321;4612:453;5105:31;5183:7;;5165:14;5140:39;;:5;:15;5146:8;5140:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5139:51;;;;:::i;:::-;5105:85;;5220:23;5194:5;:15;5200:8;5194:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5248:19;5319:7;;5297:18;;;;;;;;;;;5271:44;;:23;:44;;;;:::i;:::-;5270:56;;;;:::i;:::-;5248:78;;5357:11;5330:38;;;;;:::i;:::-;;;5407:5;5400:22;;;5423:15;;;;;;;;;;;5440:11;5400:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5464:5;5457:22;;;5480:18;5500:23;5457:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5596:18;5558:73;;5586:8;5558:73;5571:13;5616:14;5558:73;;;;;;;:::i;:::-;;;;;;;;5643:4;5636:11;;;;;4097:1554:::0;;;;;;:::o;1436:178:4:-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:7:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2031:106:7:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3433:427:0:-;3625:1;3596:17;:25;3614:6;3596:25;;;;;;;;;;;;;;;;:30;3588:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:1;3660:7;:12;3652:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:1;3701:28;;:14;:28;;;3693:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3773:1;3759:10;:15;3755:102;;3820:1;3789:33;;:19;:33;;;3781:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3755:102;3433:427;;;;;:::o;1423:320:8:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:4:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:4::1;:24;:26::i;:::-;889:100::o:0;1084:97:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:7::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:5::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:7:-;5374:13:6;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:7::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:14:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:191;21157:3;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21253:1;21250;21246:9;21239:16;;21274:3;21271:1;21268:10;21265:36;;;21281:18;;:::i;:::-;21265:36;21117:191;;;;:::o;21314:194::-;21354:4;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21408:20;21426:1;21408:20;:::i;:::-;21403:25;;21452:1;21449;21445:9;21437:17;;21476:1;21470:4;21467:11;21464:37;;;21481:18;;:::i;:::-;21464:37;21314:194;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", - "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\n\t\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\n\t\tliquidityProviderAmount -= protocolFee;\n\n\t\t// transfer protocol fee\n\t\tIERC20(token).transfer(treasuryAddress, protocolFee);\n\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount + order[_orderId].protocolFee - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", + "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b506200003e6200004460201b60201c565b620001ee565b600060019054906101000a900460ff161562000097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008e9062000191565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001085760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000ff9190620001d1565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620001796027836200010a565b915062000186826200011b565b604082019050919050565b60006020820190508181036000830152620001ac816200016a565b9050919050565b600060ff82169050919050565b620001cb81620001b3565b82525050565b6000602082019050620001e86000830184620001c0565b92915050565b61385f80620001fe6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061257c565b610352565b005b610175600480360381019061017091906125fc565b61061a565b005b61017f610685565b60405161018c9190612644565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b49190612695565b6106b0565b6040516101c69190612644565b60405180910390f35b6101e960048036038101906101e491906126d5565b610b24565b6040516101f69190612644565b60405180910390f35b61021960048036038101906102149190612702565b610b80565b604051610226919061284f565b60405180910390f35b610237610d98565b005b610253600480360381019061024e91906128fc565b610e25565b60405161026091906129cd565b60405180910390f35b61027161135a565b005b61027b6114aa565b005b6102856114bc565b60405161029291906129f7565b60405180910390f35b6102a36114e6565b6040516102b1929190612a30565b60405180910390f35b6102d460048036038101906102cf9190612a59565b61150b565b005b6102de611690565b6040516102eb91906129f7565b60405180910390f35b61030e60048036038101906103099190612aac565b6116ba565b60405161031b9190612644565b60405180910390f35b61033e600480360381019061033991906126d5565b611d1d565b005b610348611dca565b610350611e48565b565b61035a611dca565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b70565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c02565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612c94565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611dca565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cb4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611dca565b6106ae6000611eab565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d1b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612d87565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612df3565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e5f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612e7f565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ed4565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109d39190612f30565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a809190612f64565b6040518363ffffffff1660e01b8152600401610a9d929190612e7f565b6020604051808303816000875af1158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190612ed4565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b119190612f98565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b765760019050610b7b565b600090505b919050565b610b886123f5565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610da2611edc565b90508073ffffffffffffffffffffffffffffffffffffffff16610dc3611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090613025565b60405180910390fd5b610e2281611eab565b50565b6000610e2f611ee4565b610e3c8989868989611f2e565b60008383905003610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613091565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610eac9190612f64565b6040518463ffffffff1660e01b8152600401610eca939291906130b1565b6020604051808303816000875af1158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612ed4565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f5f906130e8565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fb7929190612e7f565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110009190613130565b61100a91906131a1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161134595949392919061325a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff1615905080801561138b5750600160008054906101000a900460ff1660ff16105b806113b8575061139a306120e1565b1580156113b75750600160008054906101000a900460ff1660ff16145b5b6113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee9061331a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611434576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611446612104565b61144e61215d565b80156114a75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161149e9190613382565b60405180910390a15b50565b6114b2611dca565b6114ba6121b6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611513611dca565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990612b70565b60405180910390fd5b60018114806115915750600281145b6115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906133e9565b60405180910390fd5b7f746f6b656e000000000000000000000000000000000000000000000000000000830361168b5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116829190612f98565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612d1b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790612d87565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90612df3565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118969190613409565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ae857600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611ae75760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a12929190612e7f565b6020604051808303816000875af1158015611a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a559190612ed4565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b199190613130565b611b2391906131a1565b90508060ff60008881526020019081526020016000206007016000828254611b4b9190612f30565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b839190613130565b611b8d91906131a1565b90508082611b9b9190612f30565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611bfa929190612e7f565b6020604051808303816000875af1158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3d9190612ed4565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c79929190612e7f565b6020604051808303816000875af1158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc9190612ed4565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d0692919061347a565b60405180910390a360019350505050949350505050565b611d25611dca565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d856114bc565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611dd2611edc565b73ffffffffffffffffffffffffffffffffffffffff16611df06114bc565b73ffffffffffffffffffffffffffffffffffffffff1614611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d906134ef565b60405180910390fd5b565b611e50612219565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e94611edc565b604051611ea191906129f7565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ed981612262565b50565b600033905090565b611eec610685565b15611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239061355b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa7906135c7565b60405180910390fd5b60008403611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90613633565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120599061369f565b60405180910390fd5b600081146120da57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d09061370b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a9061379d565b60405180910390fd5b61215b612328565b565b600060019054906101000a900460ff166121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a39061379d565b60405180910390fd5b6121b4612389565b565b6121be611ee4565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612202611edc565b60405161220f91906129f7565b60405180910390a1565b612221610685565b612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790613809565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236e9061379d565b60405180910390fd5b612387612382611edc565b611eab565b565b600060019054906101000a900460ff166123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf9061379d565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124cf816124bc565b81146124da57600080fd5b50565b6000813590506124ec816124c6565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61251c816124f2565b811461252757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125558261252a565b9050919050565b60008135905061256b81612513565b6125748161254a565b905092915050565b60008060408385031215612593576125926124b2565b5b60006125a1858286016124dd565b92505060206125b28582860161255c565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125d9816125bc565b81146125e457600080fd5b50565b6000813590506125f6816125d0565b92915050565b600060208284031215612612576126116124b2565b5b6000612620848285016125e7565b91505092915050565b60008115159050919050565b61263e81612629565b82525050565b60006020820190506126596000830184612635565b92915050565b6000819050919050565b6126728161265f565b811461267d57600080fd5b50565b60008135905061268f81612669565b92915050565b600080604083850312156126ac576126ab6124b2565b5b60006126ba85828601612680565b92505060206126cb858286016124dd565b9150509250929050565b6000602082840312156126eb576126ea6124b2565b5b60006126f98482850161255c565b91505092915050565b600060208284031215612718576127176124b2565b5b6000612726848285016124dd565b91505092915050565b6127388161254a565b82525050565b6127478161265f565b82525050565b61275681612629565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61277d8161275c565b82525050565b6101408201600082015161279a600085018261272f565b5060208201516127ad602085018261272f565b5060408201516127c0604085018261272f565b5060608201516127d3606085018261273e565b5060808201516127e6608085018261273e565b5060a08201516127f960a085018261274d565b5060c082015161280c60c085018261274d565b5060e082015161281f60e085018261272f565b50610100820151612834610100850182612774565b5061012082015161284961012085018261273e565b50505050565b6000610140820190506128656000830184612783565b92915050565b6128748161275c565b811461287f57600080fd5b50565b6000813590506128918161286b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128bc576128bb612897565b5b8235905067ffffffffffffffff8111156128d9576128d861289c565b5b6020830191508360018202830111156128f5576128f46128a1565b5b9250929050565b60008060008060008060008060e0898b03121561291c5761291b6124b2565b5b600061292a8b828c0161255c565b985050602061293b8b828c01612680565b975050604061294c8b828c01612882565b965050606061295d8b828c0161255c565b955050608061296e8b828c01612680565b94505060a061297f8b828c0161255c565b93505060c089013567ffffffffffffffff8111156129a05761299f6124b7565b5b6129ac8b828c016128a6565b92509250509295985092959890939650565b6129c7816124bc565b82525050565b60006020820190506129e260008301846129be565b92915050565b6129f18161254a565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b612a1b816125bc565b82525050565b612a2a8161265f565b82525050565b6000604082019050612a456000830185612a12565b612a526020830184612a21565b9392505050565b600080600060608486031215612a7257612a716124b2565b5b6000612a80868287016124dd565b9350506020612a918682870161255c565b9250506040612aa286828701612680565b9150509250925092565b60008060008060808587031215612ac657612ac56124b2565b5b6000612ad4878288016124dd565b9450506020612ae5878288016124dd565b9350506040612af68782880161255c565b9250506060612b07878288016125e7565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b5a601583612b13565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612bec602583612b13565b9150612bf782612b90565b604082019050919050565b60006020820190508181036000830152612c1b81612bdf565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c7e602783612b13565b9150612c8982612c22565b604082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b6000602082019050612cc96000830184612a12565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d05600e83612b13565b9150612d1082612ccf565b602082019050919050565b60006020820190508181036000830152612d3481612cf8565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d71600e83612b13565b9150612d7c82612d3b565b602082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612ddd600d83612b13565b9150612de882612da7565b602082019050919050565b60006020820190508181036000830152612e0c81612dd0565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e49601583612b13565b9150612e5482612e13565b602082019050919050565b60006020820190508181036000830152612e7881612e3c565b9050919050565b6000604082019050612e9460008301856129e8565b612ea16020830184612a21565b9392505050565b612eb181612629565b8114612ebc57600080fd5b50565b600081519050612ece81612ea8565b92915050565b600060208284031215612eea57612ee96124b2565b5b6000612ef884828501612ebf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3b8261265f565b9150612f468361265f565b9250828203905081811115612f5e57612f5d612f01565b5b92915050565b6000612f6f8261265f565b9150612f7a8361265f565b9250828201905080821115612f9257612f91612f01565b5b92915050565b6000602082019050612fad6000830184612a21565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061300f602983612b13565b915061301a82612fb3565b604082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061307b601283612b13565b915061308682613045565b602082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b60006060820190506130c660008301866129e8565b6130d360208301856129e8565b6130e06040830184612a21565b949350505050565b60006130f38261265f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361312557613124612f01565b5b600182019050919050565b600061313b8261265f565b91506131468361265f565b92508282026131548161265f565b9150828204841483151761316b5761316a612f01565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ac8261265f565b91506131b78361265f565b9250826131c7576131c6613172565b5b828204905092915050565b6000819050919050565b60006131f76131f26131ed8461275c565b6131d2565b61265f565b9050919050565b613207816131dc565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132398385612b13565b935061324683858461320d565b61324f8361321c565b840190509392505050565b600060808201905061326f6000830188612a21565b61327c60208301876129be565b61328960408301866131fe565b818103606083015261329c81848661322d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613304602e83612b13565b915061330f826132a8565b604082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b6000819050919050565b600060ff82169050919050565b600061336c6133676133628461333a565b6131d2565b613344565b9050919050565b61337c81613351565b82525050565b60006020820190506133976000830184613373565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133d3601783612b13565b91506133de8261339d565b602082019050919050565b60006020820190508181036000830152613402816133c6565b9050919050565b60006134148261275c565b915061341f8361275c565b925082820390506bffffffffffffffffffffffff81111561344357613442612f01565b5b92915050565b600061346461345f61345a846125bc565b6131d2565b61275c565b9050919050565b61347481613449565b82525050565b600060408201905061348f60008301856129be565b61349c602083018461346b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d9602083612b13565b91506134e4826134a3565b602082019050919050565b60006020820190508181036000830152613508816134cc565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613545601083612b13565b91506135508261350f565b602082019050919050565b6000602082019050818103600083015261357481613538565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135b1601183612b13565b91506135bc8261357b565b602082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061361d600c83612b13565b9150613628826135e7565b602082019050919050565b6000602082019050818103600083015261364c81613610565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613689601083612b13565b915061369482613653565b602082019050919050565b600060208201905081810360008301526136b88161367c565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136f5601983612b13565b9150613700826136bf565b602082019050919050565b60006020820190508181036000830152613724816136e8565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613787602b83612b13565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137f3601483612b13565b91506137fe826137bd565b602082019050919050565b60006020820190508181036000830152613822816137e6565b905091905056fea26474726f6e582212200a12cda2b8925ec60d84c61e662e75dbaf1665a2efbe22d6c3b15f9d5b5ba44764736f6c63430008120033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106101305760003560e01c8063809804f7116100bc578063b810c6361161008b578063b810c6361461029b578063cd992400146102ba578063e30c3978146102d6578063f22ee704146102f4578063f2fde38b1461032457610130565b8063809804f7146102395780638129fc1c146102695780638456cb59146102735780638da5cb5b1461027d57610130565b8063715018a611610103578063715018a61461019557806371eedb881461019f57806375151b63146101cf578063768c6ec0146101ff57806379ba50971461022f57610130565b80633f4ba83a1461013557806340ebc6771461013f57806347094e2e1461015b5780635c975abb14610177575b600080fd5b61013d610340565b005b6101596004803603810190610154919061257c565b610352565b005b610175600480360381019061017091906125fc565b61061a565b005b61017f610685565b60405161018c9190612644565b60405180910390f35b61019d61069c565b005b6101b960048036038101906101b49190612695565b6106b0565b6040516101c69190612644565b60405180910390f35b6101e960048036038101906101e491906126d5565b610b24565b6040516101f69190612644565b60405180910390f35b61021960048036038101906102149190612702565b610b80565b604051610226919061284f565b60405180910390f35b610237610d98565b005b610253600480360381019061024e91906128fc565b610e25565b60405161026091906129cd565b60405180910390f35b61027161135a565b005b61027b6114aa565b005b6102856114bc565b60405161029291906129f7565b60405180910390f35b6102a36114e6565b6040516102b1929190612a30565b60405180910390f35b6102d460048036038101906102cf9190612a59565b61150b565b005b6102de611690565b6040516102eb91906129f7565b60405180910390f35b61030e60048036038101906103099190612aac565b6116ba565b60405161031b9190612644565b60405180910390f35b61033e600480360381019061033991906126d5565b611d1d565b005b610348611dca565b610350611e48565b565b61035a611dca565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090612b70565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036104cc578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990612c02565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506105ca565b7f61676772656761746f720000000000000000000000000000000000000000000083036105c9578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612c94565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b8015610615578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b610622611dca565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161067a9190612cb4565b60405180910390a150565b600060cd60009054906101000a900460ff16905090565b6106a4611dca565b6106ae6000611eab565b565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990612d1b565b60405180910390fd5b60ff600083815260200190815260200160002060050160009054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612d87565b60405180910390fd5b60ff600083815260200190815260200160002060050160019054906101000a900460ff161561080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612df3565b60405180910390fd5b8260ff6000848152602001908152602001600020600401541015610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e5f565b60405180910390fd5b60ff600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016108f6929190612e7f565b6020604051808303816000875af1158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190612ed4565b50600160ff600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550600060ff600084815260200190815260200160002060060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060008360ff6000858152602001908152602001600020600701546109d39190612f30565b905060ff600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600086815260200190815260200160002060050160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff60008781526020019081526020016000206003015484610a809190612f64565b6040518363ffffffff1660e01b8152600401610a9d929190612e7f565b6020604051808303816000875af1158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190612ed4565b50827f0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e85604051610b119190612f98565b60405180910390a2600191505092915050565b60006001609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610b765760019050610b7b565b600090505b919050565b610b886123f5565b60ff6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581526020016005820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016007820154815250509050919050565b6000610da2611edc565b90508073ffffffffffffffffffffffffffffffffffffffff16610dc3611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090613025565b60405180910390fd5b610e2281611eab565b50565b6000610e2f611ee4565b610e3c8989868989611f2e565b60008383905003610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613091565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330888c610eac9190612f64565b6040518463ffffffff1660e01b8152600401610eca939291906130b1565b6020604051808303816000875af1158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612ed4565b5061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f5f906130e8565b91905055503361010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051602001610fb7929190612e7f565b6040516020818303038152906040528051906020012090506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff168a6110009190613130565b61100a91906131a1565b90506040518061014001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018281526020016000151581526020016000151581526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160975467ffffffffffffffff166bffffffffffffffffffffffff1681526020018a81525060ff600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160060160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610120820151816007015590505060ff6000838152602001908152602001600020600701548a73ffffffffffffffffffffffffffffffffffffffff1660ff600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a13784868d8a8a60405161134595949392919061325a565b60405180910390a45098975050505050505050565b60008060019054906101000a900460ff1615905080801561138b5750600160008054906101000a900460ff1660ff16105b806113b8575061139a306120e1565b1580156113b75750600160008054906101000a900460ff1660ff16145b5b6113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee9061331a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015611434576001600060016101000a81548160ff0219169083151502179055505b620186a0609781905550611446612104565b61144e61215d565b80156114a75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161149e9190613382565b60405180910390a15b50565b6114b2611dca565b6114ba6121b6565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080609860009054906101000a900467ffffffffffffffff16609754915091509091565b611513611dca565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990612b70565b60405180910390fd5b60018114806115915750600281145b6115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906133e9565b60405180910390fd5b7f746f6b656e000000000000000000000000000000000000000000000000000000830361168b5780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516116829190612f98565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612d1b565b60405180910390fd5b60ff600085815260200190815260200160002060050160009054906101000a900460ff16156117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790612d87565b60405180910390fd5b60ff600085815260200190815260200160002060050160019054906101000a900460ff1615611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90612df3565b60405180910390fd5b600060ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508267ffffffffffffffff1660ff600087815260200190815260200160002060060160008282829054906101000a90046bffffffffffffffffffffffff166118969190613409565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600060ff600087815260200190815260200160002060060160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1603611ae857600160ff600087815260200190815260200160002060050160006101000a81548160ff021916908315150217905550600060ff60008781526020019081526020016000206003015414611ae75760ff600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60ff600088815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660ff6000898152602001908152602001600020600301546040518363ffffffff1660e01b8152600401611a12929190612e7f565b6020604051808303816000875af1158015611a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a559190612ed4565b5060ff60008681526020019081526020016000206003015460ff600087815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c250160405160405180910390a35b5b60006097548467ffffffffffffffff1660ff600089815260200190815260200160002060070154611b199190613130565b611b2391906131a1565b90508060ff60008881526020019081526020016000206007016000828254611b4b9190612f30565b925050819055506000609754609860009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683611b839190613130565b611b8d91906131a1565b90508082611b9b9190612f30565b91508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611bfa929190612e7f565b6020604051808303816000875af1158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3d9190612ed4565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b8152600401611c79929190612e7f565b6020604051808303816000875af1158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc9190612ed4565b508573ffffffffffffffffffffffffffffffffffffffff16877f98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a8a88604051611d0692919061347a565b60405180910390a360019350505050949350505050565b611d25611dca565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611d856114bc565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611dd2611edc565b73ffffffffffffffffffffffffffffffffffffffff16611df06114bc565b73ffffffffffffffffffffffffffffffffffffffff1614611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d906134ef565b60405180910390fd5b565b611e50612219565b600060cd60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e94611edc565b604051611ea191906129f7565b60405180910390a1565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611ed981612262565b50565b600033905090565b611eec610685565b15611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239061355b565b60405180910390fd5b565b6001609a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa7906135c7565b60405180910390fd5b60008403611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90613633565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120599061369f565b60405180910390fd5b600081146120da57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d09061370b565b60405180910390fd5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a9061379d565b60405180910390fd5b61215b612328565b565b600060019054906101000a900460ff166121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a39061379d565b60405180910390fd5b6121b4612389565b565b6121be611ee4565b600160cd60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612202611edc565b60405161220f91906129f7565b60405180910390a1565b612221610685565b612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790613809565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff16612377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236e9061379d565b60405180910390fd5b612387612382611edc565b611eab565b565b600060019054906101000a900460ff166123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf9061379d565b60405180910390fd5b600060cd60006101000a81548160ff021916908315150217905550565b604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600081525090565b600080fd5b600080fd5b6000819050919050565b6124cf816124bc565b81146124da57600080fd5b50565b6000813590506124ec816124c6565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b61251c816124f2565b811461252757600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125558261252a565b9050919050565b60008135905061256b81612513565b6125748161254a565b905092915050565b60008060408385031215612593576125926124b2565b5b60006125a1858286016124dd565b92505060206125b28582860161255c565b9150509250929050565b600067ffffffffffffffff82169050919050565b6125d9816125bc565b81146125e457600080fd5b50565b6000813590506125f6816125d0565b92915050565b600060208284031215612612576126116124b2565b5b6000612620848285016125e7565b91505092915050565b60008115159050919050565b61263e81612629565b82525050565b60006020820190506126596000830184612635565b92915050565b6000819050919050565b6126728161265f565b811461267d57600080fd5b50565b60008135905061268f81612669565b92915050565b600080604083850312156126ac576126ab6124b2565b5b60006126ba85828601612680565b92505060206126cb858286016124dd565b9150509250929050565b6000602082840312156126eb576126ea6124b2565b5b60006126f98482850161255c565b91505092915050565b600060208284031215612718576127176124b2565b5b6000612726848285016124dd565b91505092915050565b6127388161254a565b82525050565b6127478161265f565b82525050565b61275681612629565b82525050565b60006bffffffffffffffffffffffff82169050919050565b61277d8161275c565b82525050565b6101408201600082015161279a600085018261272f565b5060208201516127ad602085018261272f565b5060408201516127c0604085018261272f565b5060608201516127d3606085018261273e565b5060808201516127e6608085018261273e565b5060a08201516127f960a085018261274d565b5060c082015161280c60c085018261274d565b5060e082015161281f60e085018261272f565b50610100820151612834610100850182612774565b5061012082015161284961012085018261273e565b50505050565b6000610140820190506128656000830184612783565b92915050565b6128748161275c565b811461287f57600080fd5b50565b6000813590506128918161286b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126128bc576128bb612897565b5b8235905067ffffffffffffffff8111156128d9576128d861289c565b5b6020830191508360018202830111156128f5576128f46128a1565b5b9250929050565b60008060008060008060008060e0898b03121561291c5761291b6124b2565b5b600061292a8b828c0161255c565b985050602061293b8b828c01612680565b975050604061294c8b828c01612882565b965050606061295d8b828c0161255c565b955050608061296e8b828c01612680565b94505060a061297f8b828c0161255c565b93505060c089013567ffffffffffffffff8111156129a05761299f6124b7565b5b6129ac8b828c016128a6565b92509250509295985092959890939650565b6129c7816124bc565b82525050565b60006020820190506129e260008301846129be565b92915050565b6129f18161254a565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b612a1b816125bc565b82525050565b612a2a8161265f565b82525050565b6000604082019050612a456000830185612a12565b612a526020830184612a21565b9392505050565b600080600060608486031215612a7257612a716124b2565b5b6000612a80868287016124dd565b9350506020612a918682870161255c565b9250506040612aa286828701612680565b9150509250925092565b60008060008060808587031215612ac657612ac56124b2565b5b6000612ad4878288016124dd565b9450506020612ae5878288016124dd565b9350506040612af68782880161255c565b9250506060612b07878288016125e7565b91505092959194509250565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000612b5a601583612b13565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000612bec602583612b13565b9150612bf782612b90565b604082019050919050565b60006020820190508181036000830152612c1b81612bdf565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000612c7e602783612b13565b9150612c8982612c22565b604082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b6000602082019050612cc96000830184612a12565b92915050565b7f4f6e6c7941676772656761746f72000000000000000000000000000000000000600082015250565b6000612d05600e83612b13565b9150612d1082612ccf565b602082019050919050565b60006020820190508181036000830152612d3481612cf8565b9050919050565b7f4f7264657246756c66696c6c6564000000000000000000000000000000000000600082015250565b6000612d71600e83612b13565b9150612d7c82612d3b565b602082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f4f72646572526566756e64656400000000000000000000000000000000000000600082015250565b6000612ddd600d83612b13565b9150612de882612da7565b602082019050919050565b60006020820190508181036000830152612e0c81612dd0565b9050919050565b7f4665654578636565647350726f746f636f6c4665650000000000000000000000600082015250565b6000612e49601583612b13565b9150612e5482612e13565b602082019050919050565b60006020820190508181036000830152612e7881612e3c565b9050919050565b6000604082019050612e9460008301856129e8565b612ea16020830184612a21565b9392505050565b612eb181612629565b8114612ebc57600080fd5b50565b600081519050612ece81612ea8565b92915050565b600060208284031215612eea57612ee96124b2565b5b6000612ef884828501612ebf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3b8261265f565b9150612f468361265f565b9250828203905081811115612f5e57612f5d612f01565b5b92915050565b6000612f6f8261265f565b9150612f7a8361265f565b9250828201905080821115612f9257612f91612f01565b5b92915050565b6000602082019050612fad6000830184612a21565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061300f602983612b13565b915061301a82612fb3565b604082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f496e76616c69644d657373616765486173680000000000000000000000000000600082015250565b600061307b601283612b13565b915061308682613045565b602082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b60006060820190506130c660008301866129e8565b6130d360208301856129e8565b6130e06040830184612a21565b949350505050565b60006130f38261265f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361312557613124612f01565b5b600182019050919050565b600061313b8261265f565b91506131468361265f565b92508282026131548161265f565b9150828204841483151761316b5761316a612f01565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ac8261265f565b91506131b78361265f565b9250826131c7576131c6613172565b5b828204905092915050565b6000819050919050565b60006131f76131f26131ed8461275c565b6131d2565b61265f565b9050919050565b613207816131dc565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006132398385612b13565b935061324683858461320d565b61324f8361321c565b840190509392505050565b600060808201905061326f6000830188612a21565b61327c60208301876129be565b61328960408301866131fe565b818103606083015261329c81848661322d565b90509695505050505050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613304602e83612b13565b915061330f826132a8565b604082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b6000819050919050565b600060ff82169050919050565b600061336c6133676133628461333a565b6131d2565b613344565b9050919050565b61337c81613351565b82525050565b60006020820190506133976000830184613373565b92915050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b60006133d3601783612b13565b91506133de8261339d565b602082019050919050565b60006020820190508181036000830152613402816133c6565b9050919050565b60006134148261275c565b915061341f8361275c565b925082820390506bffffffffffffffffffffffff81111561344357613442612f01565b5b92915050565b600061346461345f61345a846125bc565b6131d2565b61275c565b9050919050565b61347481613449565b82525050565b600060408201905061348f60008301856129be565b61349c602083018461346b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d9602083612b13565b91506134e4826134a3565b602082019050919050565b60006020820190508181036000830152613508816134cc565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613545601083612b13565b91506135508261350f565b602082019050919050565b6000602082019050818103600083015261357481613538565b9050919050565b7f546f6b656e4e6f74537570706f72746564000000000000000000000000000000600082015250565b60006135b1601183612b13565b91506135bc8261357b565b602082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b7f416d6f756e7449735a65726f0000000000000000000000000000000000000000600082015250565b600061361d600c83612b13565b9150613628826135e7565b602082019050919050565b6000602082019050818103600083015261364c81613610565b9050919050565b7f5468726f775a65726f4164647265737300000000000000000000000000000000600082015250565b6000613689601083612b13565b915061369482613653565b602082019050919050565b600060208201905081810360008301526136b88161367c565b9050919050565b7f496e76616c696453656e646572466565526563697069656e7400000000000000600082015250565b60006136f5601983612b13565b9150613700826136bf565b602082019050919050565b60006020820190508181036000830152613724816136e8565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613787602b83612b13565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006137f3601483612b13565b91506137fe826137bd565b602082019050919050565b60006020820190508181036000830152613822816137e6565b905091905056fea26474726f6e582212200a12cda2b8925ec60d84c61e662e75dbaf1665a2efbe22d6c3b15f9d5b5ba44764736f6c63430008120033", + "sourceMap": "390:6884:0:-:0;;;708:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:22;:20;;;:22;;:::i;:::-;390:6884;;5939:280:5;6007:13;;;;;;;;;;;6006:14;5998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6094:15;6078:31;;:12;;;;;;;;;;:31;;;6074:139;;6140:15;6125:12;;:30;;;;;;;;;;;;;;;;;;6174:28;6186:15;6174:28;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;7:169:10:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:226::-;322:34;318:1;310:6;306:14;299:58;391:9;386:2;378:6;374:15;367:34;182:226;:::o;414:366::-;556:3;577:67;641:2;636:3;577:67;:::i;:::-;570:74;;653:93;742:3;653:93;:::i;:::-;771:2;766:3;762:12;755:19;;414:366;;;:::o;786:419::-;952:4;990:2;979:9;975:18;967:26;;1039:9;1033:4;1029:20;1025:1;1014:9;1010:17;1003:47;1067:131;1193:4;1067:131;:::i;:::-;1059:139;;786:419;;;:::o;1211:86::-;1246:7;1286:4;1279:5;1275:16;1264:27;;1211:86;;;:::o;1303:112::-;1386:22;1402:5;1386:22;:::i;:::-;1381:3;1374:35;1303:112;;:::o;1421:214::-;1510:4;1548:2;1537:9;1533:18;1525:26;;1561:67;1625:1;1614:9;1610:17;1601:6;1561:67;:::i;:::-;1421:214;;;;:::o;390:6884:0:-;;;;;;;", + "deployedSourceMap": "390:6884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:56;;;:::i;:::-;;2293:551:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1879:84:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2085:101:4;;;:::i;:::-;;5690:896:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6975:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6819:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:212:3;;;:::i;:::-;;1709:1331:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:114;;;:::i;:::-;;1325:52;;;:::i;:::-;;1462:85:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7163:109:0;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:1554:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1421:56:0;1355:13:4;:11;:13::i;:::-;1463:10:0::1;:8;:10::i;:::-;1421:56::o:0;2293:551:1:-;1355:13:4;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:4;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;1879:84:6:-;1926:4;1949:7;;;;;;;;;;;1942:14;;1879:84;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5690:896:0:-;5771:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:5:::1;:15;5847:8;5841:15;;;;;;;;;;;:27;;;;;;;;;;;;5840:28;5832:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:5;:15;5906:8;5900:15;;;;;;;;;;;:26;;;;;;;;;;;;5899:27;5891:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;5987:4;5956:5;:15;5962:8;5956:15;;;;;;;;;;;:27;;;:35;;5948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:5;:15;6076:8;6070:15;;;;;;;;;;;:21;;;;;;;;;;;;6063:38;;;6102:15;;;;;;;;;;;6119:4;6063:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6182:4;6153:5;:15;6159:8;6153:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;6219:1;6190:5;:15;6196:8;6190:15;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;6259:20;6307:4;6282:5;:15;6288:8;6282:15;;;;;;;;;;;:22;;;:29;;;;:::i;:::-;6259:52;;6388:5;:15;6394:8;6388:15;;;;;;;;;;;:21;;;;;;;;;;;;6381:38;;;6424:5;:15;6430:8;6424:15;;;;;;;;;;;:29;;;;;;;;;;;;6473:5;:15;6479:8;6473:15;;;;;;;;;;;:25;;;6458:12;:40;;;;:::i;:::-;6381:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6557:8;6537:29;6551:4;6537:29;;;;;;:::i;:::-;;;;;;;;6578:4;6571:11;;;5690:896:::0;;;;:::o;6975:142::-;7040:4;7083:1;7054:17;:25;7072:6;7054:25;;;;;;;;;;;;;;;;:30;7050:47;;7093:4;7086:11;;;;7050:47;7108:5;7101:12;;6975:142;;;;:::o;6819:107::-;6882:12;;:::i;:::-;6907:5;:15;6913:8;6907:15;;;;;;;;;;;6900:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6819:107;;;:::o;2031:212:3:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1709:1331:0:-;1928:15;1503:19:6;:17;:19::i;:::-;1979:74:0::1;1988:6;1996:7;2005:14;2021:19;2042:10;1979:8;:74::i;:::-;2121:1;2098:11;;2092:25;;:30:::0;2084:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2205:6;2198:27;;;2226:10;2246:4;2263:10;2253:7;:20;;;;:::i;:::-;2198:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2329:6;:18;2336:10;2329:18;;;;;;;;;;;;;;;;:20;;;;;;;;;:::i;:::-;;;;;;2434:10;2446:6;:18;2453:10;2446:18;;;;;;;;;;;;;;;;2423:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2413:53;;;;;;2403:63;;2495:20;2551:7;;2529:18;;;;;;;;;;;2519:28;;:7;:28;;;;:::i;:::-;2518:40;;;;:::i;:::-;2495:63;;2579:283;;;;;;;;2598:10;2579:283;;;;;;2620:6;2579:283;;;;;;2651:19;2579:283;;;;;;2686:10;2579:283;;;;2714:12;2579:283;;;;2744:5;2579:283;;;;;;2766:5;2579:283;;;;;;2791:14;2579:283;;;;;;2829:7;;2579:283;;;;;;;;2850:7;2579:283;;::::0;2562:5:::1;:14;2568:7;2562:14;;;;;;;;;;;:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;:14;2962:7;2956:14;;;;;;;;;;;:21;;;2945:6;2902:134;;2919:5;:14;2925:7;2919:14;;;;;;;;;;;:21;;;;;;;;;;;;2902:134;;;2982:12;2999:7;3011:5;3021:11;;2902:134;;;;;;;;;;:::i;:::-;;;;;;;;1945:1095;1709:1331:::0;;;;;;;;;;:::o;795:114::-;3279:19:5;3302:13;;;;;;;;;;;3301:14;3279:36;;3347:14;:34;;;;;3380:1;3365:12;;;;;;;;;;:16;;;3347:34;3346:108;;;;3388:44;3426:4;3388:29;:44::i;:::-;3387:45;:66;;;;;3452:1;3436:12;;;;;;;;;;:17;;;3387:66;3346:108;3325:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:1;3536:12;;:16;;;;;;;;;;;;;;;;;;3566:14;3562:65;;;3612:4;3596:13;;:20;;;;;;;;;;;;;;;;;;3562:65;852:7:0::1;842;:17;;;;863:21;:19;:21::i;:::-;888:17;:15;:17::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:13;;:21;;;;;;;;;;;;;;;;;;3721:14;3733:1;3721:14;;;;;;:::i;:::-;;;;;;;;3647:99;3269:483;795:114:0:o;1325:52::-;1355:13:4;:11;:13::i;:::-;1365:8:0::1;:6;:8::i;:::-;1325:52::o:0;1462:85:4:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;7163:109:0:-;7211:6;7219:7;7240:18;;;;;;;;;;;7260:7;;7232:36;;;;7163:109;;:::o;1426:335:1:-;1355:13:4;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:3:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;4097:1554:0:-;4249:4;1044:18;;;;;;;;;;;1030:32;;:10;:32;;;1022:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:5:::1;:15;4325:8;4319:15;;;;;;;;;;;:27;;;;;;;;;;;;4318:28;4310:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:5;:15;4384:8;4378:15;;;;;;;;;;;:26;;;;;;;;;;;;4377:27;4369:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:13;4475:5;:15;4481:8;4475:15;;;;;;;;;;;:21;;;;;;;;;;;;4459:37;;4593:14;4563:44;;:5;:15;4569:8;4563:15;;;;;;;;;;;:26;;;:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4646:1;4616:5;:15;4622:8;4616:15;;;;;;;;;;;:26;;;;;;;;;;;;:31;;::::0;4612:453:::1;;4729:4;4699:5;:15;4705:8;4699:15;;;;;;;;;;;:27;;;:34;;;;;;;;;;;;;;;;;;4772:1;4743:5;:15;4749:8;4743:15;;;;;;;;;;;:25;;;:30;4739:321;;4815:5;:15;4821:8;4815:15;;;;;;;;;;;:21;;;;;;;;;;;;4808:38;;;4853:5;:15;4859:8;4853:15;;;;;;;;;;;:34;;;;;;;;;;;;4894:5;:15;4900:8;4894:15;;;;;;;;;;;:25;;;4808:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5023:5;:15;5029:8;5023:15;;;;;;;;;;;:25;;;4982:5;:15;4988:8;4982:15;;;;;;;;;;;:34;;;;;;;;;;;;4955:99;;;;;;;;;;;;4739:321;4612:453;5105:31;5183:7;;5165:14;5140:39;;:5;:15;5146:8;5140:15;;;;;;;;;;;:22;;;:39;;;;:::i;:::-;5139:51;;;;:::i;:::-;5105:85;;5220:23;5194:5;:15;5200:8;5194:15;;;;;;;;;;;:22;;;:49;;;;;;;:::i;:::-;;;;;;;;5248:19;5319:7;;5297:18;;;;;;;;;;;5271:44;;:23;:44;;;;:::i;:::-;5270:56;;;;:::i;:::-;5248:78;;5357:11;5330:38;;;;;:::i;:::-;;;5407:5;5400:22;;;5423:15;;;;;;;;;;;5440:11;5400:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5464:5;5457:22;;;5480:18;5500:23;5457:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5596:18;5558:73;;5586:8;5558:73;5571:13;5616:14;5558:73;;;;;;;:::i;:::-;;;;;;;;5643:4;5636:11;;;;;4097:1554:::0;;;;;;:::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1541:8:3::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:4:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;2697:117:6:-;1750:16;:14;:16::i;:::-;2765:5:::1;2755:7;;:15;;;;;;;;;;;;;;;;;;2785:22;2794:12;:10;:12::i;:::-;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;1798:153:3:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:8:-;939:7;965:10;958:17;;886:96;:::o;2031:106:6:-;2101:8;:6;:8::i;:::-;2100:9;2092:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:106::o;3433:427:0:-;3625:1;3596:17;:25;3614:6;3596:25;;;;;;;;;;;;;;;;:30;3588:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:1;3660:7;:12;3652:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:1;3701:28;;:14;:28;;;3693:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3773:1;3759:10;:15;3755:102;;3820:1;3789:33;;:19;:33;;;3781:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3755:102;3433:427;;;;;:::o;1423:320:7:-;1483:4;1735:1;1713:7;:19;;;:23;1706:30;;1423:320;;;:::o;889:100:3:-;5374:13:5;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;956:26:3::1;:24;:26::i;:::-;889:100::o:0;1084:97:6:-;5374:13:5;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:27:6::1;:25;:27::i;:::-;1084:97::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2519:4:::1;2509:7;;:14;;;;;;;;;;;;;;;;;;2538:20;2545:12;:10;:12::i;:::-;2538:20;;;;;;:::i;:::-;;;;;;;;2450:115::o:0;2209:106::-;2275:8;:6;:8::i;:::-;2267:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:106::o;2687:187:4:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;1125:111::-;5374:13:5;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:32:4::1;1216:12;:10;:12::i;:::-;1197:18;:32::i;:::-;1125:111::o:0;1187:95:6:-;5374:13:5;;;;;;;;;;;5366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1270:5:6::1;1260:7;;:15;;;;;;;;;;;;;;;;;;1187:95::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:90::-;2596:7;2639:5;2632:13;2625:21;2614:32;;2562:90;;;:::o;2658:109::-;2739:21;2754:5;2739:21;:::i;:::-;2734:3;2727:34;2658:109;;:::o;2773:210::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:65;2973:1;2962:9;2958:17;2949:6;2911:65;:::i;:::-;2773:210;;;;:::o;2989:77::-;3026:7;3055:5;3044:16;;2989:77;;;:::o;3072:122::-;3145:24;3163:5;3145:24;:::i;:::-;3138:5;3135:35;3125:63;;3184:1;3181;3174:12;3125:63;3072:122;:::o;3200:139::-;3246:5;3284:6;3271:20;3262:29;;3300:33;3327:5;3300:33;:::i;:::-;3200:139;;;;:::o;3345:474::-;3413:6;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3345:474;;;;;:::o;3825:329::-;3884:6;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;3825:329;;;;:::o;4160:::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:53;4464:7;4455:6;4444:9;4440:22;4419:53;:::i;:::-;4409:63;;4365:117;4160:329;;;;:::o;4495:108::-;4572:24;4590:5;4572:24;:::i;:::-;4567:3;4560:37;4495:108;;:::o;4609:::-;4686:24;4704:5;4686:24;:::i;:::-;4681:3;4674:37;4609:108;;:::o;4723:99::-;4794:21;4809:5;4794:21;:::i;:::-;4789:3;4782:34;4723:99;;:::o;4828:109::-;4864:7;4904:26;4897:5;4893:38;4882:49;;4828:109;;;:::o;4943:105::-;5018:23;5035:5;5018:23;:::i;:::-;5013:3;5006:36;4943:105;;:::o;5108:1948::-;5249:6;5244:3;5240:16;5340:4;5333:5;5329:16;5323:23;5359:63;5416:4;5411:3;5407:14;5393:12;5359:63;:::i;:::-;5266:166;5515:4;5508:5;5504:16;5498:23;5534:63;5591:4;5586:3;5582:14;5568:12;5534:63;:::i;:::-;5442:165;5703:4;5696:5;5692:16;5686:23;5722:63;5779:4;5774:3;5770:14;5756:12;5722:63;:::i;:::-;5617:178;5882:4;5875:5;5871:16;5865:23;5901:63;5958:4;5953:3;5949:14;5935:12;5901:63;:::i;:::-;5805:169;6063:4;6056:5;6052:16;6046:23;6082:63;6139:4;6134:3;6130:14;6116:12;6082:63;:::i;:::-;5984:171;6244:4;6237:5;6233:16;6227:23;6263:57;6314:4;6309:3;6305:14;6291:12;6263:57;:::i;:::-;6165:165;6418:4;6411:5;6407:16;6401:23;6437:57;6488:4;6483:3;6479:14;6465:12;6437:57;:::i;:::-;6340:164;6595:4;6588:5;6584:16;6578:23;6614:63;6671:4;6666:3;6662:14;6648:12;6614:63;:::i;:::-;6514:173;6775:6;6768:5;6764:18;6758:25;6796:63;6851:6;6846:3;6842:16;6828:12;6796:63;:::i;:::-;6697:172;6953:6;6946:5;6942:18;6936:25;6974:65;7031:6;7026:3;7022:16;7008:12;6974:65;:::i;:::-;6879:170;5218:1838;5108:1948;;:::o;7062:311::-;7199:4;7237:3;7226:9;7222:19;7214:27;;7251:115;7363:1;7352:9;7348:17;7339:6;7251:115;:::i;:::-;7062:311;;;;:::o;7379:120::-;7451:23;7468:5;7451:23;:::i;:::-;7444:5;7441:34;7431:62;;7489:1;7486;7479:12;7431:62;7379:120;:::o;7505:137::-;7550:5;7588:6;7575:20;7566:29;;7604:32;7630:5;7604:32;:::i;:::-;7505:137;;;;:::o;7648:117::-;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7894:117;8003:1;8000;7993:12;8031:553;8089:8;8099:6;8149:3;8142:4;8134:6;8130:17;8126:27;8116:122;;8157:79;;:::i;:::-;8116:122;8270:6;8257:20;8247:30;;8300:18;8292:6;8289:30;8286:117;;;8322:79;;:::i;:::-;8286:117;8436:4;8428:6;8424:17;8412:29;;8490:3;8482:4;8474:6;8470:17;8460:8;8456:32;8453:41;8450:128;;;8497:79;;:::i;:::-;8450:128;8031:553;;;;;:::o;8590:1401::-;8714:6;8722;8730;8738;8746;8754;8762;8770;8819:3;8807:9;8798:7;8794:23;8790:33;8787:120;;;8826:79;;:::i;:::-;8787:120;8946:1;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8917:117;9073:2;9099:53;9144:7;9135:6;9124:9;9120:22;9099:53;:::i;:::-;9089:63;;9044:118;9201:2;9227:52;9271:7;9262:6;9251:9;9247:22;9227:52;:::i;:::-;9217:62;;9172:117;9328:2;9354:53;9399:7;9390:6;9379:9;9375:22;9354:53;:::i;:::-;9344:63;;9299:118;9456:3;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9427:119;9585:3;9612:53;9657:7;9648:6;9637:9;9633:22;9612:53;:::i;:::-;9602:63;;9556:119;9742:3;9731:9;9727:19;9714:33;9774:18;9766:6;9763:30;9760:117;;;9796:79;;:::i;:::-;9760:117;9909:65;9966:7;9957:6;9946:9;9942:22;9909:65;:::i;:::-;9891:83;;;;9685:299;8590:1401;;;;;;;;;;;:::o;9997:118::-;10084:24;10102:5;10084:24;:::i;:::-;10079:3;10072:37;9997:118;;:::o;10121:222::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10265:71;10333:1;10322:9;10318:17;10309:6;10265:71;:::i;:::-;10121:222;;;;:::o;10349:118::-;10436:24;10454:5;10436:24;:::i;:::-;10431:3;10424:37;10349:118;;:::o;10473:222::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10617:71;10685:1;10674:9;10670:17;10661:6;10617:71;:::i;:::-;10473:222;;;;:::o;10701:115::-;10786:23;10803:5;10786:23;:::i;:::-;10781:3;10774:36;10701:115;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:328::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11116:69;11182:1;11171:9;11167:17;11158:6;11116:69;:::i;:::-;11195:72;11263:2;11252:9;11248:18;11239:6;11195:72;:::i;:::-;10946:328;;;;;:::o;11280:619::-;11357:6;11365;11373;11422:2;11410:9;11401:7;11397:23;11393:32;11390:119;;;11428:79;;:::i;:::-;11390:119;11548:1;11573:53;11618:7;11609:6;11598:9;11594:22;11573:53;:::i;:::-;11563:63;;11519:117;11675:2;11701:53;11746:7;11737:6;11726:9;11722:22;11701:53;:::i;:::-;11691:63;;11646:118;11803:2;11829:53;11874:7;11865:6;11854:9;11850:22;11829:53;:::i;:::-;11819:63;;11774:118;11280:619;;;;;:::o;11905:763::-;11990:6;11998;12006;12014;12063:3;12051:9;12042:7;12038:23;12034:33;12031:120;;;12070:79;;:::i;:::-;12031:120;12190:1;12215:53;12260:7;12251:6;12240:9;12236:22;12215:53;:::i;:::-;12205:63;;12161:117;12317:2;12343:53;12388:7;12379:6;12368:9;12364:22;12343:53;:::i;:::-;12333:63;;12288:118;12445:2;12471:53;12516:7;12507:6;12496:9;12492:22;12471:53;:::i;:::-;12461:63;;12416:118;12573:2;12599:52;12643:7;12634:6;12623:9;12619:22;12599:52;:::i;:::-;12589:62;;12544:117;11905:763;;;;;;;:::o;12674:169::-;12758:11;12792:6;12787:3;12780:19;12832:4;12827:3;12823:14;12808:29;;12674:169;;;;:::o;12849:171::-;12989:23;12985:1;12977:6;12973:14;12966:47;12849:171;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13026:366;;;:::o;13398:419::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:131;13805:4;13679:131;:::i;:::-;13671:139;;13398:419;;;:::o;13823:224::-;13963:34;13959:1;13951:6;13947:14;13940:58;14032:7;14027:2;14019:6;14015:15;14008:32;13823:224;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:226::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:9;15054:2;15046:6;15042:15;15035:34;14850:226;:::o;15082:366::-;15224:3;15245:67;15309:2;15304:3;15245:67;:::i;:::-;15238:74;;15321:93;15410:3;15321:93;:::i;:::-;15439:2;15434:3;15430:12;15423:19;;15082:366;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15454:419;;;:::o;15879:218::-;15970:4;16008:2;15997:9;15993:18;15985:26;;16021:69;16087:1;16076:9;16072:17;16063:6;16021:69;:::i;:::-;15879:218;;;;:::o;16103:164::-;16243:16;16239:1;16231:6;16227:14;16220:40;16103:164;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:164::-;17210:16;17206:1;17198:6;17194:14;17187:40;17070:164;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:163::-;18177:15;18173:1;18165:6;18161:14;18154:39;18037:163;:::o;18206:366::-;18348:3;18369:67;18433:2;18428:3;18369:67;:::i;:::-;18362:74;;18445:93;18534:3;18445:93;:::i;:::-;18563:2;18558:3;18554:12;18547:19;;18206:366;;;:::o;18578:419::-;18744:4;18782:2;18771:9;18767:18;18759:26;;18831:9;18825:4;18821:20;18817:1;18806:9;18802:17;18795:47;18859:131;18985:4;18859:131;:::i;:::-;18851:139;;18578:419;;;:::o;19003:171::-;19143:23;19139:1;19131:6;19127:14;19120:47;19003:171;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:332::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20149:71;20217:1;20206:9;20202:17;20193:6;20149:71;:::i;:::-;20230:72;20298:2;20287:9;20283:18;20274:6;20230:72;:::i;:::-;19977:332;;;;;:::o;20315:116::-;20385:21;20400:5;20385:21;:::i;:::-;20378:5;20375:32;20365:60;;20421:1;20418;20411:12;20365:60;20315:116;:::o;20437:137::-;20491:5;20522:6;20516:13;20507:22;;20538:30;20562:5;20538:30;:::i;:::-;20437:137;;;;:::o;20580:345::-;20647:6;20696:2;20684:9;20675:7;20671:23;20667:32;20664:119;;;20702:79;;:::i;:::-;20664:119;20822:1;20847:61;20900:7;20891:6;20880:9;20876:22;20847:61;:::i;:::-;20837:71;;20793:125;20580:345;;;;:::o;20931:180::-;20979:77;20976:1;20969:88;21076:4;21073:1;21066:15;21100:4;21097:1;21090:15;21117:194;21157:4;21177:20;21195:1;21177:20;:::i;:::-;21172:25;;21211:20;21229:1;21211:20;:::i;:::-;21206:25;;21255:1;21252;21248:9;21240:17;;21279:1;21273:4;21270:11;21267:37;;;21284:18;;:::i;:::-;21267:37;21117:194;;;;:::o;21317:191::-;21357:3;21376:20;21394:1;21376:20;:::i;:::-;21371:25;;21410:20;21428:1;21410:20;:::i;:::-;21405:25;;21453:1;21450;21446:9;21439:16;;21474:3;21471:1;21468:10;21465:36;;;21481:18;;:::i;:::-;21465:36;21317:191;;;;:::o;21514:222::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21658:71;21726:1;21715:9;21711:17;21702:6;21658:71;:::i;:::-;21514:222;;;;:::o;21742:228::-;21882:34;21878:1;21870:6;21866:14;21859:58;21951:11;21946:2;21938:6;21934:15;21927:36;21742:228;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:168::-;22913:20;22909:1;22901:6;22897:14;22890:44;22773:168;:::o;22947:366::-;23089:3;23110:67;23174:2;23169:3;23110:67;:::i;:::-;23103:74;;23186:93;23275:3;23186:93;:::i;:::-;23304:2;23299:3;23295:12;23288:19;;22947:366;;;:::o;23319:419::-;23485:4;23523:2;23512:9;23508:18;23500:26;;23572:9;23566:4;23562:20;23558:1;23547:9;23543:17;23536:47;23600:131;23726:4;23600:131;:::i;:::-;23592:139;;23319:419;;;:::o;23744:442::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23944:71;24012:1;24001:9;23997:17;23988:6;23944:71;:::i;:::-;24025:72;24093:2;24082:9;24078:18;24069:6;24025:72;:::i;:::-;24107;24175:2;24164:9;24160:18;24151:6;24107:72;:::i;:::-;23744:442;;;;;;:::o;24192:233::-;24231:3;24254:24;24272:5;24254:24;:::i;:::-;24245:33;;24300:66;24293:5;24290:77;24287:103;;24370:18;;:::i;:::-;24287:103;24417:1;24410:5;24406:13;24399:20;;24192:233;;;:::o;24431:410::-;24471:7;24494:20;24512:1;24494:20;:::i;:::-;24489:25;;24528:20;24546:1;24528:20;:::i;:::-;24523:25;;24583:1;24580;24576:9;24605:30;24623:11;24605:30;:::i;:::-;24594:41;;24784:1;24775:7;24771:15;24768:1;24765:22;24745:1;24738:9;24718:83;24695:139;;24814:18;;:::i;:::-;24695:139;24479:362;24431:410;;;;:::o;24847:180::-;24895:77;24892:1;24885:88;24992:4;24989:1;24982:15;25016:4;25013:1;25006:15;25033:185;25073:1;25090:20;25108:1;25090:20;:::i;:::-;25085:25;;25124:20;25142:1;25124:20;:::i;:::-;25119:25;;25163:1;25153:35;;25168:18;;:::i;:::-;25153:35;25210:1;25207;25203:9;25198:14;;25033:185;;;;:::o;25224:60::-;25252:3;25273:5;25266:12;;25224:60;;;:::o;25290:140::-;25339:9;25372:52;25390:33;25399:23;25416:5;25399:23;:::i;:::-;25390:33;:::i;:::-;25372:52;:::i;:::-;25359:65;;25290:140;;;:::o;25436:129::-;25522:36;25552:5;25522:36;:::i;:::-;25517:3;25510:49;25436:129;;:::o;25571:146::-;25668:6;25663:3;25658;25645:30;25709:1;25700:6;25695:3;25691:16;25684:27;25571:146;;;:::o;25723:102::-;25764:6;25815:2;25811:7;25806:2;25799:5;25795:14;25791:28;25781:38;;25723:102;;;:::o;25855:317::-;25953:3;25974:71;26038:6;26033:3;25974:71;:::i;:::-;25967:78;;26055:56;26104:6;26099:3;26092:5;26055:56;:::i;:::-;26136:29;26158:6;26136:29;:::i;:::-;26131:3;26127:39;26120:46;;25855:317;;;;;:::o;26178:662::-;26384:4;26422:3;26411:9;26407:19;26399:27;;26436:71;26504:1;26493:9;26489:17;26480:6;26436:71;:::i;:::-;26517:72;26585:2;26574:9;26570:18;26561:6;26517:72;:::i;:::-;26599:71;26666:2;26655:9;26651:18;26642:6;26599:71;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:88;26828:4;26819:6;26811;26745:88;:::i;:::-;26737:96;;26178:662;;;;;;;;:::o;26846:233::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:16;27050:2;27042:6;27038:15;27031:41;26846:233;:::o;27085:366::-;27227:3;27248:67;27312:2;27307:3;27248:67;:::i;:::-;27241:74;;27324:93;27413:3;27324:93;:::i;:::-;27442:2;27437:3;27433:12;27426:19;;27085:366;;;:::o;27457:419::-;27623:4;27661:2;27650:9;27646:18;27638:26;;27710:9;27704:4;27700:20;27696:1;27685:9;27681:17;27674:47;27738:131;27864:4;27738:131;:::i;:::-;27730:139;;27457:419;;;:::o;27882:85::-;27927:7;27956:5;27945:16;;27882:85;;;:::o;27973:86::-;28008:7;28048:4;28041:5;28037:16;28026:27;;27973:86;;;:::o;28065:154::-;28121:9;28154:59;28170:42;28179:32;28205:5;28179:32;:::i;:::-;28170:42;:::i;:::-;28154:59;:::i;:::-;28141:72;;28065:154;;;:::o;28225:143::-;28318:43;28355:5;28318:43;:::i;:::-;28313:3;28306:56;28225:143;;:::o;28374:234::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28524:77;28598:1;28587:9;28583:17;28574:6;28524:77;:::i;:::-;28374:234;;;;:::o;28614:173::-;28754:25;28750:1;28742:6;28738:14;28731:49;28614:173;:::o;28793:366::-;28935:3;28956:67;29020:2;29015:3;28956:67;:::i;:::-;28949:74;;29032:93;29121:3;29032:93;:::i;:::-;29150:2;29145:3;29141:12;29134:19;;28793:366;;;:::o;29165:419::-;29331:4;29369:2;29358:9;29354:18;29346:26;;29418:9;29412:4;29408:20;29404:1;29393:9;29389:17;29382:47;29446:131;29572:4;29446:131;:::i;:::-;29438:139;;29165:419;;;:::o;29590:216::-;29629:4;29649:19;29666:1;29649:19;:::i;:::-;29644:24;;29682:19;29699:1;29682:19;:::i;:::-;29677:24;;29725:1;29722;29718:9;29710:17;;29749:26;29743:4;29740:36;29737:62;;;29779:18;;:::i;:::-;29737:62;29590:216;;;;:::o;29812:138::-;29860:9;29893:51;29910:33;29919:23;29936:5;29919:23;:::i;:::-;29910:33;:::i;:::-;29893:51;:::i;:::-;29880:64;;29812:138;;;:::o;29956:127::-;30041:35;30070:5;30041:35;:::i;:::-;30036:3;30029:48;29956:127;;:::o;30089:328::-;30208:4;30246:2;30235:9;30231:18;30223:26;;30259:71;30327:1;30316:9;30312:17;30303:6;30259:71;:::i;:::-;30340:70;30406:2;30395:9;30391:18;30382:6;30340:70;:::i;:::-;30089:328;;;;;:::o;30423:182::-;30563:34;30559:1;30551:6;30547:14;30540:58;30423:182;:::o;30611:366::-;30753:3;30774:67;30838:2;30833:3;30774:67;:::i;:::-;30767:74;;30850:93;30939:3;30850:93;:::i;:::-;30968:2;30963:3;30959:12;30952:19;;30611:366;;;:::o;30983:419::-;31149:4;31187:2;31176:9;31172:18;31164:26;;31236:9;31230:4;31226:20;31222:1;31211:9;31207:17;31200:47;31264:131;31390:4;31264:131;:::i;:::-;31256:139;;30983:419;;;:::o;31408:166::-;31548:18;31544:1;31536:6;31532:14;31525:42;31408:166;:::o;31580:366::-;31722:3;31743:67;31807:2;31802:3;31743:67;:::i;:::-;31736:74;;31819:93;31908:3;31819:93;:::i;:::-;31937:2;31932:3;31928:12;31921:19;;31580:366;;;:::o;31952:419::-;32118:4;32156:2;32145:9;32141:18;32133:26;;32205:9;32199:4;32195:20;32191:1;32180:9;32176:17;32169:47;32233:131;32359:4;32233:131;:::i;:::-;32225:139;;31952:419;;;:::o;32377:167::-;32517:19;32513:1;32505:6;32501:14;32494:43;32377:167;:::o;32550:366::-;32692:3;32713:67;32777:2;32772:3;32713:67;:::i;:::-;32706:74;;32789:93;32878:3;32789:93;:::i;:::-;32907:2;32902:3;32898:12;32891:19;;32550:366;;;:::o;32922:419::-;33088:4;33126:2;33115:9;33111:18;33103:26;;33175:9;33169:4;33165:20;33161:1;33150:9;33146:17;33139:47;33203:131;33329:4;33203:131;:::i;:::-;33195:139;;32922:419;;;:::o;33347:162::-;33487:14;33483:1;33475:6;33471:14;33464:38;33347:162;:::o;33515:366::-;33657:3;33678:67;33742:2;33737:3;33678:67;:::i;:::-;33671:74;;33754:93;33843:3;33754:93;:::i;:::-;33872:2;33867:3;33863:12;33856:19;;33515:366;;;:::o;33887:419::-;34053:4;34091:2;34080:9;34076:18;34068:26;;34140:9;34134:4;34130:20;34126:1;34115:9;34111:17;34104:47;34168:131;34294:4;34168:131;:::i;:::-;34160:139;;33887:419;;;:::o;34312:166::-;34452:18;34448:1;34440:6;34436:14;34429:42;34312:166;:::o;34484:366::-;34626:3;34647:67;34711:2;34706:3;34647:67;:::i;:::-;34640:74;;34723:93;34812:3;34723:93;:::i;:::-;34841:2;34836:3;34832:12;34825:19;;34484:366;;;:::o;34856:419::-;35022:4;35060:2;35049:9;35045:18;35037:26;;35109:9;35103:4;35099:20;35095:1;35084:9;35080:17;35073:47;35137:131;35263:4;35137:131;:::i;:::-;35129:139;;34856:419;;;:::o;35281:175::-;35421:27;35417:1;35409:6;35405:14;35398:51;35281:175;:::o;35462:366::-;35604:3;35625:67;35689:2;35684:3;35625:67;:::i;:::-;35618:74;;35701:93;35790:3;35701:93;:::i;:::-;35819:2;35814:3;35810:12;35803:19;;35462:366;;;:::o;35834:419::-;36000:4;36038:2;36027:9;36023:18;36015:26;;36087:9;36081:4;36077:20;36073:1;36062:9;36058:17;36051:47;36115:131;36241:4;36115:131;:::i;:::-;36107:139;;35834:419;;;:::o;36259:230::-;36399:34;36395:1;36387:6;36383:14;36376:58;36468:13;36463:2;36455:6;36451:15;36444:38;36259:230;:::o;36495:366::-;36637:3;36658:67;36722:2;36717:3;36658:67;:::i;:::-;36651:74;;36734:93;36823:3;36734:93;:::i;:::-;36852:2;36847:3;36843:12;36836:19;;36495:366;;;:::o;36867:419::-;37033:4;37071:2;37060:9;37056:18;37048:26;;37120:9;37114:4;37110:20;37106:1;37095:9;37091:17;37084:47;37148:131;37274:4;37148:131;:::i;:::-;37140:139;;36867:419;;;:::o;37292:170::-;37432:22;37428:1;37420:6;37416:14;37409:46;37292:170;:::o;37468:366::-;37610:3;37631:67;37695:2;37690:3;37631:67;:::i;:::-;37624:74;;37707:93;37796:3;37707:93;:::i;:::-;37825:2;37820:3;37816:12;37809:19;;37468:366;;;:::o;37840:419::-;38006:4;38044:2;38033:9;38029:18;38021:26;;38093:9;38087:4;38083:20;38079:1;38068:9;38064:17;38057:47;38121:131;38247:4;38121:131;:::i;:::-;38113:139;;37840:419;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol';\n\nimport {GatewaySettingManager} from './GatewaySettingManager.sol';\nimport {IGateway, IERC20} from './interfaces/IGateway.sol';\n\n/**\n * @title Gateway\n * @notice This contract serves as a gateway for creating orders and managing settlements.\n */\ncontract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable {\n\tstruct fee {\n\t\tuint256 protocolFee;\n\t\tuint256 liquidityProviderAmount;\n\t}\n\n\tmapping(bytes32 => Order) private order;\n\tmapping(address => uint256) private _nonce;\n\tuint256[50] private __gap;\n\n\t/// @custom:oz-upgrades-unsafe-allow constructor\n\tconstructor() {\n\t\t_disableInitializers();\n\t}\n\n\t/**\n\t * @dev Initialize function.\n\t */\n\tfunction initialize() external initializer {\n\t\tMAX_BPS = 100_000;\n\t\t__Ownable2Step_init();\n\t\t__Pausable_init();\n\t}\n\n\t/**\n\t * @dev Modifier that allows only the aggregator to call a function.\n\t */\n\tmodifier onlyAggregator() {\n\t\trequire(msg.sender == _aggregatorAddress, 'OnlyAggregator');\n\t\t_;\n\t}\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\t/**\n\t * @dev Pause the contract.\n\t */\n\tfunction pause() external onlyOwner {\n\t\t_pause();\n\t}\n\n\t/**\n\t * @dev Unpause the contract.\n\t */\n\tfunction unpause() external onlyOwner {\n\t\t_unpause();\n\t}\n\n\t/* ##################################################################\n USER CALLS\n ################################################################## */\n\t/** @dev See {createOrder-IGateway}. */\n\tfunction createOrder(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\tuint96 _rate,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee,\n\t\taddress _refundAddress,\n\t\tstring calldata messageHash\n\t) external whenNotPaused returns (bytes32 orderId) {\n\t\t// checks that are required\n\t\t_handler(_token, _amount, _refundAddress, _senderFeeRecipient, _senderFee);\n\n\t\t// validate messageHash\n\t\trequire(bytes(messageHash).length != 0, 'InvalidMessageHash');\n\n\t\t// transfer token from msg.sender to contract\n\t\tIERC20(_token).transferFrom(msg.sender, address(this), _amount + _senderFee);\n\n\t\t// increase users nonce to avoid replay attacks\n\t\t_nonce[msg.sender]++;\n\n\t\t// generate transaction id for the transaction\n\t\torderId = keccak256(abi.encode(msg.sender, _nonce[msg.sender]));\n\n\t\t// update transaction\n\t\tuint256 _protocolFee = (_amount * protocolFeePercent) / MAX_BPS;\n\t\torder[orderId] = Order({\n\t\t\tsender: msg.sender,\n\t\t\ttoken: _token,\n\t\t\tsenderFeeRecipient: _senderFeeRecipient,\n\t\t\tsenderFee: _senderFee,\n\t\t\tprotocolFee: _protocolFee,\n\t\t\tisFulfilled: false,\n\t\t\tisRefunded: false,\n\t\t\trefundAddress: _refundAddress,\n\t\t\tcurrentBPS: uint64(MAX_BPS),\n\t\t\tamount: _amount\n\t\t});\n\n\t\t// emit order created event\n\t\temit OrderCreated(\n\t\t\torder[orderId].sender,\n\t\t\t_token,\n\t\t\torder[orderId].amount,\n\t\t\t_protocolFee,\n\t\t\torderId,\n\t\t\t_rate,\n\t\t\tmessageHash\n\t\t);\n\t}\n\n\t/**\n\t * @dev Internal function to handle order creation.\n\t * @param _token The address of the token being traded.\n\t * @param _amount The amount of tokens being traded.\n\t * @param _refundAddress The address to refund the tokens in case of cancellation.\n\t * @param _senderFeeRecipient The address of the recipient for the sender fee.\n\t * @param _senderFee The amount of the sender fee.\n\t */\n\tfunction _handler(\n\t\taddress _token,\n\t\tuint256 _amount,\n\t\taddress _refundAddress,\n\t\taddress _senderFeeRecipient,\n\t\tuint256 _senderFee\n\t) internal view {\n\t\trequire(_isTokenSupported[_token] == 1, 'TokenNotSupported');\n\t\trequire(_amount != 0, 'AmountIsZero');\n\t\trequire(_refundAddress != address(0), 'ThrowZeroAddress');\n\n\t\tif (_senderFee != 0) {\n\t\t\trequire(_senderFeeRecipient != address(0), 'InvalidSenderFeeRecipient');\n\t\t}\n\t}\n\n\t/* ##################################################################\n AGGREGATOR FUNCTIONS\n ################################################################## */\n\t/** @dev See {settle-IGateway}. */\n\tfunction settle(\n\t\tbytes32 _splitOrderId,\n\t\tbytes32 _orderId,\n\t\taddress _liquidityProvider,\n\t\tuint64 _settlePercent\n\t) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\n\t\t// load the token into memory\n\t\taddress token = order[_orderId].token;\n\n\t\t// subtract sum of amount based on the input _settlePercent\n\t\torder[_orderId].currentBPS -= _settlePercent;\n\n\t\tif (order[_orderId].currentBPS == 0) {\n\t\t\t// update the transaction to be fulfilled\n\t\t\torder[_orderId].isFulfilled = true;\n\n\t\t\tif (order[_orderId].senderFee != 0) {\n\t\t\t\t// transfer sender fee\n\t\t\t\tIERC20(order[_orderId].token).transfer(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\n\t\t\t\t// emit event\n\t\t\t\temit SenderFeeTransferred(\n\t\t\t\t\torder[_orderId].senderFeeRecipient,\n\t\t\t\t\torder[_orderId].senderFee\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t// transfer to liquidity provider\n\t\tuint256 liquidityProviderAmount = (order[_orderId].amount * _settlePercent) / MAX_BPS;\n\t\torder[_orderId].amount -= liquidityProviderAmount;\n\n\t\tuint256 protocolFee = (liquidityProviderAmount * protocolFeePercent) / MAX_BPS;\n\t\tliquidityProviderAmount -= protocolFee;\n\n\t\t// transfer protocol fee\n\t\tIERC20(token).transfer(treasuryAddress, protocolFee);\n\n\t\tIERC20(token).transfer(_liquidityProvider, liquidityProviderAmount);\n\n\t\t// emit settled event\n\t\temit OrderSettled(_splitOrderId, _orderId, _liquidityProvider, _settlePercent);\n\n\t\treturn true;\n\t}\n\n\t/** @dev See {refund-IGateway}. */\n\tfunction refund(uint256 _fee, bytes32 _orderId) external onlyAggregator returns (bool) {\n\t\t// ensure the transaction has not been fulfilled\n\t\trequire(!order[_orderId].isFulfilled, 'OrderFulfilled');\n\t\trequire(!order[_orderId].isRefunded, 'OrderRefunded');\n\t\trequire(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee');\n\n\t\t// transfer refund fee to the treasury\n\t\tIERC20(order[_orderId].token).transfer(treasuryAddress, _fee);\n\n\t\t// reset state values\n\t\torder[_orderId].isRefunded = true;\n\t\torder[_orderId].currentBPS = 0;\n\n\t\t// deduct fee from order amount\n\t\tuint256 refundAmount = order[_orderId].amount - _fee;\n\n\t\t// transfer refund amount and sender fee to the refund address\n\t\tIERC20(order[_orderId].token).transfer(\n\t\t\torder[_orderId].refundAddress,\n\t\t\trefundAmount + order[_orderId].senderFee\n\t\t);\n\n\t\t// emit refunded event\n\t\temit OrderRefunded(_fee, _orderId);\n\n\t\treturn true;\n\t}\n\n\t/* ##################################################################\n VIEW CALLS\n ################################################################## */\n\t/** @dev See {getOrderInfo-IGateway}. */\n\tfunction getOrderInfo(bytes32 _orderId) external view returns (Order memory) {\n\t\treturn order[_orderId];\n\t}\n\n\t/** @dev See {isTokenSupported-IGateway}. */\n\tfunction isTokenSupported(address _token) external view returns (bool) {\n\t\tif (_isTokenSupported[_token] == 1) return true;\n\t\treturn false;\n\t}\n\n\t/** @dev See {getFeeDetails-IGateway}. */\n\tfunction getFeeDetails() external view returns (uint64, uint256) {\n\t\treturn (protocolFeePercent, MAX_BPS);\n\t}\n}\n", "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "ast": { "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Gateway": [ - 579 + 574 ], "GatewaySettingManager": [ - 763 + 758 ], "IERC20": [ - 2554 + 1892 ], "IGateway": [ - 901 + 896 ], "Initializable": [ - 1380 + 1305 ], "PausableUpgradeable": [ - 1508 + 1433 ] }, - "id": 580, + "id": 575, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -680,8 +680,8 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 1509, + "scope": 575, + "sourceUnit": 1434, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" @@ -692,8 +692,8 @@ "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 764, + "scope": 575, + "sourceUnit": 759, "src": "145:66:0", "symbolAliases": [ { @@ -702,7 +702,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 758, "src": "153:21:0", "typeDescriptions": {} }, @@ -717,8 +717,8 @@ "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 902, + "scope": 575, + "sourceUnit": 897, "src": "212:59:0", "symbolAliases": [ { @@ -727,7 +727,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, + "referencedDeclaration": 896, "src": "220:8:0", "typeDescriptions": {} }, @@ -739,7 +739,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "230:6:0", "typeDescriptions": {} }, @@ -759,7 +759,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 901, + "referencedDeclaration": 896, "src": "410:8:0" }, "id": 10, @@ -774,7 +774,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 763, + "referencedDeclaration": 758, "src": "420:21:0" }, "id": 12, @@ -789,7 +789,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1508, + "referencedDeclaration": 1433, "src": "443:19:0" }, "id": 14, @@ -807,16 +807,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 579, + "id": 574, "linearizedBaseContracts": [ - 579, - 1508, - 763, - 1078, - 1211, - 1889, - 1380, - 901 + 574, + 1433, + 758, + 1003, + 1136, + 1814, + 1305, + 896 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -884,7 +884,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 579, + "scope": 574, "src": "466:73:0", "visibility": "public" }, @@ -895,12 +895,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -920,7 +920,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -935,13 +935,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "561:5:0" }, - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -955,7 +955,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -1005,7 +1005,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -1065,7 +1065,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1361, + "referencedDeclaration": 1286, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1119,7 +1119,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 579, + "scope": 574, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -1143,7 +1143,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1187,7 +1187,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 998, + "referencedDeclaration": 923, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1223,7 +1223,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, + "referencedDeclaration": 1337, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1273,7 +1273,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1282, + "referencedDeclaration": 1207, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -1295,7 +1295,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 579, + "scope": 574, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -1354,7 +1354,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1471,7 +1471,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, + "referencedDeclaration": 1411, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1521,7 +1521,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -1543,7 +1543,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 579, + "scope": 574, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -1564,7 +1564,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1502, + "referencedDeclaration": 1427, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -1614,7 +1614,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -1636,7 +1636,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 579, + "scope": 574, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -1644,7 +1644,7 @@ }, { "baseFunctions": [ - 851 + 846 ], "body": { "id": 212, @@ -1980,7 +1980,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$579", + "typeIdentifier": "t_contract$_Gateway_$574", "typeString": "contract Gateway" } } @@ -1988,7 +1988,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$579", + "typeIdentifier": "t_contract$_Gateway_$574", "typeString": "contract Gateway" } ], @@ -2111,10 +2111,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -2130,7 +2130,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -2142,7 +2142,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2553, + "referencedDeclaration": 1891, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -2519,7 +2519,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -2553,7 +2553,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2585,7 +2585,7 @@ "referencedDeclaration": 24, "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -2609,7 +2609,7 @@ "nodeType": "IndexAccess", "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -2743,7 +2743,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2853,10 +2853,10 @@ "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$826_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, @@ -2894,13 +2894,13 @@ "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order memory" } }, "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -2921,7 +2921,7 @@ "referencedDeclaration": 24, "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -2945,7 +2945,7 @@ "nodeType": "IndexAccess", "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -2957,7 +2957,7 @@ "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 812, + "referencedDeclaration": 807, "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2986,7 +2986,7 @@ "referencedDeclaration": 24, "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -3010,7 +3010,7 @@ "nodeType": "IndexAccess", "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -3022,7 +3022,7 @@ "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3113,7 +3113,7 @@ "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, + "referencedDeclaration": 780, "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -3163,7 +3163,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1430, + "referencedDeclaration": 1355, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -3406,7 +3406,7 @@ ], "src": "1927:17:0" }, - "scope": 579, + "scope": 574, "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, @@ -3437,7 +3437,7 @@ "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, + "referencedDeclaration": 591, "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", @@ -4201,7 +4201,7 @@ "parameters": [], "src": "3584:0:0" }, - "scope": 579, + "scope": 574, "src": "3433:427:0", "stateMutability": "view", "virtual": false, @@ -4209,7 +4209,7 @@ }, { "baseFunctions": [ - 865 + 860 ], "body": { "id": 425, @@ -4239,7 +4239,7 @@ "referencedDeclaration": 24, "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4263,7 +4263,7 @@ "nodeType": "IndexAccess", "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4275,7 +4275,7 @@ "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4372,7 +4372,7 @@ "referencedDeclaration": 24, "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4396,7 +4396,7 @@ "nodeType": "IndexAccess", "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4408,7 +4408,7 @@ "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4527,7 +4527,7 @@ "referencedDeclaration": 24, "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4551,7 +4551,7 @@ "nodeType": "IndexAccess", "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4563,7 +4563,7 @@ "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4590,7 +4590,7 @@ "referencedDeclaration": 24, "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4614,7 +4614,7 @@ "nodeType": "IndexAccess", "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4626,7 +4626,7 @@ "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -4678,7 +4678,7 @@ "referencedDeclaration": 24, "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4702,7 +4702,7 @@ "nodeType": "IndexAccess", "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4714,7 +4714,7 @@ "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -4770,7 +4770,7 @@ "referencedDeclaration": 24, "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4794,7 +4794,7 @@ "nodeType": "IndexAccess", "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4806,7 +4806,7 @@ "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4862,7 +4862,7 @@ "referencedDeclaration": 24, "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4886,7 +4886,7 @@ "nodeType": "IndexAccess", "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4898,7 +4898,7 @@ "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4950,7 +4950,7 @@ "referencedDeclaration": 24, "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -4974,7 +4974,7 @@ "nodeType": "IndexAccess", "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -4986,7 +4986,7 @@ "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 811, "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5003,7 +5003,7 @@ "referencedDeclaration": 24, "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5027,7 +5027,7 @@ "nodeType": "IndexAccess", "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5039,7 +5039,7 @@ "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5070,7 +5070,7 @@ "referencedDeclaration": 24, "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5094,7 +5094,7 @@ "nodeType": "IndexAccess", "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5106,7 +5106,7 @@ "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5125,10 +5125,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -5144,7 +5144,7 @@ "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -5156,7 +5156,7 @@ "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -5196,7 +5196,7 @@ "referencedDeclaration": 24, "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5220,7 +5220,7 @@ "nodeType": "IndexAccess", "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5232,7 +5232,7 @@ "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 811, "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5249,7 +5249,7 @@ "referencedDeclaration": 24, "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5273,7 +5273,7 @@ "nodeType": "IndexAccess", "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5285,7 +5285,7 @@ "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5308,7 +5308,7 @@ "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, + "referencedDeclaration": 805, "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -5407,7 +5407,7 @@ "referencedDeclaration": 24, "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5431,7 +5431,7 @@ "nodeType": "IndexAccess", "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5443,7 +5443,7 @@ "memberLocation": "5156:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5491,7 +5491,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "5183:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5524,7 +5524,7 @@ "referencedDeclaration": 24, "src": "5194:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -5548,7 +5548,7 @@ "nodeType": "IndexAccess", "src": "5194:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -5560,7 +5560,7 @@ "memberLocation": "5210:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "5194:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5666,7 +5666,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -5700,7 +5700,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5767,7 +5767,7 @@ "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "5423:15:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5824,10 +5824,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -5843,7 +5843,7 @@ "src": "5400:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -5855,7 +5855,7 @@ "memberLocation": "5414:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "5400:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -5947,10 +5947,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -5966,7 +5966,7 @@ "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -5978,7 +5978,7 @@ "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -6080,7 +6080,7 @@ "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 796, + "referencedDeclaration": 791, "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", @@ -6312,7 +6312,7 @@ ], "src": "4248:6:0" }, - "scope": 579, + "scope": 574, "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, @@ -6320,12 +6320,12 @@ }, { "baseFunctions": [ - 875 + 870 ], "body": { - "id": 531, + "id": 526, "nodeType": "Block", - "src": "5777:839:0", + "src": "5777:809:0", "statements": [ { "expression": { @@ -6350,7 +6350,7 @@ "referencedDeclaration": 24, "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -6374,7 +6374,7 @@ "nodeType": "IndexAccess", "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -6386,7 +6386,7 @@ "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6483,7 +6483,7 @@ "referencedDeclaration": 24, "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -6507,7 +6507,7 @@ "nodeType": "IndexAccess", "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -6519,7 +6519,7 @@ "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6616,7 +6616,7 @@ "referencedDeclaration": 24, "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -6640,7 +6640,7 @@ "nodeType": "IndexAccess", "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -6652,7 +6652,7 @@ "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 820, + "referencedDeclaration": 815, "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6749,7 +6749,7 @@ "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6792,7 +6792,7 @@ "referencedDeclaration": 24, "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -6816,7 +6816,7 @@ "nodeType": "IndexAccess", "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -6828,7 +6828,7 @@ "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6847,10 +6847,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -6866,7 +6866,7 @@ "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -6878,7 +6878,7 @@ "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -6922,7 +6922,7 @@ "referencedDeclaration": 24, "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -6946,7 +6946,7 @@ "nodeType": "IndexAccess", "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -6958,7 +6958,7 @@ "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7010,7 +7010,7 @@ "referencedDeclaration": 24, "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -7034,7 +7034,7 @@ "nodeType": "IndexAccess", "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -7046,7 +7046,7 @@ "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -7093,7 +7093,7 @@ "name": "refundAmount", "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 531, + "scope": 526, "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", @@ -7114,136 +7114,65 @@ "visibility": "internal" } ], - "id": 504, + "id": 499, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 503, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 493, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "6282:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 495, - "indexExpression": { - "id": 494, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "6288:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6282:15:0", + "expression": { + "baseExpression": { + "id": 493, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6298:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 830, - "src": "6282:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 497, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "6307:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 499, - "indexExpression": { - "id": 498, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "6313:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6307:15:0", + "id": 495, + "indexExpression": { + "id": 494, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6323:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 820, - "src": "6307:27:0", + "nodeType": "IndexAccess", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Order_$826_storage", + "typeString": "struct IGateway.Order storage ref" } }, - "src": "6282:52:0", + "id": 496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6298:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 825, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7252,25 +7181,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 502, + "id": 497, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 429, - "src": "6337:4:0", + "src": "6307:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6282:59:0", + "src": "6282:29:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6259:82:0" + "src": "6259:52:0" }, { "expression": { @@ -7278,25 +7207,25 @@ { "expression": { "baseExpression": { - "id": 512, + "id": 507, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6454:5:0", + "src": "6424:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 514, + "id": 509, "indexExpression": { - "id": 513, + "id": 508, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6460:8:0", + "src": "6430:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7307,22 +7236,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6454:15:0", + "src": "6424:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 515, + "id": 510, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6470:13:0", + "memberLocation": "6440:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 826, - "src": "6454:29:0", + "referencedDeclaration": 821, + "src": "6424:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7333,18 +7262,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 521, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 516, + "id": 511, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 492, - "src": "6488:12:0", + "src": "6458:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7355,25 +7284,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 517, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6503:5:0", + "src": "6473:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 519, + "id": 514, "indexExpression": { - "id": 518, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6509:8:0", + "src": "6479:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7384,28 +7313,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6503:15:0", + "src": "6473:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 520, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6519:9:0", + "memberLocation": "6489:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, - "src": "6503:25:0", + "referencedDeclaration": 813, + "src": "6473:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6488:40:0", + "src": "6458:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7428,25 +7357,25 @@ { "expression": { "baseExpression": { - "id": 506, + "id": 501, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6418:5:0", + "src": "6388:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 508, + "id": 503, "indexExpression": { - "id": 507, + "id": 502, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6424:8:0", + "src": "6394:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7457,22 +7386,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6418:15:0", + "src": "6388:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 509, + "id": 504, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6434:5:0", + "memberLocation": "6404:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, - "src": "6418:21:0", + "referencedDeclaration": 809, + "src": "6388:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7486,18 +7415,18 @@ "typeString": "address" } ], - "id": 505, + "id": 500, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "6411:6:0", + "referencedDeclaration": 1892, + "src": "6381:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, - "id": 510, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -7506,29 +7435,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6411:29:0", + "src": "6381:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, - "id": 511, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6441:8:0", + "memberLocation": "6411:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "6411:38:0", + "referencedDeclaration": 1859, + "src": "6381:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 522, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -7537,39 +7466,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6411:121:0", + "src": "6381:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 523, + "id": 518, "nodeType": "ExpressionStatement", - "src": "6411:121:0" + "src": "6381:121:0" }, { "eventCall": { "arguments": [ { - "id": 525, + "id": 520, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 429, - "src": "6581:4:0", + "src": "6551:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 526, + "id": 521, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6587:8:0", + "src": "6557:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7587,18 +7516,18 @@ "typeString": "bytes32" } ], - "id": 524, + "id": 519, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6567:13:0", + "referencedDeclaration": 798, + "src": "6537:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 527, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -7607,28 +7536,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6567:29:0", + "src": "6537:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 528, + "id": 523, "nodeType": "EmitStatement", - "src": "6562:34:0" + "src": "6532:34:0" }, { "expression": { "hexValue": "74727565", - "id": 529, + "id": 524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6608:4:0", + "src": "6578:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7636,9 +7565,9 @@ "value": "true" }, "functionReturnParameters": 437, - "id": 530, + "id": 525, "nodeType": "Return", - "src": "6601:11:0" + "src": "6571:11:0" } ] }, @@ -7649,7 +7578,7 @@ "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 532, + "id": 527, "implemented": true, "kind": "function", "modifiers": [ @@ -7684,7 +7613,7 @@ "name": "_fee", "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", @@ -7711,7 +7640,7 @@ "name": "_orderId", "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", @@ -7745,7 +7674,7 @@ "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", @@ -7768,43 +7697,43 @@ ], "src": "5770:6:0" }, - "scope": 579, - "src": "5690:926:0", + "scope": 574, + "src": "5690:896:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 892 + 887 ], "body": { - "id": 545, + "id": 540, "nodeType": "Block", - "src": "6926:30:0", + "src": "6896:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 541, + "id": 536, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6937:5:0", + "src": "6907:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 543, + "id": 538, "indexExpression": { - "id": 542, + "id": 537, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 535, - "src": "6943:8:0", + "referencedDeclaration": 530, + "src": "6913:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7815,46 +7744,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6937:15:0", + "src": "6907:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 540, - "id": 544, + "functionReturnParameters": 535, + "id": 539, "nodeType": "Return", - "src": "6930:22:0" + "src": "6900:22:0" } ] }, "documentation": { - "id": 533, + "id": 528, "nodeType": "StructuredDocumentation", - "src": "6807:40:0", + "src": "6777:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 546, + "id": 541, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6858:12:0", + "nameLocation": "6828:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 536, + "id": 531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, + "id": 530, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6879:8:0", + "nameLocation": "6849:8:0", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "6871:16:0", + "scope": 541, + "src": "6841:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7862,10 +7791,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 534, + "id": 529, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6871:7:0", + "src": "6841:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7874,66 +7803,66 @@ "visibility": "internal" } ], - "src": "6870:18:0" + "src": "6840:18:0" }, "returnParameters": { - "id": 540, + "id": 535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 539, + "id": 534, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "6912:12:0", + "scope": 541, + "src": "6882:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 538, + "id": 533, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 537, + "id": 532, "name": "Order", "nameLocations": [ - "6912:5:0" + "6882:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, - "src": "6912:5:0" + "referencedDeclaration": 826, + "src": "6882:5:0" }, - "referencedDeclaration": 831, - "src": "6912:5:0", + "referencedDeclaration": 826, + "src": "6882:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6911:14:0" + "src": "6881:14:0" }, - "scope": 579, - "src": "6849:107:0", + "scope": 574, + "src": "6819:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 883 + 878 ], "body": { - "id": 564, + "id": 559, "nodeType": "Block", - "src": "7076:71:0", + "src": "7046:71:0", "statements": [ { "condition": { @@ -7941,32 +7870,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 558, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 554, + "id": 549, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "7084:17:0", + "referencedDeclaration": 591, + "src": "7054:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 556, + "id": 551, "indexExpression": { - "id": 555, + "id": 550, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "7102:6:0", + "referencedDeclaration": 544, + "src": "7072:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7977,7 +7906,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7084:25:0", + "src": "7054:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7987,103 +7916,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 557, + "id": 552, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7113:1:0", + "src": "7083:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7084:30:0", + "src": "7054:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 561, + "id": 556, "nodeType": "IfStatement", - "src": "7080:47:0", + "src": "7050:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 559, + "id": 554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7123:4:0", + "src": "7093:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 553, - "id": 560, + "functionReturnParameters": 548, + "id": 555, "nodeType": "Return", - "src": "7116:11:0" + "src": "7086:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 562, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7138:5:0", + "src": "7108:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 553, - "id": 563, + "functionReturnParameters": 548, + "id": 558, "nodeType": "Return", - "src": "7131:12:0" + "src": "7101:12:0" } ] }, "documentation": { - "id": 547, + "id": 542, "nodeType": "StructuredDocumentation", - "src": "6959:44:0", + "src": "6929:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 565, + "id": 560, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "7014:16:0", + "nameLocation": "6984:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 550, + "id": 545, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 549, + "id": 544, "mutability": "mutable", "name": "_token", - "nameLocation": "7039:6:0", + "nameLocation": "7009:6:0", "nodeType": "VariableDeclaration", - "scope": 565, - "src": "7031:14:0", + "scope": 560, + "src": "7001:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8091,10 +8020,10 @@ "typeString": "address" }, "typeName": { - "id": 548, + "id": 543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7031:7:0", + "src": "7001:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8104,21 +8033,21 @@ "visibility": "internal" } ], - "src": "7030:16:0" + "src": "7000:16:0" }, "returnParameters": { - "id": 553, + "id": 548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 547, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 565, - "src": "7070:4:0", + "scope": 560, + "src": "7040:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8126,10 +8055,10 @@ "typeString": "bool" }, "typeName": { - "id": 551, + "id": 546, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7070:4:0", + "src": "7040:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8138,104 +8067,104 @@ "visibility": "internal" } ], - "src": "7069:6:0" + "src": "7039:6:0" }, - "scope": 579, - "src": "7005:142:0", + "scope": 574, + "src": "6975:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 900 + 895 ], "body": { - "id": 577, + "id": 572, "nodeType": "Block", - "src": "7258:44:0", + "src": "7228:44:0", "statements": [ { "expression": { "components": [ { - "id": 573, + "id": 568, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "7270:18:0", + "referencedDeclaration": 583, + "src": "7240:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 574, + "id": 569, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "7290:7:0", + "referencedDeclaration": 581, + "src": "7260:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 575, + "id": 570, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7269:29:0", + "src": "7239:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 572, - "id": 576, + "functionReturnParameters": 567, + "id": 571, "nodeType": "Return", - "src": "7262:36:0" + "src": "7232:36:0" } ] }, "documentation": { - "id": 566, + "id": 561, "nodeType": "StructuredDocumentation", - "src": "7150:41:0", + "src": "7120:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 578, + "id": 573, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7202:13:0", + "nameLocation": "7172:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 567, + "id": 562, "nodeType": "ParameterList", "parameters": [], - "src": "7215:2:0" + "src": "7185:2:0" }, "returnParameters": { - "id": 572, + "id": 567, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 569, + "id": 564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 578, - "src": "7241:6:0", + "scope": 573, + "src": "7211:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8243,10 +8172,10 @@ "typeString": "uint64" }, "typeName": { - "id": 568, + "id": 563, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7241:6:0", + "src": "7211:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8256,13 +8185,13 @@ }, { "constant": false, - "id": 571, + "id": 566, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 578, - "src": "7249:7:0", + "scope": 573, + "src": "7219:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8270,10 +8199,10 @@ "typeString": "uint256" }, "typeName": { - "id": 570, + "id": 565, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7249:7:0", + "src": "7219:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8282,48 +8211,48 @@ "visibility": "internal" } ], - "src": "7240:17:0" + "src": "7210:17:0" }, - "scope": 579, - "src": "7193:109:0", + "scope": 574, + "src": "7163:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 580, - "src": "390:6914:0", + "scope": 575, + "src": "390:6884:0", "usedErrors": [] } ], - "src": "39:7266:0" + "src": "39:7236:0" }, "legacyAST": { "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/Gateway.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Gateway": [ - 579 + 574 ], "GatewaySettingManager": [ - 763 + 758 ], "IERC20": [ - 2554 + 1892 ], "IGateway": [ - 901 + 896 ], "Initializable": [ - 1380 + 1305 ], "PausableUpgradeable": [ - 1508 + 1433 ] }, - "id": 580, + "id": 575, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ @@ -8344,8 +8273,8 @@ "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 1509, + "scope": 575, + "sourceUnit": 1434, "src": "65:78:0", "symbolAliases": [], "unitAlias": "" @@ -8356,8 +8285,8 @@ "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 764, + "scope": 575, + "sourceUnit": 759, "src": "145:66:0", "symbolAliases": [ { @@ -8366,7 +8295,7 @@ "name": "GatewaySettingManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 758, "src": "153:21:0", "typeDescriptions": {} }, @@ -8381,8 +8310,8 @@ "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 580, - "sourceUnit": 902, + "scope": 575, + "sourceUnit": 897, "src": "212:59:0", "symbolAliases": [ { @@ -8391,7 +8320,7 @@ "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, + "referencedDeclaration": 896, "src": "220:8:0", "typeDescriptions": {} }, @@ -8403,7 +8332,7 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "230:6:0", "typeDescriptions": {} }, @@ -8423,7 +8352,7 @@ "410:8:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 901, + "referencedDeclaration": 896, "src": "410:8:0" }, "id": 10, @@ -8438,7 +8367,7 @@ "420:21:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 763, + "referencedDeclaration": 758, "src": "420:21:0" }, "id": 12, @@ -8453,7 +8382,7 @@ "443:19:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1508, + "referencedDeclaration": 1433, "src": "443:19:0" }, "id": 14, @@ -8471,16 +8400,16 @@ "text": " @title Gateway\n @notice This contract serves as a gateway for creating orders and managing settlements." }, "fullyImplemented": true, - "id": 579, + "id": 574, "linearizedBaseContracts": [ - 579, - 1508, - 763, - 1078, - 1211, - 1889, - 1380, - 901 + 574, + 1433, + 758, + 1003, + 1136, + 1814, + 1305, + 896 ], "name": "Gateway", "nameLocation": "399:7:0", @@ -8548,7 +8477,7 @@ "name": "fee", "nameLocation": "473:3:0", "nodeType": "StructDefinition", - "scope": 579, + "scope": 574, "src": "466:73:0", "visibility": "public" }, @@ -8559,12 +8488,12 @@ "name": "order", "nameLocation": "576:5:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "542:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "typeName": { @@ -8584,7 +8513,7 @@ "nodeType": "Mapping", "src": "542:25:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order)" }, "valueName": "", @@ -8599,13 +8528,13 @@ "561:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "561:5:0" }, - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "561:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } } @@ -8619,7 +8548,7 @@ "name": "_nonce", "nameLocation": "620:6:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "584:42:0", "stateVariable": true, "storageLocation": "default", @@ -8669,7 +8598,7 @@ "name": "__gap", "nameLocation": "649:5:0", "nodeType": "VariableDeclaration", - "scope": 579, + "scope": 574, "src": "629:25:0", "stateVariable": true, "storageLocation": "default", @@ -8729,7 +8658,7 @@ "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1361, + "referencedDeclaration": 1286, "src": "726:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8783,7 +8712,7 @@ "parameters": [], "src": "722:0:0" }, - "scope": 579, + "scope": 574, "src": "708:44:0", "stateMutability": "nonpayable", "virtual": false, @@ -8807,7 +8736,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "842:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8851,7 +8780,7 @@ "name": "__Ownable2Step_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 998, + "referencedDeclaration": 923, "src": "863:19:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8887,7 +8816,7 @@ "name": "__Pausable_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, + "referencedDeclaration": 1337, "src": "888:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -8937,7 +8866,7 @@ "826:11:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1282, + "referencedDeclaration": 1207, "src": "826:11:0" }, "nodeType": "ModifierInvocation", @@ -8959,7 +8888,7 @@ "parameters": [], "src": "838:0:0" }, - "scope": 579, + "scope": 574, "src": "795:114:0", "stateMutability": "nonpayable", "virtual": false, @@ -9018,7 +8947,7 @@ "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "1044:18:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9135,7 +9064,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, + "referencedDeclaration": 1411, "src": "1365:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9185,7 +9114,7 @@ "1351:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1351:9:0" }, "nodeType": "ModifierInvocation", @@ -9207,7 +9136,7 @@ "parameters": [], "src": "1361:0:0" }, - "scope": 579, + "scope": 574, "src": "1325:52:0", "stateMutability": "nonpayable", "virtual": false, @@ -9228,7 +9157,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1502, + "referencedDeclaration": 1427, "src": "1463:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -9278,7 +9207,7 @@ "1449:9:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1449:9:0" }, "nodeType": "ModifierInvocation", @@ -9300,7 +9229,7 @@ "parameters": [], "src": "1459:0:0" }, - "scope": 579, + "scope": 574, "src": "1421:56:0", "stateMutability": "nonpayable", "virtual": false, @@ -9308,7 +9237,7 @@ }, { "baseFunctions": [ - 851 + 846 ], "body": { "id": 212, @@ -9644,7 +9573,7 @@ "referencedDeclaration": 4294967268, "src": "2246:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$579", + "typeIdentifier": "t_contract$_Gateway_$574", "typeString": "contract Gateway" } } @@ -9652,7 +9581,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Gateway_$579", + "typeIdentifier": "t_contract$_Gateway_$574", "typeString": "contract Gateway" } ], @@ -9775,10 +9704,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "2198:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -9794,7 +9723,7 @@ "src": "2198:14:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -9806,7 +9735,7 @@ "memberLocation": "2213:12:0", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2553, + "referencedDeclaration": 1891, "src": "2198:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -10183,7 +10112,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "2529:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -10217,7 +10146,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10249,7 +10178,7 @@ "referencedDeclaration": 24, "src": "2562:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -10273,7 +10202,7 @@ "nodeType": "IndexAccess", "src": "2562:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10407,7 +10336,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "2829:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10517,10 +10446,10 @@ "name": "Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "2579:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$831_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Order_$826_storage_ptr_$", "typeString": "type(struct IGateway.Order storage pointer)" } }, @@ -10558,13 +10487,13 @@ "src": "2579:283:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order memory" } }, "src": "2562:300:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10585,7 +10514,7 @@ "referencedDeclaration": 24, "src": "2919:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -10609,7 +10538,7 @@ "nodeType": "IndexAccess", "src": "2919:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10621,7 +10550,7 @@ "memberLocation": "2934:6:0", "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 812, + "referencedDeclaration": 807, "src": "2919:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10650,7 +10579,7 @@ "referencedDeclaration": 24, "src": "2956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -10674,7 +10603,7 @@ "nodeType": "IndexAccess", "src": "2956:14:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -10686,7 +10615,7 @@ "memberLocation": "2971:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "2956:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10777,7 +10706,7 @@ "name": "OrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, + "referencedDeclaration": 780, "src": "2902:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -10827,7 +10756,7 @@ "1905:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1430, + "referencedDeclaration": 1355, "src": "1905:13:0" }, "nodeType": "ModifierInvocation", @@ -11070,7 +10999,7 @@ ], "src": "1927:17:0" }, - "scope": 579, + "scope": 574, "src": "1709:1331:0", "stateMutability": "nonpayable", "virtual": false, @@ -11101,7 +11030,7 @@ "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, + "referencedDeclaration": 591, "src": "3596:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", @@ -11865,7 +11794,7 @@ "parameters": [], "src": "3584:0:0" }, - "scope": 579, + "scope": 574, "src": "3433:427:0", "stateMutability": "view", "virtual": false, @@ -11873,7 +11802,7 @@ }, { "baseFunctions": [ - 865 + 860 ], "body": { "id": 425, @@ -11903,7 +11832,7 @@ "referencedDeclaration": 24, "src": "4319:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -11927,7 +11856,7 @@ "nodeType": "IndexAccess", "src": "4319:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -11939,7 +11868,7 @@ "memberLocation": "4335:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "4319:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12036,7 +11965,7 @@ "referencedDeclaration": 24, "src": "4378:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12060,7 +11989,7 @@ "nodeType": "IndexAccess", "src": "4378:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12072,7 +12001,7 @@ "memberLocation": "4394:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "4378:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12191,7 +12120,7 @@ "referencedDeclaration": 24, "src": "4475:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12215,7 +12144,7 @@ "nodeType": "IndexAccess", "src": "4475:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12227,7 +12156,7 @@ "memberLocation": "4491:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "4475:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12254,7 +12183,7 @@ "referencedDeclaration": 24, "src": "4563:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12278,7 +12207,7 @@ "nodeType": "IndexAccess", "src": "4563:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12290,7 +12219,7 @@ "memberLocation": "4579:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "4563:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -12342,7 +12271,7 @@ "referencedDeclaration": 24, "src": "4616:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12366,7 +12295,7 @@ "nodeType": "IndexAccess", "src": "4616:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12378,7 +12307,7 @@ "memberLocation": "4632:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "4616:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -12434,7 +12363,7 @@ "referencedDeclaration": 24, "src": "4699:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12458,7 +12387,7 @@ "nodeType": "IndexAccess", "src": "4699:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12470,7 +12399,7 @@ "memberLocation": "4715:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "4699:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12526,7 +12455,7 @@ "referencedDeclaration": 24, "src": "4743:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12550,7 +12479,7 @@ "nodeType": "IndexAccess", "src": "4743:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12562,7 +12491,7 @@ "memberLocation": "4759:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "4743:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12614,7 +12543,7 @@ "referencedDeclaration": 24, "src": "4853:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12638,7 +12567,7 @@ "nodeType": "IndexAccess", "src": "4853:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12650,7 +12579,7 @@ "memberLocation": "4869:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 811, "src": "4853:34:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12667,7 +12596,7 @@ "referencedDeclaration": 24, "src": "4894:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12691,7 +12620,7 @@ "nodeType": "IndexAccess", "src": "4894:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12703,7 +12632,7 @@ "memberLocation": "4910:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "4894:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12734,7 +12663,7 @@ "referencedDeclaration": 24, "src": "4815:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12758,7 +12687,7 @@ "nodeType": "IndexAccess", "src": "4815:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12770,7 +12699,7 @@ "memberLocation": "4831:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "4815:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12789,10 +12718,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "4808:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -12808,7 +12737,7 @@ "src": "4808:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -12820,7 +12749,7 @@ "memberLocation": "4838:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "4808:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -12860,7 +12789,7 @@ "referencedDeclaration": 24, "src": "4982:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12884,7 +12813,7 @@ "nodeType": "IndexAccess", "src": "4982:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12896,7 +12825,7 @@ "memberLocation": "4998:18:0", "memberName": "senderFeeRecipient", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 811, "src": "4982:34:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12913,7 +12842,7 @@ "referencedDeclaration": 24, "src": "5023:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -12937,7 +12866,7 @@ "nodeType": "IndexAccess", "src": "5023:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -12949,7 +12878,7 @@ "memberLocation": "5039:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, + "referencedDeclaration": 813, "src": "5023:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12972,7 +12901,7 @@ "name": "SenderFeeTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, + "referencedDeclaration": 805, "src": "4955:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -13071,7 +13000,7 @@ "referencedDeclaration": 24, "src": "5140:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -13095,7 +13024,7 @@ "nodeType": "IndexAccess", "src": "5140:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -13107,7 +13036,7 @@ "memberLocation": "5156:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "5140:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13155,7 +13084,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "5183:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13188,7 +13117,7 @@ "referencedDeclaration": 24, "src": "5194:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -13212,7 +13141,7 @@ "nodeType": "IndexAccess", "src": "5194:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -13224,7 +13153,7 @@ "memberLocation": "5210:6:0", "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 830, + "referencedDeclaration": 825, "src": "5194:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13330,7 +13259,7 @@ "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "5297:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -13364,7 +13293,7 @@ "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, + "referencedDeclaration": 581, "src": "5319:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13431,7 +13360,7 @@ "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "5423:15:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13488,10 +13417,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "5400:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -13507,7 +13436,7 @@ "src": "5400:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -13519,7 +13448,7 @@ "memberLocation": "5414:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "5400:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -13611,10 +13540,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "5457:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -13630,7 +13559,7 @@ "src": "5457:13:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -13642,7 +13571,7 @@ "memberLocation": "5471:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "5457:22:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -13744,7 +13673,7 @@ "name": "OrderSettled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 796, + "referencedDeclaration": 791, "src": "5558:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint96_$returns$__$", @@ -13976,7 +13905,7 @@ ], "src": "4248:6:0" }, - "scope": 579, + "scope": 574, "src": "4097:1554:0", "stateMutability": "nonpayable", "virtual": false, @@ -13984,12 +13913,12 @@ }, { "baseFunctions": [ - 875 + 870 ], "body": { - "id": 531, + "id": 526, "nodeType": "Block", - "src": "5777:839:0", + "src": "5777:809:0", "statements": [ { "expression": { @@ -14014,7 +13943,7 @@ "referencedDeclaration": 24, "src": "5841:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14038,7 +13967,7 @@ "nodeType": "IndexAccess", "src": "5841:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14050,7 +13979,7 @@ "memberLocation": "5857:11:0", "memberName": "isFulfilled", "nodeType": "MemberAccess", - "referencedDeclaration": 822, + "referencedDeclaration": 817, "src": "5841:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14147,7 +14076,7 @@ "referencedDeclaration": 24, "src": "5900:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14171,7 +14100,7 @@ "nodeType": "IndexAccess", "src": "5900:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14183,7 +14112,7 @@ "memberLocation": "5916:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "5900:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14280,7 +14209,7 @@ "referencedDeclaration": 24, "src": "5956:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14304,7 +14233,7 @@ "nodeType": "IndexAccess", "src": "5956:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14316,7 +14245,7 @@ "memberLocation": "5972:11:0", "memberName": "protocolFee", "nodeType": "MemberAccess", - "referencedDeclaration": 820, + "referencedDeclaration": 815, "src": "5956:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14413,7 +14342,7 @@ "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "6102:15:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14456,7 +14385,7 @@ "referencedDeclaration": 24, "src": "6070:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14480,7 +14409,7 @@ "nodeType": "IndexAccess", "src": "6070:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14492,7 +14421,7 @@ "memberLocation": "6086:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, + "referencedDeclaration": 809, "src": "6070:21:0", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14511,10 +14440,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "6063:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, @@ -14530,7 +14459,7 @@ "src": "6063:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, @@ -14542,7 +14471,7 @@ "memberLocation": "6093:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, + "referencedDeclaration": 1859, "src": "6063:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", @@ -14586,7 +14515,7 @@ "referencedDeclaration": 24, "src": "6153:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14610,7 +14539,7 @@ "nodeType": "IndexAccess", "src": "6153:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14622,7 +14551,7 @@ "memberLocation": "6169:10:0", "memberName": "isRefunded", "nodeType": "MemberAccess", - "referencedDeclaration": 824, + "referencedDeclaration": 819, "src": "6153:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14674,7 +14603,7 @@ "referencedDeclaration": 24, "src": "6190:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, @@ -14698,7 +14627,7 @@ "nodeType": "IndexAccess", "src": "6190:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, @@ -14710,7 +14639,7 @@ "memberLocation": "6206:10:0", "memberName": "currentBPS", "nodeType": "MemberAccess", - "referencedDeclaration": 828, + "referencedDeclaration": 823, "src": "6190:26:0", "typeDescriptions": { "typeIdentifier": "t_uint96", @@ -14757,7 +14686,7 @@ "name": "refundAmount", "nameLocation": "6267:12:0", "nodeType": "VariableDeclaration", - "scope": 531, + "scope": 526, "src": "6259:20:0", "stateVariable": false, "storageLocation": "default", @@ -14778,136 +14707,65 @@ "visibility": "internal" } ], - "id": 504, + "id": 499, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 503, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 493, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "6282:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 495, - "indexExpression": { - "id": 494, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "6288:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6282:15:0", + "expression": { + "baseExpression": { + "id": 493, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6282:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", + "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6298:6:0", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 830, - "src": "6282:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 497, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "6307:5:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", - "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" - } - }, - "id": 499, - "indexExpression": { - "id": 498, - "name": "_orderId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "6313:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6307:15:0", + "id": 495, + "indexExpression": { + "id": 494, + "name": "_orderId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "6288:8:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", - "typeString": "struct IGateway.Order storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6323:11:0", - "memberName": "protocolFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 820, - "src": "6307:27:0", + "nodeType": "IndexAccess", + "src": "6282:15:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Order_$826_storage", + "typeString": "struct IGateway.Order storage ref" } }, - "src": "6282:52:0", + "id": 496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6298:6:0", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 825, + "src": "6282:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14916,25 +14774,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 502, + "id": 497, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 429, - "src": "6337:4:0", + "src": "6307:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6282:59:0", + "src": "6282:29:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6259:82:0" + "src": "6259:52:0" }, { "expression": { @@ -14942,25 +14800,25 @@ { "expression": { "baseExpression": { - "id": 512, + "id": 507, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6454:5:0", + "src": "6424:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 514, + "id": 509, "indexExpression": { - "id": 513, + "id": 508, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6460:8:0", + "src": "6430:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14971,22 +14829,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6454:15:0", + "src": "6424:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 515, + "id": 510, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6470:13:0", + "memberLocation": "6440:13:0", "memberName": "refundAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 826, - "src": "6454:29:0", + "referencedDeclaration": 821, + "src": "6424:29:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14997,18 +14855,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 521, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 516, + "id": 511, "name": "refundAmount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 492, - "src": "6488:12:0", + "src": "6458:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15019,25 +14877,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 517, + "id": 512, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6503:5:0", + "src": "6473:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 519, + "id": 514, "indexExpression": { - "id": 518, + "id": 513, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6509:8:0", + "src": "6479:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15048,28 +14906,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6503:15:0", + "src": "6473:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 520, + "id": 515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6519:9:0", + "memberLocation": "6489:9:0", "memberName": "senderFee", "nodeType": "MemberAccess", - "referencedDeclaration": 818, - "src": "6503:25:0", + "referencedDeclaration": 813, + "src": "6473:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6488:40:0", + "src": "6458:40:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15092,25 +14950,25 @@ { "expression": { "baseExpression": { - "id": 506, + "id": 501, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6418:5:0", + "src": "6388:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 508, + "id": 503, "indexExpression": { - "id": 507, + "id": 502, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6424:8:0", + "src": "6394:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15121,22 +14979,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6418:15:0", + "src": "6388:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "id": 509, + "id": 504, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6434:5:0", + "memberLocation": "6404:5:0", "memberName": "token", "nodeType": "MemberAccess", - "referencedDeclaration": 814, - "src": "6418:21:0", + "referencedDeclaration": 809, + "src": "6388:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15150,18 +15008,18 @@ "typeString": "address" } ], - "id": 505, + "id": 500, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "6411:6:0", + "referencedDeclaration": 1892, + "src": "6381:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2554_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1892_$", "typeString": "type(contract IERC20)" } }, - "id": 510, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -15170,29 +15028,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6411:29:0", + "src": "6381:29:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2554", + "typeIdentifier": "t_contract$_IERC20_$1892", "typeString": "contract IERC20" } }, - "id": 511, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6441:8:0", + "memberLocation": "6411:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "6411:38:0", + "referencedDeclaration": 1859, + "src": "6381:38:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 522, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -15201,39 +15059,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6411:121:0", + "src": "6381:121:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 523, + "id": 518, "nodeType": "ExpressionStatement", - "src": "6411:121:0" + "src": "6381:121:0" }, { "eventCall": { "arguments": [ { - "id": 525, + "id": 520, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 429, - "src": "6581:4:0", + "src": "6551:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 526, + "id": 521, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 431, - "src": "6587:8:0", + "src": "6557:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15251,18 +15109,18 @@ "typeString": "bytes32" } ], - "id": 524, + "id": 519, "name": "OrderRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6567:13:0", + "referencedDeclaration": 798, + "src": "6537:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$", "typeString": "function (uint256,bytes32)" } }, - "id": 527, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -15271,28 +15129,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6567:29:0", + "src": "6537:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 528, + "id": 523, "nodeType": "EmitStatement", - "src": "6562:34:0" + "src": "6532:34:0" }, { "expression": { "hexValue": "74727565", - "id": 529, + "id": 524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6608:4:0", + "src": "6578:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15300,9 +15158,9 @@ "value": "true" }, "functionReturnParameters": 437, - "id": 530, + "id": 525, "nodeType": "Return", - "src": "6601:11:0" + "src": "6571:11:0" } ] }, @@ -15313,7 +15171,7 @@ "text": "@dev See {refund-IGateway}. " }, "functionSelector": "71eedb88", - "id": 532, + "id": 527, "implemented": true, "kind": "function", "modifiers": [ @@ -15348,7 +15206,7 @@ "name": "_fee", "nameLocation": "5714:4:0", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5706:12:0", "stateVariable": false, "storageLocation": "default", @@ -15375,7 +15233,7 @@ "name": "_orderId", "nameLocation": "5728:8:0", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5720:16:0", "stateVariable": false, "storageLocation": "default", @@ -15409,7 +15267,7 @@ "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 532, + "scope": 527, "src": "5771:4:0", "stateVariable": false, "storageLocation": "default", @@ -15432,43 +15290,43 @@ ], "src": "5770:6:0" }, - "scope": 579, - "src": "5690:926:0", + "scope": 574, + "src": "5690:896:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 892 + 887 ], "body": { - "id": 545, + "id": 540, "nodeType": "Block", - "src": "6926:30:0", + "src": "6896:30:0", "statements": [ { "expression": { "baseExpression": { - "id": 541, + "id": 536, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24, - "src": "6937:5:0", + "src": "6907:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$831_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Order_$826_storage_$", "typeString": "mapping(bytes32 => struct IGateway.Order storage ref)" } }, - "id": 543, + "id": 538, "indexExpression": { - "id": 542, + "id": 537, "name": "_orderId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 535, - "src": "6943:8:0", + "referencedDeclaration": 530, + "src": "6913:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15479,46 +15337,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6937:15:0", + "src": "6907:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage", + "typeIdentifier": "t_struct$_Order_$826_storage", "typeString": "struct IGateway.Order storage ref" } }, - "functionReturnParameters": 540, - "id": 544, + "functionReturnParameters": 535, + "id": 539, "nodeType": "Return", - "src": "6930:22:0" + "src": "6900:22:0" } ] }, "documentation": { - "id": 533, + "id": 528, "nodeType": "StructuredDocumentation", - "src": "6807:40:0", + "src": "6777:40:0", "text": "@dev See {getOrderInfo-IGateway}. " }, "functionSelector": "768c6ec0", - "id": 546, + "id": 541, "implemented": true, "kind": "function", "modifiers": [], "name": "getOrderInfo", - "nameLocation": "6858:12:0", + "nameLocation": "6828:12:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 536, + "id": 531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, + "id": 530, "mutability": "mutable", "name": "_orderId", - "nameLocation": "6879:8:0", + "nameLocation": "6849:8:0", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "6871:16:0", + "scope": 541, + "src": "6841:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15526,10 +15384,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 534, + "id": 529, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6871:7:0", + "src": "6841:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15538,66 +15396,66 @@ "visibility": "internal" } ], - "src": "6870:18:0" + "src": "6840:18:0" }, "returnParameters": { - "id": 540, + "id": 535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 539, + "id": 534, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "6912:12:0", + "scope": 541, + "src": "6882:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 538, + "id": 533, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 537, + "id": 532, "name": "Order", "nameLocations": [ - "6912:5:0" + "6882:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, - "src": "6912:5:0" + "referencedDeclaration": 826, + "src": "6882:5:0" }, - "referencedDeclaration": 831, - "src": "6912:5:0", + "referencedDeclaration": 826, + "src": "6882:5:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } }, "visibility": "internal" } ], - "src": "6911:14:0" + "src": "6881:14:0" }, - "scope": 579, - "src": "6849:107:0", + "scope": 574, + "src": "6819:107:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 883 + 878 ], "body": { - "id": 564, + "id": 559, "nodeType": "Block", - "src": "7076:71:0", + "src": "7046:71:0", "statements": [ { "condition": { @@ -15605,32 +15463,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 558, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 554, + "id": 549, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "7084:17:0", + "referencedDeclaration": 591, + "src": "7054:17:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 556, + "id": 551, "indexExpression": { - "id": 555, + "id": 550, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 549, - "src": "7102:6:0", + "referencedDeclaration": 544, + "src": "7072:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15641,7 +15499,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7084:25:0", + "src": "7054:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15651,103 +15509,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 557, + "id": 552, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7113:1:0", + "src": "7083:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7084:30:0", + "src": "7054:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 561, + "id": 556, "nodeType": "IfStatement", - "src": "7080:47:0", + "src": "7050:47:0", "trueBody": { "expression": { "hexValue": "74727565", - "id": 559, + "id": 554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7123:4:0", + "src": "7093:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 553, - "id": 560, + "functionReturnParameters": 548, + "id": 555, "nodeType": "Return", - "src": "7116:11:0" + "src": "7086:11:0" } }, { "expression": { "hexValue": "66616c7365", - "id": 562, + "id": 557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7138:5:0", + "src": "7108:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 553, - "id": 563, + "functionReturnParameters": 548, + "id": 558, "nodeType": "Return", - "src": "7131:12:0" + "src": "7101:12:0" } ] }, "documentation": { - "id": 547, + "id": 542, "nodeType": "StructuredDocumentation", - "src": "6959:44:0", + "src": "6929:44:0", "text": "@dev See {isTokenSupported-IGateway}. " }, "functionSelector": "75151b63", - "id": 565, + "id": 560, "implemented": true, "kind": "function", "modifiers": [], "name": "isTokenSupported", - "nameLocation": "7014:16:0", + "nameLocation": "6984:16:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 550, + "id": 545, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 549, + "id": 544, "mutability": "mutable", "name": "_token", - "nameLocation": "7039:6:0", + "nameLocation": "7009:6:0", "nodeType": "VariableDeclaration", - "scope": 565, - "src": "7031:14:0", + "scope": 560, + "src": "7001:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15755,10 +15613,10 @@ "typeString": "address" }, "typeName": { - "id": 548, + "id": 543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7031:7:0", + "src": "7001:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15768,21 +15626,21 @@ "visibility": "internal" } ], - "src": "7030:16:0" + "src": "7000:16:0" }, "returnParameters": { - "id": 553, + "id": 548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 552, + "id": 547, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 565, - "src": "7070:4:0", + "scope": 560, + "src": "7040:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15790,10 +15648,10 @@ "typeString": "bool" }, "typeName": { - "id": 551, + "id": 546, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7070:4:0", + "src": "7040:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15802,104 +15660,104 @@ "visibility": "internal" } ], - "src": "7069:6:0" + "src": "7039:6:0" }, - "scope": 579, - "src": "7005:142:0", + "scope": 574, + "src": "6975:142:0", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 900 + 895 ], "body": { - "id": 577, + "id": 572, "nodeType": "Block", - "src": "7258:44:0", + "src": "7228:44:0", "statements": [ { "expression": { "components": [ { - "id": 573, + "id": 568, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "7270:18:0", + "referencedDeclaration": 583, + "src": "7240:18:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 574, + "id": 569, "name": "MAX_BPS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "7290:7:0", + "referencedDeclaration": 581, + "src": "7260:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 575, + "id": 570, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7269:29:0", + "src": "7239:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "functionReturnParameters": 572, - "id": 576, + "functionReturnParameters": 567, + "id": 571, "nodeType": "Return", - "src": "7262:36:0" + "src": "7232:36:0" } ] }, "documentation": { - "id": 566, + "id": 561, "nodeType": "StructuredDocumentation", - "src": "7150:41:0", + "src": "7120:41:0", "text": "@dev See {getFeeDetails-IGateway}. " }, "functionSelector": "b810c636", - "id": 578, + "id": 573, "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeDetails", - "nameLocation": "7202:13:0", + "nameLocation": "7172:13:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 567, + "id": 562, "nodeType": "ParameterList", "parameters": [], - "src": "7215:2:0" + "src": "7185:2:0" }, "returnParameters": { - "id": 572, + "id": 567, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 569, + "id": 564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 578, - "src": "7241:6:0", + "scope": 573, + "src": "7211:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15907,10 +15765,10 @@ "typeString": "uint64" }, "typeName": { - "id": 568, + "id": 563, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7241:6:0", + "src": "7211:6:0", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -15920,13 +15778,13 @@ }, { "constant": false, - "id": 571, + "id": 566, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 578, - "src": "7249:7:0", + "scope": 573, + "src": "7219:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15934,10 +15792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 570, + "id": 565, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7249:7:0", + "src": "7219:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15946,21 +15804,21 @@ "visibility": "internal" } ], - "src": "7240:17:0" + "src": "7210:17:0" }, - "scope": 579, - "src": "7193:109:0", + "scope": 574, + "src": "7163:109:0", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 580, - "src": "390:6914:0", + "scope": 575, + "src": "390:6884:0", "usedErrors": [] } ], - "src": "39:7266:0" + "src": "39:7236:0" }, "compiler": { "name": "solc", @@ -15968,5 +15826,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.265Z" + "updatedAt": "2024-07-04T18:51:17.150Z" } \ No newline at end of file diff --git a/build/contracts/GatewaySettingManager.json b/build/contracts/GatewaySettingManager.json index 88c6b01..ac683db 100644 --- a/build/contracts/GatewaySettingManager.json +++ b/build/contracts/GatewaySettingManager.json @@ -233,34 +233,34 @@ "bytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50610f258061003a6000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", "deployedBytecode": "0x608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100a25760003560e01c80638da5cb5b116100755780638da5cb5b146100f3578063cd99240014610111578063e30c39781461012d578063f2fde38b1461014b576100a2565b806340ebc677146100a757806347094e2e146100c3578063715018a6146100df57806379ba5097146100e9575b600080fd5b6100c160048036038101906100bc9190610a03565b610167565b005b6100dd60048036038101906100d89190610a83565b61042f565b005b6100e761049a565b005b6100f16104ae565b005b6100fb61053b565b6040516101089190610abf565b60405180910390f35b61012b60048036038101906101269190610b10565b610565565b005b6101356106ea565b6040516101429190610abf565b60405180910390f35b61016560048036038101906101609190610b63565b610714565b005b61016f6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d590610bed565b60405180910390fd5b60007f747265617375727900000000000000000000000000000000000000000000000083036102e1578173ffffffffffffffffffffffffffffffffffffffff16609860089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610c7f565b60405180910390fd5b81609860086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506103df565b7f61676772656761746f720000000000000000000000000000000000000000000083036103de578173ffffffffffffffffffffffffffffffffffffffff16609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038f90610d11565b60405180910390fd5b81609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b5b801561042a578173ffffffffffffffffffffffffffffffffffffffff16837fbbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a460405160405180910390a35b505050565b6104376107c1565b80609860006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b8160405161048f9190610d40565b60405180910390a150565b6104a26107c1565b6104ac600061083f565b565b60006104b8610870565b90508073ffffffffffffffffffffffffffffffffffffffff166104d96106ea565b73ffffffffffffffffffffffffffffffffffffffff161461052f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052690610dcd565b60405180910390fd5b6105388161083f565b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61056d6107c1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610bed565b60405180910390fd5b60018114806105eb5750600281145b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610e39565b60405180910390fd5b7f746f6b656e00000000000000000000000000000000000000000000000000000083036106e55780609a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16837fcfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c836040516106dc9190610e68565b60405180910390a35b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61071c6107c1565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661077c61053b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6107c9610870565b73ffffffffffffffffffffffffffffffffffffffff166107e761053b565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490610ecf565b60405180910390fd5b565b606560006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561086d81610878565b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61095681610943565b811461096157600080fd5b50565b6000813590506109738161094d565b92915050565b600074ffffffffffffffffffffffffffffffffffffffffff82169050919050565b6109a381610979565b81146109ae57600080fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109dc826109b1565b9050919050565b6000813590506109f28161099a565b6109fb816109d1565b905092915050565b60008060408385031215610a1a57610a1961093e565b5b6000610a2885828601610964565b9250506020610a39858286016109e3565b9150509250929050565b600067ffffffffffffffff82169050919050565b610a6081610a43565b8114610a6b57600080fd5b50565b600081359050610a7d81610a57565b92915050565b600060208284031215610a9957610a9861093e565b5b6000610aa784828501610a6e565b91505092915050565b610ab9816109d1565b82525050565b6000602082019050610ad46000830184610ab0565b92915050565b6000819050919050565b610aed81610ada565b8114610af857600080fd5b50565b600081359050610b0a81610ae4565b92915050565b600080600060608486031215610b2957610b2861093e565b5b6000610b3786828701610964565b9350506020610b48868287016109e3565b9250506040610b5986828701610afb565b9150509250925092565b600060208284031215610b7957610b7861093e565b5b6000610b87848285016109e3565b91505092915050565b600082825260208201905092915050565b7f476174657761793a207a65726f20616464726573730000000000000000000000600082015250565b6000610bd7601583610b90565b9150610be282610ba1565b602082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f476174657761793a207472656173757279206164647265737320616c7265616460008201527f7920736574000000000000000000000000000000000000000000000000000000602082015250565b6000610c69602583610b90565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f476174657761793a2061676772656761746f72206164647265737320616c726560008201527f6164792073657400000000000000000000000000000000000000000000000000602082015250565b6000610cfb602783610b90565b9150610d0682610c9f565b604082019050919050565b60006020820190508181036000830152610d2a81610cee565b9050919050565b610d3a81610a43565b82525050565b6000602082019050610d556000830184610d31565b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610db7602983610b90565b9150610dc282610d5b565b604082019050919050565b60006020820190508181036000830152610de681610daa565b9050919050565b7f476174657761793a20696e76616c696420737461747573000000000000000000600082015250565b6000610e23601783610b90565b9150610e2e82610ded565b602082019050919050565b60006020820190508181036000830152610e5281610e16565b9050919050565b610e6281610ada565b82525050565b6000602082019050610e7d6000830184610e59565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610eb9602083610b90565b9150610ec482610e83565b602082019050919050565b60006020820190508181036000830152610ee881610eac565b905091905056fea26474726f6e5822122084585c73b69ab002121d8f9d4e059d774f68857675dcea5e9a31e9954eff8ac964736f6c63430008120033", "sourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:101:5;;;:::i;:::-;;2031:212:4;;;:::i;:::-;;1462:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:551:1;1355:13:5;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:5;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;2085:101:5:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:4:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1462:85:5:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;1426:335:1:-;1355:13:5;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:4:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;1436:178::-;1355:13:5;:11;:13::i;:::-;1541:8:4::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:5:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;1798:153:4:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:9:-;939:7;965:10;958:17;;886:96;:::o;2687:187:5:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;88:117:14:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:118::-;2649:24;2667:5;2649:24;:::i;:::-;2644:3;2637:37;2562:118;;:::o;2686:222::-;2779:4;2817:2;2806:9;2802:18;2794:26;;2830:71;2898:1;2887:9;2883:17;2874:6;2830:71;:::i;:::-;2686:222;;;;:::o;2914:77::-;2951:7;2980:5;2969:16;;2914:77;;;:::o;2997:122::-;3070:24;3088:5;3070:24;:::i;:::-;3063:5;3060:35;3050:63;;3109:1;3106;3099:12;3050:63;2997:122;:::o;3125:139::-;3171:5;3209:6;3196:20;3187:29;;3225:33;3252:5;3225:33;:::i;:::-;3125:139;;;;:::o;3270:619::-;3347:6;3355;3363;3412:2;3400:9;3391:7;3387:23;3383:32;3380:119;;;3418:79;;:::i;:::-;3380:119;3538:1;3563:53;3608:7;3599:6;3588:9;3584:22;3563:53;:::i;:::-;3553:63;;3509:117;3665:2;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3636:118;3793:2;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3764:118;3270:619;;;;;:::o;3895:329::-;3954:6;4003:2;3991:9;3982:7;3978:23;3974:32;3971:119;;;4009:79;;:::i;:::-;3971:119;4129:1;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4100:117;3895:329;;;;:::o;4230:169::-;4314:11;4348:6;4343:3;4336:19;4388:4;4383:3;4379:14;4364:29;;4230:169;;;;:::o;4405:171::-;4545:23;4541:1;4533:6;4529:14;4522:47;4405:171;:::o;4582:366::-;4724:3;4745:67;4809:2;4804:3;4745:67;:::i;:::-;4738:74;;4821:93;4910:3;4821:93;:::i;:::-;4939:2;4934:3;4930:12;4923:19;;4582:366;;;:::o;4954:419::-;5120:4;5158:2;5147:9;5143:18;5135:26;;5207:9;5201:4;5197:20;5193:1;5182:9;5178:17;5171:47;5235:131;5361:4;5235:131;:::i;:::-;5227:139;;4954:419;;;:::o;5379:224::-;5519:34;5515:1;5507:6;5503:14;5496:58;5588:7;5583:2;5575:6;5571:15;5564:32;5379:224;:::o;5609:366::-;5751:3;5772:67;5836:2;5831:3;5772:67;:::i;:::-;5765:74;;5848:93;5937:3;5848:93;:::i;:::-;5966:2;5961:3;5957:12;5950:19;;5609:366;;;:::o;5981:419::-;6147:4;6185:2;6174:9;6170:18;6162:26;;6234:9;6228:4;6224:20;6220:1;6209:9;6205:17;6198:47;6262:131;6388:4;6262:131;:::i;:::-;6254:139;;5981:419;;;:::o;6406:226::-;6546:34;6542:1;6534:6;6530:14;6523:58;6615:9;6610:2;6602:6;6598:15;6591:34;6406:226;:::o;6638:366::-;6780:3;6801:67;6865:2;6860:3;6801:67;:::i;:::-;6794:74;;6877:93;6966:3;6877:93;:::i;:::-;6995:2;6990:3;6986:12;6979:19;;6638:366;;;:::o;7010:419::-;7176:4;7214:2;7203:9;7199:18;7191:26;;7263:9;7257:4;7253:20;7249:1;7238:9;7234:17;7227:47;7291:131;7417:4;7291:131;:::i;:::-;7283:139;;7010:419;;;:::o;7435:115::-;7520:23;7537:5;7520:23;:::i;:::-;7515:3;7508:36;7435:115;;:::o;7556:218::-;7647:4;7685:2;7674:9;7670:18;7662:26;;7698:69;7764:1;7753:9;7749:17;7740:6;7698:69;:::i;:::-;7556:218;;;;:::o;7780:228::-;7920:34;7916:1;7908:6;7904:14;7897:58;7989:11;7984:2;7976:6;7972:15;7965:36;7780:228;:::o;8014:366::-;8156:3;8177:67;8241:2;8236:3;8177:67;:::i;:::-;8170:74;;8253:93;8342:3;8253:93;:::i;:::-;8371:2;8366:3;8362:12;8355:19;;8014:366;;;:::o;8386:419::-;8552:4;8590:2;8579:9;8575:18;8567:26;;8639:9;8633:4;8629:20;8625:1;8614:9;8610:17;8603:47;8667:131;8793:4;8667:131;:::i;:::-;8659:139;;8386:419;;;:::o;8811:173::-;8951:25;8947:1;8939:6;8935:14;8928:49;8811:173;:::o;8990:366::-;9132:3;9153:67;9217:2;9212:3;9153:67;:::i;:::-;9146:74;;9229:93;9318:3;9229:93;:::i;:::-;9347:2;9342:3;9338:12;9331:19;;8990:366;;;:::o;9362:419::-;9528:4;9566:2;9555:9;9551:18;9543:26;;9615:9;9609:4;9605:20;9601:1;9590:9;9586:17;9579:47;9643:131;9769:4;9643:131;:::i;:::-;9635:139;;9362:419;;;:::o;9787:118::-;9874:24;9892:5;9874:24;:::i;:::-;9869:3;9862:37;9787:118;;:::o;9911:222::-;10004:4;10042:2;10031:9;10027:18;10019:26;;10055:71;10123:1;10112:9;10108:17;10099:6;10055:71;:::i;:::-;9911:222;;;;:::o;10139:182::-;10279:34;10275:1;10267:6;10263:14;10256:58;10139:182;:::o;10327:366::-;10469:3;10490:67;10554:2;10549:3;10490:67;:::i;:::-;10483:74;;10566:93;10655:3;10566:93;:::i;:::-;10684:2;10679:3;10675:12;10668:19;;10327:366;;;:::o;10699:419::-;10865:4;10903:2;10892:9;10888:18;10880:26;;10952:9;10946:4;10942:20;10938:1;10927:9;10923:17;10916:47;10980:131;11106:4;10980:131;:::i;:::-;10972:139;;10699:419;;;:::o", + "deployedSourceMap": "276:2570:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1894:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:101:4;;;:::i;:::-;;2031:212:3;;;:::i;:::-;;1462:85:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1426:335:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1144:99:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1436:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:551:1;1355:13:4;:11;:13::i;:::-;2401:1:1::1;2384:19;;:5;:19;;::::0;2376:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2433:12;2453:18;:4;:18:::0;2449:326:::1;;2505:5;2486:24;;:15;;;;;;;;;;;:24;;::::0;2478:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5;2557:15;;:23;;;;;;;;;;;;;;;;;;2595:4;2585:14;;2449:326;;;2614:20;:4;:20:::0;2610:165:::1;;2671:5;2649:27;;:18;;;;;;;;;;;:27;;::::0;2641:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:5;2725:18;;:26;;;;;;;;;;;;;;;;;;2766:4;2756:14;;2610:165;2449:326;2782:7;2778:63;;;2830:5;2801:35;;2824:4;2801:35;;;;;;;;;;2778:63;2372:472;2293:551:::0;;:::o;1894:170::-;1355:13:4;:11;:13::i;:::-;1993:19:1::1;1972:18;;:40;;;;;;;;;;;;;;;;;;2021:39;2040:19;2021:39;;;;;;:::i;:::-;;;;;;;;1894:170:::0;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;2083:14;2100:12;:10;:12::i;:::-;2083:29;;2148:6;2130:24;;:14;:12;:14::i;:::-;:24;;;2122:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;1462:85:4:-;1508:7;1534:6;;;;;;;;;;;1527:13;;1462:85;:::o;1426:335:1:-;1355:13:4;:11;:13::i;:::-;1547:1:1::1;1530:19;;:5;:19;;::::0;1522:53:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:1;1587:6;:11;:26;;;;1612:1;1602:6;:11;1587:26;1579:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:15;:4;:15:::0;1645:113:::1;;1698:6;1671:17;:24;1689:5;1671:24;;;;;;;;;;;;;;;:33;;;;1739:5;1714:39;;1733:4;1714:39;1746:6;1714:39;;;;;;:::i;:::-;;;;;;;;1645:113;1426:335:::0;;;:::o;1144:99:3:-;1197:7;1223:13;;;;;;;;;;;1216:20;;1144:99;:::o;1436:178::-;1355:13:4;:11;:13::i;:::-;1541:8:3::1;1525:13;;:24;;;;;;;;;;;;;;;;;;1598:8;1564:43;;1589:7;:5;:7::i;:::-;1564:43;;;;;;;;;;;;1436:178:::0;:::o;1620:130:4:-;1694:12;:10;:12::i;:::-;1683:23;;:7;:5;:7::i;:::-;:23;;;1675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1620:130::o;1798:153:3:-;1887:13;;1880:20;;;;;;;;;;;1910:34;1935:8;1910:24;:34::i;:::-;1798:153;:::o;886:96:8:-;939:7;965:10;958:17;;886:96;:::o;2687:187:4:-;2760:16;2779:6;;;;;;;;;;;2760:25;;2804:8;2795:6;;:17;;;;;;;;;;;;;;;;;;2858:8;2827:40;;2848:8;2827:40;;;;;;;;;;;;2750:124;2687:187;:::o;88:117:10:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:128::-;727:7;767:44;760:5;756:56;745:67;;690:128;;;:::o;824:122::-;897:24;915:5;897:24;:::i;:::-;890:5;887:35;877:63;;936:1;933;926:12;877:63;824:122;:::o;952:126::-;989:7;1029:42;1022:5;1018:54;1007:65;;952:126;;;:::o;1084:96::-;1121:7;1150:24;1168:5;1150:24;:::i;:::-;1139:35;;1084:96;;;:::o;1186:181::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1337:24;1355:5;1337:24;:::i;:::-;1328:33;;1186:181;;;;:::o;1373:474::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:53;1694:7;1685:6;1674:9;1670:22;1649:53;:::i;:::-;1639:63;;1595:117;1751:2;1777:53;1822:7;1813:6;1802:9;1798:22;1777:53;:::i;:::-;1767:63;;1722:118;1373:474;;;;;:::o;1853:101::-;1889:7;1929:18;1922:5;1918:30;1907:41;;1853:101;;;:::o;1960:120::-;2032:23;2049:5;2032:23;:::i;:::-;2025:5;2022:34;2012:62;;2070:1;2067;2060:12;2012:62;1960:120;:::o;2086:137::-;2131:5;2169:6;2156:20;2147:29;;2185:32;2211:5;2185:32;:::i;:::-;2086:137;;;;:::o;2229:327::-;2287:6;2336:2;2324:9;2315:7;2311:23;2307:32;2304:119;;;2342:79;;:::i;:::-;2304:119;2462:1;2487:52;2531:7;2522:6;2511:9;2507:22;2487:52;:::i;:::-;2477:62;;2433:116;2229:327;;;;:::o;2562:118::-;2649:24;2667:5;2649:24;:::i;:::-;2644:3;2637:37;2562:118;;:::o;2686:222::-;2779:4;2817:2;2806:9;2802:18;2794:26;;2830:71;2898:1;2887:9;2883:17;2874:6;2830:71;:::i;:::-;2686:222;;;;:::o;2914:77::-;2951:7;2980:5;2969:16;;2914:77;;;:::o;2997:122::-;3070:24;3088:5;3070:24;:::i;:::-;3063:5;3060:35;3050:63;;3109:1;3106;3099:12;3050:63;2997:122;:::o;3125:139::-;3171:5;3209:6;3196:20;3187:29;;3225:33;3252:5;3225:33;:::i;:::-;3125:139;;;;:::o;3270:619::-;3347:6;3355;3363;3412:2;3400:9;3391:7;3387:23;3383:32;3380:119;;;3418:79;;:::i;:::-;3380:119;3538:1;3563:53;3608:7;3599:6;3588:9;3584:22;3563:53;:::i;:::-;3553:63;;3509:117;3665:2;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3636:118;3793:2;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3764:118;3270:619;;;;;:::o;3895:329::-;3954:6;4003:2;3991:9;3982:7;3978:23;3974:32;3971:119;;;4009:79;;:::i;:::-;3971:119;4129:1;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4100:117;3895:329;;;;:::o;4230:169::-;4314:11;4348:6;4343:3;4336:19;4388:4;4383:3;4379:14;4364:29;;4230:169;;;;:::o;4405:171::-;4545:23;4541:1;4533:6;4529:14;4522:47;4405:171;:::o;4582:366::-;4724:3;4745:67;4809:2;4804:3;4745:67;:::i;:::-;4738:74;;4821:93;4910:3;4821:93;:::i;:::-;4939:2;4934:3;4930:12;4923:19;;4582:366;;;:::o;4954:419::-;5120:4;5158:2;5147:9;5143:18;5135:26;;5207:9;5201:4;5197:20;5193:1;5182:9;5178:17;5171:47;5235:131;5361:4;5235:131;:::i;:::-;5227:139;;4954:419;;;:::o;5379:224::-;5519:34;5515:1;5507:6;5503:14;5496:58;5588:7;5583:2;5575:6;5571:15;5564:32;5379:224;:::o;5609:366::-;5751:3;5772:67;5836:2;5831:3;5772:67;:::i;:::-;5765:74;;5848:93;5937:3;5848:93;:::i;:::-;5966:2;5961:3;5957:12;5950:19;;5609:366;;;:::o;5981:419::-;6147:4;6185:2;6174:9;6170:18;6162:26;;6234:9;6228:4;6224:20;6220:1;6209:9;6205:17;6198:47;6262:131;6388:4;6262:131;:::i;:::-;6254:139;;5981:419;;;:::o;6406:226::-;6546:34;6542:1;6534:6;6530:14;6523:58;6615:9;6610:2;6602:6;6598:15;6591:34;6406:226;:::o;6638:366::-;6780:3;6801:67;6865:2;6860:3;6801:67;:::i;:::-;6794:74;;6877:93;6966:3;6877:93;:::i;:::-;6995:2;6990:3;6986:12;6979:19;;6638:366;;;:::o;7010:419::-;7176:4;7214:2;7203:9;7199:18;7191:26;;7263:9;7257:4;7253:20;7249:1;7238:9;7234:17;7227:47;7291:131;7417:4;7291:131;:::i;:::-;7283:139;;7010:419;;;:::o;7435:115::-;7520:23;7537:5;7520:23;:::i;:::-;7515:3;7508:36;7435:115;;:::o;7556:218::-;7647:4;7685:2;7674:9;7670:18;7662:26;;7698:69;7764:1;7753:9;7749:17;7740:6;7698:69;:::i;:::-;7556:218;;;;:::o;7780:228::-;7920:34;7916:1;7908:6;7904:14;7897:58;7989:11;7984:2;7976:6;7972:15;7965:36;7780:228;:::o;8014:366::-;8156:3;8177:67;8241:2;8236:3;8177:67;:::i;:::-;8170:74;;8253:93;8342:3;8253:93;:::i;:::-;8371:2;8366:3;8362:12;8355:19;;8014:366;;;:::o;8386:419::-;8552:4;8590:2;8579:9;8575:18;8567:26;;8639:9;8633:4;8629:20;8625:1;8614:9;8610:17;8603:47;8667:131;8793:4;8667:131;:::i;:::-;8659:139;;8386:419;;;:::o;8811:173::-;8951:25;8947:1;8939:6;8935:14;8928:49;8811:173;:::o;8990:366::-;9132:3;9153:67;9217:2;9212:3;9153:67;:::i;:::-;9146:74;;9229:93;9318:3;9229:93;:::i;:::-;9347:2;9342:3;9338:12;9331:19;;8990:366;;;:::o;9362:419::-;9528:4;9566:2;9555:9;9551:18;9543:26;;9615:9;9609:4;9605:20;9601:1;9590:9;9586:17;9579:47;9643:131;9769:4;9643:131;:::i;:::-;9635:139;;9362:419;;;:::o;9787:118::-;9874:24;9892:5;9874:24;:::i;:::-;9869:3;9862:37;9787:118;;:::o;9911:222::-;10004:4;10042:2;10031:9;10027:18;10019:26;;10055:71;10123:1;10112:9;10108:17;10099:6;10055:71;:::i;:::-;9911:222;;;;:::o;10139:182::-;10279:34;10275:1;10267:6;10263:14;10256:58;10139:182;:::o;10327:366::-;10469:3;10490:67;10554:2;10549:3;10490:67;:::i;:::-;10483:74;;10566:93;10655:3;10566:93;:::i;:::-;10684:2;10679:3;10675:12;10668:19;;10327:366;;;:::o;10699:419::-;10865:4;10903:2;10892:9;10888:18;10880:26;;10952:9;10946:4;10942:20;10938:1;10927:9;10923:17;10916:47;10980:131;11106:4;10980:131;:::i;:::-;10972:139;;10699:419;;;:::o", "source": "// SPDX-License-Identifier: UNLICENSED\n\n/**\n * @title GatewaySettingManager\n * @dev This contract manages the settings and configurations for the Gateway protocol.\n */\npragma solidity ^0.8.18;\n\nimport '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\ncontract GatewaySettingManager is Ownable2StepUpgradeable {\n\tuint256 internal MAX_BPS;\n\tuint64 internal protocolFeePercent;\n\taddress internal treasuryAddress;\n\taddress internal _aggregatorAddress;\n\tmapping(address => uint256) internal _isTokenSupported;\n\n\t// this should decrease if more slots are needed on this contract to avoid collisions with base contract\n\tuint256[50] private __gap;\n\n\n\tevent SettingManagerBool(bytes32 indexed what, address indexed value, uint256 status);\n\tevent ProtocolFeeUpdated(uint64 protocolFee);\n\tevent ProtocolAddressUpdated(bytes32 indexed what, address indexed treasuryAddress);\n\tevent SetFeeRecipient(address indexed treasuryAddress);\n\n\t/* ##################################################################\n OWNER FUNCTIONS\n ################################################################## */\n\n\t/**\n\t * @dev Sets the boolean value for a specific setting.\n\t * @param what The setting to be updated.\n\t * @param value The address or value associated with the setting.\n\t * @param status The boolean value to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction settingManagerBool(bytes32 what, address value, uint256 status) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\trequire(status == 1 || status == 2, 'Gateway: invalid status');\n\t\tif (what == 'token') {\n\t\t\t_isTokenSupported[value] = status;\n\t\t\temit SettingManagerBool(what, value, status);\n\t\t}\n\t}\n\n\t/**\n\t * @dev Updates the protocol fee percentage.\n\t * @param _protocolFeePercent The new protocol fee percentage to be set.\n\t */\n\tfunction updateProtocolFee(uint64 _protocolFeePercent) external onlyOwner {\n\t\tprotocolFeePercent = _protocolFeePercent;\n\t\temit ProtocolFeeUpdated(_protocolFeePercent);\n\t}\n\n\t/**\n\t * @dev Updates a protocol address.\n\t * @param what The address type to be updated (treasury or aggregator).\n\t * @param value The new address to be set.\n\t * Requirements:\n\t * - The value must not be a zero address.\n\t */\n\tfunction updateProtocolAddress(bytes32 what, address value) external onlyOwner {\n\t\trequire(value != address(0), 'Gateway: zero address');\n\t\tbool updated;\n\t\tif (what == 'treasury') {\n\t\t\trequire(treasuryAddress != value, 'Gateway: treasury address already set');\n\t\t\ttreasuryAddress = value;\n\t\t\tupdated = true;\n\t\t} else if (what == 'aggregator') {\n\t\t\trequire(_aggregatorAddress != value, 'Gateway: aggregator address already set');\n\t\t\t_aggregatorAddress = value;\n\t\t\tupdated = true;\n\t\t}\n\t\tif (updated) {\n\t\t\temit ProtocolAddressUpdated(what, value);\n\t\t}\n\t}\n}\n", "sourcePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "ast": { "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "GatewaySettingManager": [ - 763 + 758 ], "Initializable": [ - 1380 + 1305 ], "Ownable2StepUpgradeable": [ - 1078 + 1003 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 764, + "id": 759, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 581, + "id": 576, "literals": [ "solidity", "^", @@ -273,11 +273,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 582, + "id": 577, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 764, - "sourceUnit": 1079, + "scope": 759, + "sourceUnit": 1004, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -287,16 +287,16 @@ "baseContracts": [ { "baseName": { - "id": 583, + "id": 578, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1078, + "referencedDeclaration": 1003, "src": "310:23:1" }, - "id": 584, + "id": 579, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -305,13 +305,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 763, + "id": 758, "linearizedBaseContracts": [ - 763, - 1078, - 1211, - 1889, - 1380 + 758, + 1003, + 1136, + 1814, + 1305 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -319,12 +319,12 @@ "nodes": [ { "constant": false, - "id": 586, + "id": 581, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -333,7 +333,7 @@ "typeString": "uint256" }, "typeName": { - "id": 585, + "id": 580, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -346,12 +346,12 @@ }, { "constant": false, - "id": 588, + "id": 583, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -360,7 +360,7 @@ "typeString": "uint64" }, "typeName": { - "id": 587, + "id": 582, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -373,12 +373,12 @@ }, { "constant": false, - "id": 590, + "id": 585, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -387,7 +387,7 @@ "typeString": "address" }, "typeName": { - "id": 589, + "id": 584, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -401,12 +401,12 @@ }, { "constant": false, - "id": 592, + "id": 587, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -415,7 +415,7 @@ "typeString": "address" }, "typeName": { - "id": 591, + "id": 586, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -429,12 +429,12 @@ }, { "constant": false, - "id": 596, + "id": 591, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -443,11 +443,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 595, + "id": 590, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 593, + "id": 588, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -465,7 +465,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 594, + "id": 589, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -479,12 +479,12 @@ }, { "constant": false, - "id": 600, + "id": 595, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -494,7 +494,7 @@ }, "typeName": { "baseType": { - "id": 597, + "id": 592, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -503,10 +503,10 @@ "typeString": "uint256" } }, - "id": 599, + "id": 594, "length": { "hexValue": "3530", - "id": 598, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,23 +532,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 608, + "id": 603, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 607, + "id": 602, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 602, + "id": 597, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -557,7 +557,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 601, + "id": 596, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -570,13 +570,13 @@ }, { "constant": false, - "id": 604, + "id": 599, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -585,7 +585,7 @@ "typeString": "address" }, "typeName": { - "id": 603, + "id": 598, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -599,13 +599,13 @@ }, { "constant": false, - "id": 606, + "id": 601, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -614,7 +614,7 @@ "typeString": "uint256" }, "typeName": { - "id": 605, + "id": 600, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -633,23 +633,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 612, + "id": 607, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 611, + "id": 606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 610, + "id": 605, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 607, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -658,7 +658,7 @@ "typeString": "uint64" }, "typeName": { - "id": 609, + "id": 604, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -677,23 +677,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 618, + "id": 613, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 617, + "id": 612, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 609, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 618, + "scope": 613, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -702,7 +702,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 613, + "id": 608, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -715,13 +715,13 @@ }, { "constant": false, - "id": 616, + "id": 611, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 618, + "scope": 613, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -730,7 +730,7 @@ "typeString": "address" }, "typeName": { - "id": 615, + "id": 610, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -750,23 +750,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 622, + "id": 617, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 621, + "id": 616, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 615, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 622, + "scope": 617, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -775,7 +775,7 @@ "typeString": "address" }, "typeName": { - "id": 619, + "id": 614, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -794,7 +794,7 @@ }, { "body": { - "id": 672, + "id": 667, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -806,17 +806,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 640, + "id": 635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 635, + "id": 630, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -829,7 +829,7 @@ "arguments": [ { "hexValue": "30", - "id": 638, + "id": 633, "isConstant": false, "isLValue": false, "isPure": true, @@ -851,7 +851,7 @@ "typeString": "int_const 0" } ], - "id": 637, + "id": 632, "isConstant": false, "isLValue": false, "isPure": true, @@ -863,14 +863,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 636, + "id": 631, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 639, + "id": 634, "isConstant": false, "isLValue": false, "isPure": true, @@ -894,7 +894,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 641, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, @@ -920,7 +920,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 634, + "id": 629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -934,7 +934,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 642, + "id": 637, "isConstant": false, "isLValue": false, "isPure": false, @@ -950,7 +950,7 @@ "typeString": "tuple()" } }, - "id": 643, + "id": 638, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -962,7 +962,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 651, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, @@ -972,17 +972,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 647, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 645, + "id": 640, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -993,7 +993,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 646, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -1020,17 +1020,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 643, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1041,7 +1041,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 649, + "id": 644, "isConstant": false, "isLValue": false, "isPure": true, @@ -1069,7 +1069,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 652, + "id": 647, "isConstant": false, "isLValue": false, "isPure": true, @@ -1095,7 +1095,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 644, + "id": 639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1109,7 +1109,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 653, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1125,7 +1125,7 @@ "typeString": "tuple()" } }, - "id": 654, + "id": 649, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -1135,17 +1135,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 657, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 655, + "id": 650, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 625, + "referencedDeclaration": 620, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1156,7 +1156,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 656, + "id": 651, "isConstant": false, "isLValue": false, "isPure": true, @@ -1176,41 +1176,41 @@ "typeString": "bool" } }, - "id": 671, + "id": 666, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 670, + "id": 665, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 662, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 658, + "id": 653, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, + "referencedDeclaration": 591, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 660, + "id": 655, "indexExpression": { - "id": 659, + "id": 654, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1231,11 +1231,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 661, + "id": 656, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1248,7 +1248,7 @@ "typeString": "uint256" } }, - "id": 663, + "id": 658, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -1256,11 +1256,11 @@ "eventCall": { "arguments": [ { - "id": 665, + "id": 660, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 625, + "referencedDeclaration": 620, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1268,11 +1268,11 @@ } }, { - "id": 666, + "id": 661, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1280,11 +1280,11 @@ } }, { - "id": 667, + "id": 662, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1307,18 +1307,18 @@ "typeString": "uint256" } ], - "id": 664, + "id": 659, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, + "referencedDeclaration": 603, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 668, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -1334,7 +1334,7 @@ "typeString": "tuple()" } }, - "id": 669, + "id": 664, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -1344,27 +1344,27 @@ ] }, "documentation": { - "id": 623, + "id": 618, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 673, + "id": 668, "implemented": true, "kind": "function", "modifiers": [ { - "id": 632, + "id": 627, "kind": "modifierInvocation", "modifierName": { - "id": 631, + "id": 626, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -1375,17 +1375,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 630, + "id": 625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 625, + "id": 620, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -1394,7 +1394,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 624, + "id": 619, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -1407,12 +1407,12 @@ }, { "constant": false, - "id": 627, + "id": 622, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -1421,7 +1421,7 @@ "typeString": "address" }, "typeName": { - "id": 626, + "id": 621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -1435,12 +1435,12 @@ }, { "constant": false, - "id": 629, + "id": 624, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -1449,7 +1449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 628, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -1464,12 +1464,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 633, + "id": 628, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 763, + "scope": 758, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -1477,23 +1477,23 @@ }, { "body": { - "id": 689, + "id": 684, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 683, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 681, + "id": 676, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1503,11 +1503,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 682, + "id": 677, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, + "referencedDeclaration": 671, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1520,7 +1520,7 @@ "typeString": "uint64" } }, - "id": 684, + "id": 679, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -1528,11 +1528,11 @@ "eventCall": { "arguments": [ { - "id": 686, + "id": 681, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, + "referencedDeclaration": 671, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -1547,18 +1547,18 @@ "typeString": "uint64" } ], - "id": 685, + "id": 680, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, + "referencedDeclaration": 607, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 687, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, @@ -1574,34 +1574,34 @@ "typeString": "tuple()" } }, - "id": 688, + "id": 683, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 674, + "id": 669, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 690, + "id": 685, "implemented": true, "kind": "function", "modifiers": [ { - "id": 679, + "id": 674, "kind": "modifierInvocation", "modifierName": { - "id": 678, + "id": 673, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -1612,17 +1612,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 677, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 676, + "id": 671, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 690, + "scope": 685, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -1631,7 +1631,7 @@ "typeString": "uint64" }, "typeName": { - "id": 675, + "id": 670, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -1646,12 +1646,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 680, + "id": 675, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 763, + "scope": 758, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -1659,7 +1659,7 @@ }, { "body": { - "id": 761, + "id": 756, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -1671,17 +1671,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 706, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 701, + "id": 696, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1694,7 +1694,7 @@ "arguments": [ { "hexValue": "30", - "id": 704, + "id": 699, "isConstant": false, "isLValue": false, "isPure": true, @@ -1716,7 +1716,7 @@ "typeString": "int_const 0" } ], - "id": 703, + "id": 698, "isConstant": false, "isLValue": false, "isPure": true, @@ -1728,14 +1728,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 702, + "id": 697, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 705, + "id": 700, "isConstant": false, "isLValue": false, "isPure": true, @@ -1759,7 +1759,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 707, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, @@ -1785,7 +1785,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 700, + "id": 695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1799,7 +1799,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 708, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -1815,23 +1815,23 @@ "typeString": "tuple()" } }, - "id": 709, + "id": 704, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 711 + 706 ], "declarations": [ { "constant": false, - "id": 711, + "id": 706, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 761, + "scope": 756, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -1840,7 +1840,7 @@ "typeString": "bool" }, "typeName": { - "id": 710, + "id": 705, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -1852,7 +1852,7 @@ "visibility": "internal" } ], - "id": 712, + "id": 707, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -1862,17 +1862,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 715, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 713, + "id": 708, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1883,7 +1883,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 714, + "id": 709, "isConstant": false, "isLValue": false, "isPure": true, @@ -1909,17 +1909,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 734, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 732, + "id": 727, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1930,7 +1930,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 733, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -1950,11 +1950,11 @@ "typeString": "bool" } }, - "id": 751, + "id": 746, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 750, + "id": 745, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -1966,17 +1966,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 738, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 736, + "id": 731, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1986,11 +1986,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 737, + "id": 732, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2005,7 +2005,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 739, + "id": 734, "isConstant": false, "isLValue": false, "isPure": true, @@ -2031,7 +2031,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 735, + "id": 730, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2045,7 +2045,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 740, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -2061,23 +2061,23 @@ "typeString": "tuple()" } }, - "id": 741, + "id": 736, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 744, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 742, + "id": 737, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2087,11 +2087,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 743, + "id": 738, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2104,23 +2104,23 @@ "typeString": "address" } }, - "id": 745, + "id": 740, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 748, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 746, + "id": 741, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2131,7 +2131,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 747, + "id": 742, "isConstant": false, "isLValue": false, "isPure": true, @@ -2151,18 +2151,18 @@ "typeString": "bool" } }, - "id": 749, + "id": 744, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 752, + "id": 747, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 731, + "id": 726, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -2174,17 +2174,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 719, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 717, + "id": 712, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2194,11 +2194,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 718, + "id": 713, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2213,7 +2213,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 720, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, @@ -2239,7 +2239,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 716, + "id": 711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2253,7 +2253,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 721, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -2269,23 +2269,23 @@ "typeString": "tuple()" } }, - "id": 722, + "id": 717, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 725, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 723, + "id": 718, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2295,11 +2295,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 724, + "id": 719, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2312,23 +2312,23 @@ "typeString": "address" } }, - "id": 726, + "id": 721, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 729, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 727, + "id": 722, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2339,7 +2339,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 728, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, @@ -2359,7 +2359,7 @@ "typeString": "bool" } }, - "id": 730, + "id": 725, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -2368,22 +2368,22 @@ }, { "condition": { - "id": 753, + "id": 748, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 760, + "id": 755, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 759, + "id": 754, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -2391,11 +2391,11 @@ "eventCall": { "arguments": [ { - "id": 755, + "id": 750, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2403,11 +2403,11 @@ } }, { - "id": 756, + "id": 751, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2426,18 +2426,18 @@ "typeString": "address" } ], - "id": 754, + "id": 749, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, + "referencedDeclaration": 613, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 757, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -2453,7 +2453,7 @@ "typeString": "tuple()" } }, - "id": 758, + "id": 753, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -2463,27 +2463,27 @@ ] }, "documentation": { - "id": 691, + "id": 686, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 762, + "id": 757, "implemented": true, "kind": "function", "modifiers": [ { - "id": 698, + "id": 693, "kind": "modifierInvocation", "modifierName": { - "id": 697, + "id": 692, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -2494,17 +2494,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 696, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 693, + "id": 688, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 762, + "scope": 757, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -2513,7 +2513,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 692, + "id": 687, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -2526,12 +2526,12 @@ }, { "constant": false, - "id": 695, + "id": 690, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 762, + "scope": 757, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "address" }, "typeName": { - "id": 694, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -2556,19 +2556,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 699, + "id": 694, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 763, + "scope": 758, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 764, + "scope": 759, "src": "276:2570:1", "usedErrors": [] } @@ -2579,27 +2579,27 @@ "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/GatewaySettingManager.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "GatewaySettingManager": [ - 763 + 758 ], "Initializable": [ - 1380 + 1305 ], "Ownable2StepUpgradeable": [ - 1078 + 1003 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 764, + "id": 759, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 581, + "id": 576, "literals": [ "solidity", "^", @@ -2612,11 +2612,11 @@ { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 582, + "id": 577, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 764, - "sourceUnit": 1079, + "scope": 759, + "sourceUnit": 1004, "src": "194:80:1", "symbolAliases": [], "unitAlias": "" @@ -2626,16 +2626,16 @@ "baseContracts": [ { "baseName": { - "id": 583, + "id": 578, "name": "Ownable2StepUpgradeable", "nameLocations": [ "310:23:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1078, + "referencedDeclaration": 1003, "src": "310:23:1" }, - "id": 584, + "id": 579, "nodeType": "InheritanceSpecifier", "src": "310:23:1" } @@ -2644,13 +2644,13 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 763, + "id": 758, "linearizedBaseContracts": [ - 763, - 1078, - 1211, - 1889, - 1380 + 758, + 1003, + 1136, + 1814, + 1305 ], "name": "GatewaySettingManager", "nameLocation": "285:21:1", @@ -2658,12 +2658,12 @@ "nodes": [ { "constant": false, - "id": 586, + "id": 581, "mutability": "mutable", "name": "MAX_BPS", "nameLocation": "354:7:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "337:24:1", "stateVariable": true, "storageLocation": "default", @@ -2672,7 +2672,7 @@ "typeString": "uint256" }, "typeName": { - "id": 585, + "id": 580, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "337:7:1", @@ -2685,12 +2685,12 @@ }, { "constant": false, - "id": 588, + "id": 583, "mutability": "mutable", "name": "protocolFeePercent", "nameLocation": "380:18:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "364:34:1", "stateVariable": true, "storageLocation": "default", @@ -2699,7 +2699,7 @@ "typeString": "uint64" }, "typeName": { - "id": 587, + "id": 582, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "364:6:1", @@ -2712,12 +2712,12 @@ }, { "constant": false, - "id": 590, + "id": 585, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "418:15:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "401:32:1", "stateVariable": true, "storageLocation": "default", @@ -2726,7 +2726,7 @@ "typeString": "address" }, "typeName": { - "id": 589, + "id": 584, "name": "address", "nodeType": "ElementaryTypeName", "src": "401:7:1", @@ -2740,12 +2740,12 @@ }, { "constant": false, - "id": 592, + "id": 587, "mutability": "mutable", "name": "_aggregatorAddress", "nameLocation": "453:18:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "436:35:1", "stateVariable": true, "storageLocation": "default", @@ -2754,7 +2754,7 @@ "typeString": "address" }, "typeName": { - "id": 591, + "id": 586, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:1", @@ -2768,12 +2768,12 @@ }, { "constant": false, - "id": 596, + "id": 591, "mutability": "mutable", "name": "_isTokenSupported", "nameLocation": "511:17:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "474:54:1", "stateVariable": true, "storageLocation": "default", @@ -2782,11 +2782,11 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 595, + "id": 590, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 593, + "id": 588, "name": "address", "nodeType": "ElementaryTypeName", "src": "482:7:1", @@ -2804,7 +2804,7 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 594, + "id": 589, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "493:7:1", @@ -2818,12 +2818,12 @@ }, { "constant": false, - "id": 600, + "id": 595, "mutability": "mutable", "name": "__gap", "nameLocation": "658:5:1", "nodeType": "VariableDeclaration", - "scope": 763, + "scope": 758, "src": "638:25:1", "stateVariable": true, "storageLocation": "default", @@ -2833,7 +2833,7 @@ }, "typeName": { "baseType": { - "id": 597, + "id": 592, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "638:7:1", @@ -2842,10 +2842,10 @@ "typeString": "uint256" } }, - "id": 599, + "id": 594, "length": { "hexValue": "3530", - "id": 598, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -2871,23 +2871,23 @@ { "anonymous": false, "eventSelector": "cfa976492af7c14a916cc3a239f4c9c75bbd7f5f0e398beb41d892c7eeccae4c", - "id": 608, + "id": 603, "name": "SettingManagerBool", "nameLocation": "674:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 607, + "id": 602, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 602, + "id": 597, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "709:4:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "693:20:1", "stateVariable": false, "storageLocation": "default", @@ -2896,7 +2896,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 601, + "id": 596, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "693:7:1", @@ -2909,13 +2909,13 @@ }, { "constant": false, - "id": 604, + "id": 599, "indexed": true, "mutability": "mutable", "name": "value", "nameLocation": "731:5:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "715:21:1", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "address" }, "typeName": { - "id": 603, + "id": 598, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:1", @@ -2938,13 +2938,13 @@ }, { "constant": false, - "id": 606, + "id": 601, "indexed": false, "mutability": "mutable", "name": "status", "nameLocation": "746:6:1", "nodeType": "VariableDeclaration", - "scope": 608, + "scope": 603, "src": "738:14:1", "stateVariable": false, "storageLocation": "default", @@ -2953,7 +2953,7 @@ "typeString": "uint256" }, "typeName": { - "id": 605, + "id": 600, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:1", @@ -2972,23 +2972,23 @@ { "anonymous": false, "eventSelector": "1ce29a697a4765bd17d91df93ba75b250b629ecf030553ff1f6ab59f15ae6c7b", - "id": 612, + "id": 607, "name": "ProtocolFeeUpdated", "nameLocation": "762:18:1", "nodeType": "EventDefinition", "parameters": { - "id": 611, + "id": 606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 610, + "id": 605, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "788:11:1", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 607, "src": "781:18:1", "stateVariable": false, "storageLocation": "default", @@ -2997,7 +2997,7 @@ "typeString": "uint64" }, "typeName": { - "id": 609, + "id": 604, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "781:6:1", @@ -3016,23 +3016,23 @@ { "anonymous": false, "eventSelector": "bbc5b96e57cfecb3dbeeadf92e87f15e58e64fcd75cbe256dcc5d9ef2e51e8a4", - "id": 618, + "id": 613, "name": "ProtocolAddressUpdated", "nameLocation": "809:22:1", "nodeType": "EventDefinition", "parameters": { - "id": 617, + "id": 612, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 609, "indexed": true, "mutability": "mutable", "name": "what", "nameLocation": "848:4:1", "nodeType": "VariableDeclaration", - "scope": 618, + "scope": 613, "src": "832:20:1", "stateVariable": false, "storageLocation": "default", @@ -3041,7 +3041,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 613, + "id": 608, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "832:7:1", @@ -3054,13 +3054,13 @@ }, { "constant": false, - "id": 616, + "id": 611, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "870:15:1", "nodeType": "VariableDeclaration", - "scope": 618, + "scope": 613, "src": "854:31:1", "stateVariable": false, "storageLocation": "default", @@ -3069,7 +3069,7 @@ "typeString": "address" }, "typeName": { - "id": 615, + "id": 610, "name": "address", "nodeType": "ElementaryTypeName", "src": "854:7:1", @@ -3089,23 +3089,23 @@ { "anonymous": false, "eventSelector": "2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a73", - "id": 622, + "id": 617, "name": "SetFeeRecipient", "nameLocation": "895:15:1", "nodeType": "EventDefinition", "parameters": { - "id": 621, + "id": 616, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 615, "indexed": true, "mutability": "mutable", "name": "treasuryAddress", "nameLocation": "927:15:1", "nodeType": "VariableDeclaration", - "scope": 622, + "scope": 617, "src": "911:31:1", "stateVariable": false, "storageLocation": "default", @@ -3114,7 +3114,7 @@ "typeString": "address" }, "typeName": { - "id": 619, + "id": 614, "name": "address", "nodeType": "ElementaryTypeName", "src": "911:7:1", @@ -3133,7 +3133,7 @@ }, { "body": { - "id": 672, + "id": 667, "nodeType": "Block", "src": "1518:243:1", "statements": [ @@ -3145,17 +3145,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 640, + "id": 635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 635, + "id": 630, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1530:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3168,7 +3168,7 @@ "arguments": [ { "hexValue": "30", - "id": 638, + "id": 633, "isConstant": false, "isLValue": false, "isPure": true, @@ -3190,7 +3190,7 @@ "typeString": "int_const 0" } ], - "id": 637, + "id": 632, "isConstant": false, "isLValue": false, "isPure": true, @@ -3202,14 +3202,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 636, + "id": 631, "name": "address", "nodeType": "ElementaryTypeName", "src": "1539:7:1", "typeDescriptions": {} } }, - "id": 639, + "id": 634, "isConstant": false, "isLValue": false, "isPure": true, @@ -3233,7 +3233,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 641, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, @@ -3259,7 +3259,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 634, + "id": 629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3273,7 +3273,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 642, + "id": 637, "isConstant": false, "isLValue": false, "isPure": false, @@ -3289,7 +3289,7 @@ "typeString": "tuple()" } }, - "id": 643, + "id": 638, "nodeType": "ExpressionStatement", "src": "1522:53:1" }, @@ -3301,7 +3301,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 651, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, @@ -3311,17 +3311,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 647, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 645, + "id": 640, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1587:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3332,7 +3332,7 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 646, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -3359,17 +3359,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 648, + "id": 643, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1602:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3380,7 +3380,7 @@ "operator": "==", "rightExpression": { "hexValue": "32", - "id": 649, + "id": 644, "isConstant": false, "isLValue": false, "isPure": true, @@ -3408,7 +3408,7 @@ }, { "hexValue": "476174657761793a20696e76616c696420737461747573", - "id": 652, + "id": 647, "isConstant": false, "isLValue": false, "isPure": true, @@ -3434,7 +3434,7 @@ "typeString": "literal_string \"Gateway: invalid status\"" } ], - "id": 644, + "id": 639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3448,7 +3448,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 653, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -3464,7 +3464,7 @@ "typeString": "tuple()" } }, - "id": 654, + "id": 649, "nodeType": "ExpressionStatement", "src": "1579:62:1" }, @@ -3474,17 +3474,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 657, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 655, + "id": 650, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 625, + "referencedDeclaration": 620, "src": "1649:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3495,7 +3495,7 @@ "operator": "==", "rightExpression": { "hexValue": "746f6b656e", - "id": 656, + "id": 651, "isConstant": false, "isLValue": false, "isPure": true, @@ -3515,41 +3515,41 @@ "typeString": "bool" } }, - "id": 671, + "id": 666, "nodeType": "IfStatement", "src": "1645:113:1", "trueBody": { - "id": 670, + "id": 665, "nodeType": "Block", "src": "1666:92:1", "statements": [ { "expression": { - "id": 662, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 658, + "id": 653, "name": "_isTokenSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, + "referencedDeclaration": 591, "src": "1671:17:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 660, + "id": 655, "indexExpression": { - "id": 659, + "id": 654, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1689:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3570,11 +3570,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 661, + "id": 656, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1698:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3587,7 +3587,7 @@ "typeString": "uint256" } }, - "id": 663, + "id": 658, "nodeType": "ExpressionStatement", "src": "1671:33:1" }, @@ -3595,11 +3595,11 @@ "eventCall": { "arguments": [ { - "id": 665, + "id": 660, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 625, + "referencedDeclaration": 620, "src": "1733:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3607,11 +3607,11 @@ } }, { - "id": 666, + "id": 661, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 627, + "referencedDeclaration": 622, "src": "1739:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3619,11 +3619,11 @@ } }, { - "id": 667, + "id": 662, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, + "referencedDeclaration": 624, "src": "1746:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3646,18 +3646,18 @@ "typeString": "uint256" } ], - "id": 664, + "id": 659, "name": "SettingManagerBool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, + "referencedDeclaration": 603, "src": "1714:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 668, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -3673,7 +3673,7 @@ "typeString": "tuple()" } }, - "id": 669, + "id": 664, "nodeType": "EmitStatement", "src": "1709:44:1" } @@ -3683,27 +3683,27 @@ ] }, "documentation": { - "id": 623, + "id": 618, "nodeType": "StructuredDocumentation", "src": "1141:283:1", "text": " @dev Sets the boolean value for a specific setting.\n @param what The setting to be updated.\n @param value The address or value associated with the setting.\n @param status The boolean value to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "cd992400", - "id": 673, + "id": 668, "implemented": true, "kind": "function", "modifiers": [ { - "id": 632, + "id": 627, "kind": "modifierInvocation", "modifierName": { - "id": 631, + "id": 626, "name": "onlyOwner", "nameLocations": [ "1508:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1508:9:1" }, "nodeType": "ModifierInvocation", @@ -3714,17 +3714,17 @@ "nameLocation": "1435:18:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 630, + "id": 625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 625, + "id": 620, "mutability": "mutable", "name": "what", "nameLocation": "1462:4:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1454:12:1", "stateVariable": false, "storageLocation": "default", @@ -3733,7 +3733,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 624, + "id": 619, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:1", @@ -3746,12 +3746,12 @@ }, { "constant": false, - "id": 627, + "id": 622, "mutability": "mutable", "name": "value", "nameLocation": "1476:5:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1468:13:1", "stateVariable": false, "storageLocation": "default", @@ -3760,7 +3760,7 @@ "typeString": "address" }, "typeName": { - "id": 626, + "id": 621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1468:7:1", @@ -3774,12 +3774,12 @@ }, { "constant": false, - "id": 629, + "id": 624, "mutability": "mutable", "name": "status", "nameLocation": "1491:6:1", "nodeType": "VariableDeclaration", - "scope": 673, + "scope": 668, "src": "1483:14:1", "stateVariable": false, "storageLocation": "default", @@ -3788,7 +3788,7 @@ "typeString": "uint256" }, "typeName": { - "id": 628, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1483:7:1", @@ -3803,12 +3803,12 @@ "src": "1453:45:1" }, "returnParameters": { - "id": 633, + "id": 628, "nodeType": "ParameterList", "parameters": [], "src": "1518:0:1" }, - "scope": 763, + "scope": 758, "src": "1426:335:1", "stateMutability": "nonpayable", "virtual": false, @@ -3816,23 +3816,23 @@ }, { "body": { - "id": 689, + "id": 684, "nodeType": "Block", "src": "1968:96:1", "statements": [ { "expression": { - "id": 683, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 681, + "id": 676, "name": "protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, + "referencedDeclaration": 583, "src": "1972:18:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3842,11 +3842,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 682, + "id": 677, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, + "referencedDeclaration": 671, "src": "1993:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3859,7 +3859,7 @@ "typeString": "uint64" } }, - "id": 684, + "id": 679, "nodeType": "ExpressionStatement", "src": "1972:40:1" }, @@ -3867,11 +3867,11 @@ "eventCall": { "arguments": [ { - "id": 686, + "id": 681, "name": "_protocolFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, + "referencedDeclaration": 671, "src": "2040:19:1", "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -3886,18 +3886,18 @@ "typeString": "uint64" } ], - "id": 685, + "id": 680, "name": "ProtocolFeeUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, + "referencedDeclaration": 607, "src": "2021:18:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 687, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, @@ -3913,34 +3913,34 @@ "typeString": "tuple()" } }, - "id": 688, + "id": 683, "nodeType": "EmitStatement", "src": "2016:44:1" } ] }, "documentation": { - "id": 674, + "id": 669, "nodeType": "StructuredDocumentation", "src": "1764:128:1", "text": " @dev Updates the protocol fee percentage.\n @param _protocolFeePercent The new protocol fee percentage to be set." }, "functionSelector": "47094e2e", - "id": 690, + "id": 685, "implemented": true, "kind": "function", "modifiers": [ { - "id": 679, + "id": 674, "kind": "modifierInvocation", "modifierName": { - "id": 678, + "id": 673, "name": "onlyOwner", "nameLocations": [ "1958:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "1958:9:1" }, "nodeType": "ModifierInvocation", @@ -3951,17 +3951,17 @@ "nameLocation": "1903:17:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 677, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 676, + "id": 671, "mutability": "mutable", "name": "_protocolFeePercent", "nameLocation": "1928:19:1", "nodeType": "VariableDeclaration", - "scope": 690, + "scope": 685, "src": "1921:26:1", "stateVariable": false, "storageLocation": "default", @@ -3970,7 +3970,7 @@ "typeString": "uint64" }, "typeName": { - "id": 675, + "id": 670, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "1921:6:1", @@ -3985,12 +3985,12 @@ "src": "1920:28:1" }, "returnParameters": { - "id": 680, + "id": 675, "nodeType": "ParameterList", "parameters": [], "src": "1968:0:1" }, - "scope": 763, + "scope": 758, "src": "1894:170:1", "stateMutability": "nonpayable", "virtual": false, @@ -3998,7 +3998,7 @@ }, { "body": { - "id": 761, + "id": 756, "nodeType": "Block", "src": "2372:472:1", "statements": [ @@ -4010,17 +4010,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 706, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 701, + "id": 696, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2384:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4033,7 +4033,7 @@ "arguments": [ { "hexValue": "30", - "id": 704, + "id": 699, "isConstant": false, "isLValue": false, "isPure": true, @@ -4055,7 +4055,7 @@ "typeString": "int_const 0" } ], - "id": 703, + "id": 698, "isConstant": false, "isLValue": false, "isPure": true, @@ -4067,14 +4067,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 702, + "id": 697, "name": "address", "nodeType": "ElementaryTypeName", "src": "2393:7:1", "typeDescriptions": {} } }, - "id": 705, + "id": 700, "isConstant": false, "isLValue": false, "isPure": true, @@ -4098,7 +4098,7 @@ }, { "hexValue": "476174657761793a207a65726f2061646472657373", - "id": 707, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, @@ -4124,7 +4124,7 @@ "typeString": "literal_string \"Gateway: zero address\"" } ], - "id": 700, + "id": 695, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4138,7 +4138,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 708, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,23 +4154,23 @@ "typeString": "tuple()" } }, - "id": 709, + "id": 704, "nodeType": "ExpressionStatement", "src": "2376:53:1" }, { "assignments": [ - 711 + 706 ], "declarations": [ { "constant": false, - "id": 711, + "id": 706, "mutability": "mutable", "name": "updated", "nameLocation": "2438:7:1", "nodeType": "VariableDeclaration", - "scope": 761, + "scope": 756, "src": "2433:12:1", "stateVariable": false, "storageLocation": "default", @@ -4179,7 +4179,7 @@ "typeString": "bool" }, "typeName": { - "id": 710, + "id": 705, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2433:4:1", @@ -4191,7 +4191,7 @@ "visibility": "internal" } ], - "id": 712, + "id": 707, "nodeType": "VariableDeclarationStatement", "src": "2433:12:1" }, @@ -4201,17 +4201,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 715, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 713, + "id": 708, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2453:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4222,7 +4222,7 @@ "operator": "==", "rightExpression": { "hexValue": "7472656173757279", - "id": 714, + "id": 709, "isConstant": false, "isLValue": false, "isPure": true, @@ -4248,17 +4248,17 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 734, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 732, + "id": 727, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2614:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4269,7 +4269,7 @@ "operator": "==", "rightExpression": { "hexValue": "61676772656761746f72", - "id": 733, + "id": 728, "isConstant": false, "isLValue": false, "isPure": true, @@ -4289,11 +4289,11 @@ "typeString": "bool" } }, - "id": 751, + "id": 746, "nodeType": "IfStatement", "src": "2610:165:1", "trueBody": { - "id": 750, + "id": 745, "nodeType": "Block", "src": "2636:139:1", "statements": [ @@ -4305,17 +4305,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 738, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 736, + "id": 731, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "2649:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4325,11 +4325,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 737, + "id": 732, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2671:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4344,7 +4344,7 @@ }, { "hexValue": "476174657761793a2061676772656761746f72206164647265737320616c726561647920736574", - "id": 739, + "id": 734, "isConstant": false, "isLValue": false, "isPure": true, @@ -4370,7 +4370,7 @@ "typeString": "literal_string \"Gateway: aggregator address already set\"" } ], - "id": 735, + "id": 730, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4384,7 +4384,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 740, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,23 +4400,23 @@ "typeString": "tuple()" } }, - "id": 741, + "id": 736, "nodeType": "ExpressionStatement", "src": "2641:79:1" }, { "expression": { - "id": 744, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 742, + "id": 737, "name": "_aggregatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 587, "src": "2725:18:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4426,11 +4426,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 743, + "id": 738, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2746:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4443,23 +4443,23 @@ "typeString": "address" } }, - "id": 745, + "id": 740, "nodeType": "ExpressionStatement", "src": "2725:26:1" }, { "expression": { - "id": 748, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 746, + "id": 741, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2756:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4470,7 +4470,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 747, + "id": 742, "isConstant": false, "isLValue": false, "isPure": true, @@ -4490,18 +4490,18 @@ "typeString": "bool" } }, - "id": 749, + "id": 744, "nodeType": "ExpressionStatement", "src": "2756:14:1" } ] } }, - "id": 752, + "id": 747, "nodeType": "IfStatement", "src": "2449:326:1", "trueBody": { - "id": 731, + "id": 726, "nodeType": "Block", "src": "2473:131:1", "statements": [ @@ -4513,17 +4513,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 719, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 717, + "id": 712, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "2486:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4533,11 +4533,11 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 718, + "id": 713, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2505:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4552,7 +4552,7 @@ }, { "hexValue": "476174657761793a207472656173757279206164647265737320616c726561647920736574", - "id": 720, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, @@ -4578,7 +4578,7 @@ "typeString": "literal_string \"Gateway: treasury address already set\"" } ], - "id": 716, + "id": 711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4592,7 +4592,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 721, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -4608,23 +4608,23 @@ "typeString": "tuple()" } }, - "id": 722, + "id": 717, "nodeType": "ExpressionStatement", "src": "2478:74:1" }, { "expression": { - "id": 725, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 723, + "id": 718, "name": "treasuryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 585, "src": "2557:15:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4634,11 +4634,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 724, + "id": 719, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2575:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4651,23 +4651,23 @@ "typeString": "address" } }, - "id": 726, + "id": 721, "nodeType": "ExpressionStatement", "src": "2557:23:1" }, { "expression": { - "id": 729, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 727, + "id": 722, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2585:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4678,7 +4678,7 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 728, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, @@ -4698,7 +4698,7 @@ "typeString": "bool" } }, - "id": 730, + "id": 725, "nodeType": "ExpressionStatement", "src": "2585:14:1" } @@ -4707,22 +4707,22 @@ }, { "condition": { - "id": 753, + "id": 748, "name": "updated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, + "referencedDeclaration": 706, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 760, + "id": 755, "nodeType": "IfStatement", "src": "2778:63:1", "trueBody": { - "id": 759, + "id": 754, "nodeType": "Block", "src": "2791:50:1", "statements": [ @@ -4730,11 +4730,11 @@ "eventCall": { "arguments": [ { - "id": 755, + "id": 750, "name": "what", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 693, + "referencedDeclaration": 688, "src": "2824:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4742,11 +4742,11 @@ } }, { - "id": 756, + "id": 751, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, + "referencedDeclaration": 690, "src": "2830:5:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4765,18 +4765,18 @@ "typeString": "address" } ], - "id": 754, + "id": 749, "name": "ProtocolAddressUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, + "referencedDeclaration": 613, "src": "2801:22:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 757, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -4792,7 +4792,7 @@ "typeString": "tuple()" } }, - "id": 758, + "id": 753, "nodeType": "EmitStatement", "src": "2796:40:1" } @@ -4802,27 +4802,27 @@ ] }, "documentation": { - "id": 691, + "id": 686, "nodeType": "StructuredDocumentation", "src": "2067:224:1", "text": " @dev Updates a protocol address.\n @param what The address type to be updated (treasury or aggregator).\n @param value The new address to be set.\n Requirements:\n - The value must not be a zero address." }, "functionSelector": "40ebc677", - "id": 762, + "id": 757, "implemented": true, "kind": "function", "modifiers": [ { - "id": 698, + "id": 693, "kind": "modifierInvocation", "modifierName": { - "id": 697, + "id": 692, "name": "onlyOwner", "nameLocations": [ "2362:9:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, + "referencedDeclaration": 1050, "src": "2362:9:1" }, "nodeType": "ModifierInvocation", @@ -4833,17 +4833,17 @@ "nameLocation": "2302:21:1", "nodeType": "FunctionDefinition", "parameters": { - "id": 696, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 693, + "id": 688, "mutability": "mutable", "name": "what", "nameLocation": "2332:4:1", "nodeType": "VariableDeclaration", - "scope": 762, + "scope": 757, "src": "2324:12:1", "stateVariable": false, "storageLocation": "default", @@ -4852,7 +4852,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 692, + "id": 687, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2324:7:1", @@ -4865,12 +4865,12 @@ }, { "constant": false, - "id": 695, + "id": 690, "mutability": "mutable", "name": "value", "nameLocation": "2346:5:1", "nodeType": "VariableDeclaration", - "scope": 762, + "scope": 757, "src": "2338:13:1", "stateVariable": false, "storageLocation": "default", @@ -4879,7 +4879,7 @@ "typeString": "address" }, "typeName": { - "id": 694, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", "src": "2338:7:1", @@ -4895,19 +4895,19 @@ "src": "2323:29:1" }, "returnParameters": { - "id": 699, + "id": 694, "nodeType": "ParameterList", "parameters": [], "src": "2372:0:1" }, - "scope": 763, + "scope": 758, "src": "2293:551:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 764, + "scope": 759, "src": "276:2570:1", "usedErrors": [] } @@ -4920,5 +4920,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.255Z" + "updatedAt": "2024-07-04T18:51:17.136Z" } \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 645f4a0..cdaaa8d 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -195,15 +195,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2554 + 1892 ] }, - "id": 2555, + "id": 1893, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2478, + "id": 1816, "literals": [ "solidity", "^", @@ -211,7 +211,7 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "106:23:11" + "src": "106:23:9" }, { "abstract": false, @@ -220,47 +220,47 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2479, + "id": 1817, "nodeType": "StructuredDocumentation", - "src": "131:70:11", + "src": "131:70:9", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2554, + "id": 1892, "linearizedBaseContracts": [ - 2554 + 1892 ], "name": "IERC20", - "nameLocation": "212:6:11", + "nameLocation": "212:6:9", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { - "id": 2480, + "id": 1818, "nodeType": "StructuredDocumentation", - "src": "225:158:11", + "src": "225:158:9", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2488, + "id": 1826, "name": "Transfer", - "nameLocation": "394:8:11", + "nameLocation": "394:8:9", "nodeType": "EventDefinition", "parameters": { - "id": 2487, + "id": 1825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2482, + "id": 1820, "indexed": true, "mutability": "mutable", "name": "from", - "nameLocation": "419:4:11", + "nameLocation": "419:4:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "403:20:11", + "scope": 1826, + "src": "403:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -268,10 +268,10 @@ "typeString": "address" }, "typeName": { - "id": 2481, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "403:7:11", + "src": "403:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -282,14 +282,14 @@ }, { "constant": false, - "id": 2484, + "id": 1822, "indexed": true, "mutability": "mutable", "name": "to", - "nameLocation": "441:2:11", + "nameLocation": "441:2:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "425:18:11", + "scope": 1826, + "src": "425:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -297,10 +297,10 @@ "typeString": "address" }, "typeName": { - "id": 2483, + "id": 1821, "name": "address", "nodeType": "ElementaryTypeName", - "src": "425:7:11", + "src": "425:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -311,14 +311,14 @@ }, { "constant": false, - "id": 2486, + "id": 1824, "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "453:5:11", + "nameLocation": "453:5:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "445:13:11", + "scope": 1826, + "src": "445:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -326,10 +326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2485, + "id": 1823, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:11", + "src": "445:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -338,37 +338,37 @@ "visibility": "internal" } ], - "src": "402:57:11" + "src": "402:57:9" }, - "src": "388:72:11" + "src": "388:72:9" }, { "anonymous": false, "documentation": { - "id": 2489, + "id": 1827, "nodeType": "StructuredDocumentation", - "src": "466:148:11", + "src": "466:148:9", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2497, + "id": 1835, "name": "Approval", - "nameLocation": "625:8:11", + "nameLocation": "625:8:9", "nodeType": "EventDefinition", "parameters": { - "id": 2496, + "id": 1834, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2491, + "id": 1829, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "650:5:11", + "nameLocation": "650:5:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "634:21:11", + "scope": 1835, + "src": "634:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -376,10 +376,10 @@ "typeString": "address" }, "typeName": { - "id": 2490, + "id": 1828, "name": "address", "nodeType": "ElementaryTypeName", - "src": "634:7:11", + "src": "634:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -390,14 +390,14 @@ }, { "constant": false, - "id": 2493, + "id": 1831, "indexed": true, "mutability": "mutable", "name": "spender", - "nameLocation": "673:7:11", + "nameLocation": "673:7:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "657:23:11", + "scope": 1835, + "src": "657:23:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -405,10 +405,10 @@ "typeString": "address" }, "typeName": { - "id": 2492, + "id": 1830, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:11", + "src": "657:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -419,14 +419,14 @@ }, { "constant": false, - "id": 2495, + "id": 1833, "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "690:5:11", + "nameLocation": "690:5:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "682:13:11", + "scope": 1835, + "src": "682:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -434,10 +434,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2494, + "id": 1832, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:11", + "src": "682:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -446,44 +446,44 @@ "visibility": "internal" } ], - "src": "633:63:11" + "src": "633:63:9" }, - "src": "619:78:11" + "src": "619:78:9" }, { "documentation": { - "id": 2498, + "id": 1836, "nodeType": "StructuredDocumentation", - "src": "703:66:11", + "src": "703:66:9", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2503, + "id": 1841, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", - "nameLocation": "783:11:11", + "nameLocation": "783:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2499, + "id": 1837, "nodeType": "ParameterList", "parameters": [], - "src": "794:2:11" + "src": "794:2:9" }, "returnParameters": { - "id": 2502, + "id": 1840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2501, + "id": 1839, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "820:7:11", + "scope": 1841, + "src": "820:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -491,10 +491,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2500, + "id": 1838, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "820:7:11", + "src": "820:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -503,42 +503,42 @@ "visibility": "internal" } ], - "src": "819:9:11" + "src": "819:9:9" }, - "scope": 2554, - "src": "774:55:11", + "scope": 1892, + "src": "774:55:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2504, + "id": 1842, "nodeType": "StructuredDocumentation", - "src": "835:72:11", + "src": "835:72:9", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2511, + "id": 1849, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "921:9:11", + "nameLocation": "921:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2507, + "id": 1845, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2506, + "id": 1844, "mutability": "mutable", "name": "account", - "nameLocation": "939:7:11", + "nameLocation": "939:7:9", "nodeType": "VariableDeclaration", - "scope": 2511, - "src": "931:15:11", + "scope": 1849, + "src": "931:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -546,10 +546,10 @@ "typeString": "address" }, "typeName": { - "id": 2505, + "id": 1843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:11", + "src": "931:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -559,21 +559,21 @@ "visibility": "internal" } ], - "src": "930:17:11" + "src": "930:17:9" }, "returnParameters": { - "id": 2510, + "id": 1848, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 1847, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2511, - "src": "971:7:11", + "scope": 1849, + "src": "971:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -581,10 +581,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2508, + "id": 1846, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "971:7:11", + "src": "971:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -593,42 +593,42 @@ "visibility": "internal" } ], - "src": "970:9:11" + "src": "970:9:9" }, - "scope": 2554, - "src": "912:68:11", + "scope": 1892, + "src": "912:68:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2512, + "id": 1850, "nodeType": "StructuredDocumentation", - "src": "986:202:11", + "src": "986:202:9", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2521, + "id": 1859, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "1202:8:11", + "nameLocation": "1202:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2517, + "id": 1855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2514, + "id": 1852, "mutability": "mutable", "name": "to", - "nameLocation": "1219:2:11", + "nameLocation": "1219:2:9", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1211:10:11", + "scope": 1859, + "src": "1211:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -636,10 +636,10 @@ "typeString": "address" }, "typeName": { - "id": 2513, + "id": 1851, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:11", + "src": "1211:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -650,13 +650,13 @@ }, { "constant": false, - "id": 2516, + "id": 1854, "mutability": "mutable", "name": "amount", - "nameLocation": "1231:6:11", + "nameLocation": "1231:6:9", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1223:14:11", + "scope": 1859, + "src": "1223:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -664,10 +664,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2515, + "id": 1853, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1223:7:11", + "src": "1223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -676,21 +676,21 @@ "visibility": "internal" } ], - "src": "1210:28:11" + "src": "1210:28:9" }, "returnParameters": { - "id": 2520, + "id": 1858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2519, + "id": 1857, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1257:4:11", + "scope": 1859, + "src": "1257:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +698,10 @@ "typeString": "bool" }, "typeName": { - "id": 2518, + "id": 1856, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1257:4:11", + "src": "1257:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -710,42 +710,42 @@ "visibility": "internal" } ], - "src": "1256:6:11" + "src": "1256:6:9" }, - "scope": 2554, - "src": "1193:70:11", + "scope": 1892, + "src": "1193:70:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2522, + "id": 1860, "nodeType": "StructuredDocumentation", - "src": "1269:264:11", + "src": "1269:264:9", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2531, + "id": 1869, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "1547:9:11", + "nameLocation": "1547:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2527, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2524, + "id": 1862, "mutability": "mutable", "name": "owner", - "nameLocation": "1565:5:11", + "nameLocation": "1565:5:9", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1557:13:11", + "scope": 1869, + "src": "1557:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -753,10 +753,10 @@ "typeString": "address" }, "typeName": { - "id": 2523, + "id": 1861, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1557:7:11", + "src": "1557:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -767,13 +767,13 @@ }, { "constant": false, - "id": 2526, + "id": 1864, "mutability": "mutable", "name": "spender", - "nameLocation": "1580:7:11", + "nameLocation": "1580:7:9", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1572:15:11", + "scope": 1869, + "src": "1572:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -781,10 +781,10 @@ "typeString": "address" }, "typeName": { - "id": 2525, + "id": 1863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1572:7:11", + "src": "1572:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -794,21 +794,21 @@ "visibility": "internal" } ], - "src": "1556:32:11" + "src": "1556:32:9" }, "returnParameters": { - "id": 2530, + "id": 1868, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2529, + "id": 1867, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1612:7:11", + "scope": 1869, + "src": "1612:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -816,10 +816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2528, + "id": 1866, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1612:7:11", + "src": "1612:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -828,42 +828,42 @@ "visibility": "internal" } ], - "src": "1611:9:11" + "src": "1611:9:9" }, - "scope": 2554, - "src": "1538:83:11", + "scope": 1892, + "src": "1538:83:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2532, + "id": 1870, "nodeType": "StructuredDocumentation", - "src": "1627:642:11", + "src": "1627:642:9", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2541, + "id": 1879, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "2283:7:11", + "nameLocation": "2283:7:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2537, + "id": 1875, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2534, + "id": 1872, "mutability": "mutable", "name": "spender", - "nameLocation": "2299:7:11", + "nameLocation": "2299:7:9", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2291:15:11", + "scope": 1879, + "src": "2291:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -871,10 +871,10 @@ "typeString": "address" }, "typeName": { - "id": 2533, + "id": 1871, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2291:7:11", + "src": "2291:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -885,13 +885,13 @@ }, { "constant": false, - "id": 2536, + "id": 1874, "mutability": "mutable", "name": "amount", - "nameLocation": "2316:6:11", + "nameLocation": "2316:6:9", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2308:14:11", + "scope": 1879, + "src": "2308:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -899,10 +899,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2535, + "id": 1873, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2308:7:11", + "src": "2308:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -911,21 +911,21 @@ "visibility": "internal" } ], - "src": "2290:33:11" + "src": "2290:33:9" }, "returnParameters": { - "id": 2540, + "id": 1878, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 1877, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2342:4:11", + "scope": 1879, + "src": "2342:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -933,10 +933,10 @@ "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 1876, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2342:4:11", + "src": "2342:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -945,42 +945,42 @@ "visibility": "internal" } ], - "src": "2341:6:11" + "src": "2341:6:9" }, - "scope": 2554, - "src": "2274:74:11", + "scope": 1892, + "src": "2274:74:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2542, + "id": 1880, "nodeType": "StructuredDocumentation", - "src": "2354:287:11", + "src": "2354:287:9", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2553, + "id": 1891, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "2655:12:11", + "nameLocation": "2655:12:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2549, + "id": 1887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2544, + "id": 1882, "mutability": "mutable", "name": "from", - "nameLocation": "2676:4:11", + "nameLocation": "2676:4:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2668:12:11", + "scope": 1891, + "src": "2668:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -988,10 +988,10 @@ "typeString": "address" }, "typeName": { - "id": 2543, + "id": 1881, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2668:7:11", + "src": "2668:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1002,13 +1002,13 @@ }, { "constant": false, - "id": 2546, + "id": 1884, "mutability": "mutable", "name": "to", - "nameLocation": "2690:2:11", + "nameLocation": "2690:2:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2682:10:11", + "scope": 1891, + "src": "2682:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1016,10 +1016,10 @@ "typeString": "address" }, "typeName": { - "id": 2545, + "id": 1883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2682:7:11", + "src": "2682:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1030,13 +1030,13 @@ }, { "constant": false, - "id": 2548, + "id": 1886, "mutability": "mutable", "name": "amount", - "nameLocation": "2702:6:11", + "nameLocation": "2702:6:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2694:14:11", + "scope": 1891, + "src": "2694:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1044,10 +1044,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2547, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2694:7:11", + "src": "2694:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1056,21 +1056,21 @@ "visibility": "internal" } ], - "src": "2667:42:11" + "src": "2667:42:9" }, "returnParameters": { - "id": 2552, + "id": 1890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2551, + "id": 1889, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2728:4:11", + "scope": 1891, + "src": "2728:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1078,10 +1078,10 @@ "typeString": "bool" }, "typeName": { - "id": 2550, + "id": 1888, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2728:4:11", + "src": "2728:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1090,35 +1090,35 @@ "visibility": "internal" } ], - "src": "2727:6:11" + "src": "2727:6:9" }, - "scope": 2554, - "src": "2646:88:11", + "scope": 1892, + "src": "2646:88:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2555, - "src": "202:2534:11", + "scope": 1893, + "src": "202:2534:9", "usedErrors": [] } ], - "src": "106:2631:11" + "src": "106:2631:9" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 2554 + 1892 ] }, - "id": 2555, + "id": 1893, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2478, + "id": 1816, "literals": [ "solidity", "^", @@ -1126,7 +1126,7 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "106:23:11" + "src": "106:23:9" }, { "abstract": false, @@ -1135,47 +1135,47 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 2479, + "id": 1817, "nodeType": "StructuredDocumentation", - "src": "131:70:11", + "src": "131:70:9", "text": " @dev Interface of the ERC20 standard as defined in the EIP." }, "fullyImplemented": false, - "id": 2554, + "id": 1892, "linearizedBaseContracts": [ - 2554 + 1892 ], "name": "IERC20", - "nameLocation": "212:6:11", + "nameLocation": "212:6:9", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { - "id": 2480, + "id": 1818, "nodeType": "StructuredDocumentation", - "src": "225:158:11", + "src": "225:158:9", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." }, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 2488, + "id": 1826, "name": "Transfer", - "nameLocation": "394:8:11", + "nameLocation": "394:8:9", "nodeType": "EventDefinition", "parameters": { - "id": 2487, + "id": 1825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2482, + "id": 1820, "indexed": true, "mutability": "mutable", "name": "from", - "nameLocation": "419:4:11", + "nameLocation": "419:4:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "403:20:11", + "scope": 1826, + "src": "403:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1183,10 +1183,10 @@ "typeString": "address" }, "typeName": { - "id": 2481, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "403:7:11", + "src": "403:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1197,14 +1197,14 @@ }, { "constant": false, - "id": 2484, + "id": 1822, "indexed": true, "mutability": "mutable", "name": "to", - "nameLocation": "441:2:11", + "nameLocation": "441:2:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "425:18:11", + "scope": 1826, + "src": "425:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1212,10 +1212,10 @@ "typeString": "address" }, "typeName": { - "id": 2483, + "id": 1821, "name": "address", "nodeType": "ElementaryTypeName", - "src": "425:7:11", + "src": "425:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1226,14 +1226,14 @@ }, { "constant": false, - "id": 2486, + "id": 1824, "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "453:5:11", + "nameLocation": "453:5:9", "nodeType": "VariableDeclaration", - "scope": 2488, - "src": "445:13:11", + "scope": 1826, + "src": "445:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1241,10 +1241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2485, + "id": 1823, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:11", + "src": "445:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1253,37 +1253,37 @@ "visibility": "internal" } ], - "src": "402:57:11" + "src": "402:57:9" }, - "src": "388:72:11" + "src": "388:72:9" }, { "anonymous": false, "documentation": { - "id": 2489, + "id": 1827, "nodeType": "StructuredDocumentation", - "src": "466:148:11", + "src": "466:148:9", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." }, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 2497, + "id": 1835, "name": "Approval", - "nameLocation": "625:8:11", + "nameLocation": "625:8:9", "nodeType": "EventDefinition", "parameters": { - "id": 2496, + "id": 1834, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2491, + "id": 1829, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "650:5:11", + "nameLocation": "650:5:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "634:21:11", + "scope": 1835, + "src": "634:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1291,10 +1291,10 @@ "typeString": "address" }, "typeName": { - "id": 2490, + "id": 1828, "name": "address", "nodeType": "ElementaryTypeName", - "src": "634:7:11", + "src": "634:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1305,14 +1305,14 @@ }, { "constant": false, - "id": 2493, + "id": 1831, "indexed": true, "mutability": "mutable", "name": "spender", - "nameLocation": "673:7:11", + "nameLocation": "673:7:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "657:23:11", + "scope": 1835, + "src": "657:23:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1320,10 +1320,10 @@ "typeString": "address" }, "typeName": { - "id": 2492, + "id": 1830, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:11", + "src": "657:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1334,14 +1334,14 @@ }, { "constant": false, - "id": 2495, + "id": 1833, "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "690:5:11", + "nameLocation": "690:5:9", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "682:13:11", + "scope": 1835, + "src": "682:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1349,10 +1349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2494, + "id": 1832, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:11", + "src": "682:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1361,44 +1361,44 @@ "visibility": "internal" } ], - "src": "633:63:11" + "src": "633:63:9" }, - "src": "619:78:11" + "src": "619:78:9" }, { "documentation": { - "id": 2498, + "id": 1836, "nodeType": "StructuredDocumentation", - "src": "703:66:11", + "src": "703:66:9", "text": " @dev Returns the amount of tokens in existence." }, "functionSelector": "18160ddd", - "id": 2503, + "id": 1841, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", - "nameLocation": "783:11:11", + "nameLocation": "783:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2499, + "id": 1837, "nodeType": "ParameterList", "parameters": [], - "src": "794:2:11" + "src": "794:2:9" }, "returnParameters": { - "id": 2502, + "id": 1840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2501, + "id": 1839, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "820:7:11", + "scope": 1841, + "src": "820:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1406,10 +1406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2500, + "id": 1838, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "820:7:11", + "src": "820:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1418,42 +1418,42 @@ "visibility": "internal" } ], - "src": "819:9:11" + "src": "819:9:9" }, - "scope": 2554, - "src": "774:55:11", + "scope": 1892, + "src": "774:55:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2504, + "id": 1842, "nodeType": "StructuredDocumentation", - "src": "835:72:11", + "src": "835:72:9", "text": " @dev Returns the amount of tokens owned by `account`." }, "functionSelector": "70a08231", - "id": 2511, + "id": 1849, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "921:9:11", + "nameLocation": "921:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2507, + "id": 1845, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2506, + "id": 1844, "mutability": "mutable", "name": "account", - "nameLocation": "939:7:11", + "nameLocation": "939:7:9", "nodeType": "VariableDeclaration", - "scope": 2511, - "src": "931:15:11", + "scope": 1849, + "src": "931:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1461,10 +1461,10 @@ "typeString": "address" }, "typeName": { - "id": 2505, + "id": 1843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:11", + "src": "931:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1474,21 +1474,21 @@ "visibility": "internal" } ], - "src": "930:17:11" + "src": "930:17:9" }, "returnParameters": { - "id": 2510, + "id": 1848, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2509, + "id": 1847, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2511, - "src": "971:7:11", + "scope": 1849, + "src": "971:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1496,10 +1496,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2508, + "id": 1846, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "971:7:11", + "src": "971:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1508,42 +1508,42 @@ "visibility": "internal" } ], - "src": "970:9:11" + "src": "970:9:9" }, - "scope": 2554, - "src": "912:68:11", + "scope": 1892, + "src": "912:68:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2512, + "id": 1850, "nodeType": "StructuredDocumentation", - "src": "986:202:11", + "src": "986:202:9", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "a9059cbb", - "id": 2521, + "id": 1859, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "1202:8:11", + "nameLocation": "1202:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2517, + "id": 1855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2514, + "id": 1852, "mutability": "mutable", "name": "to", - "nameLocation": "1219:2:11", + "nameLocation": "1219:2:9", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1211:10:11", + "scope": 1859, + "src": "1211:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1551,10 @@ "typeString": "address" }, "typeName": { - "id": 2513, + "id": 1851, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:11", + "src": "1211:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1565,13 +1565,13 @@ }, { "constant": false, - "id": 2516, + "id": 1854, "mutability": "mutable", "name": "amount", - "nameLocation": "1231:6:11", + "nameLocation": "1231:6:9", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1223:14:11", + "scope": 1859, + "src": "1223:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1579,10 +1579,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2515, + "id": 1853, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1223:7:11", + "src": "1223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,21 +1591,21 @@ "visibility": "internal" } ], - "src": "1210:28:11" + "src": "1210:28:9" }, "returnParameters": { - "id": 2520, + "id": 1858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2519, + "id": 1857, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "1257:4:11", + "scope": 1859, + "src": "1257:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1613,10 +1613,10 @@ "typeString": "bool" }, "typeName": { - "id": 2518, + "id": 1856, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1257:4:11", + "src": "1257:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1625,42 +1625,42 @@ "visibility": "internal" } ], - "src": "1256:6:11" + "src": "1256:6:9" }, - "scope": 2554, - "src": "1193:70:11", + "scope": 1892, + "src": "1193:70:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2522, + "id": 1860, "nodeType": "StructuredDocumentation", - "src": "1269:264:11", + "src": "1269:264:9", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." }, "functionSelector": "dd62ed3e", - "id": 2531, + "id": 1869, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "1547:9:11", + "nameLocation": "1547:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2527, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2524, + "id": 1862, "mutability": "mutable", "name": "owner", - "nameLocation": "1565:5:11", + "nameLocation": "1565:5:9", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1557:13:11", + "scope": 1869, + "src": "1557:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1668,10 +1668,10 @@ "typeString": "address" }, "typeName": { - "id": 2523, + "id": 1861, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1557:7:11", + "src": "1557:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1682,13 +1682,13 @@ }, { "constant": false, - "id": 2526, + "id": 1864, "mutability": "mutable", "name": "spender", - "nameLocation": "1580:7:11", + "nameLocation": "1580:7:9", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1572:15:11", + "scope": 1869, + "src": "1572:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1696,10 +1696,10 @@ "typeString": "address" }, "typeName": { - "id": 2525, + "id": 1863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1572:7:11", + "src": "1572:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1709,21 +1709,21 @@ "visibility": "internal" } ], - "src": "1556:32:11" + "src": "1556:32:9" }, "returnParameters": { - "id": 2530, + "id": 1868, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2529, + "id": 1867, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2531, - "src": "1612:7:11", + "scope": 1869, + "src": "1612:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1731,10 +1731,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2528, + "id": 1866, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1612:7:11", + "src": "1612:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1743,42 +1743,42 @@ "visibility": "internal" } ], - "src": "1611:9:11" + "src": "1611:9:9" }, - "scope": 2554, - "src": "1538:83:11", + "scope": 1892, + "src": "1538:83:9", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2532, + "id": 1870, "nodeType": "StructuredDocumentation", - "src": "1627:642:11", + "src": "1627:642:9", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2541, + "id": 1879, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "2283:7:11", + "nameLocation": "2283:7:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2537, + "id": 1875, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2534, + "id": 1872, "mutability": "mutable", "name": "spender", - "nameLocation": "2299:7:11", + "nameLocation": "2299:7:9", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2291:15:11", + "scope": 1879, + "src": "2291:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1786,10 +1786,10 @@ "typeString": "address" }, "typeName": { - "id": 2533, + "id": 1871, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2291:7:11", + "src": "2291:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1800,13 +1800,13 @@ }, { "constant": false, - "id": 2536, + "id": 1874, "mutability": "mutable", "name": "amount", - "nameLocation": "2316:6:11", + "nameLocation": "2316:6:9", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2308:14:11", + "scope": 1879, + "src": "2308:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1814,10 +1814,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2535, + "id": 1873, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2308:7:11", + "src": "2308:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1826,21 +1826,21 @@ "visibility": "internal" } ], - "src": "2290:33:11" + "src": "2290:33:9" }, "returnParameters": { - "id": 2540, + "id": 1878, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 1877, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2541, - "src": "2342:4:11", + "scope": 1879, + "src": "2342:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1848,10 +1848,10 @@ "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 1876, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2342:4:11", + "src": "2342:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1860,42 +1860,42 @@ "visibility": "internal" } ], - "src": "2341:6:11" + "src": "2341:6:9" }, - "scope": 2554, - "src": "2274:74:11", + "scope": 1892, + "src": "2274:74:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { - "id": 2542, + "id": 1880, "nodeType": "StructuredDocumentation", - "src": "2354:287:11", + "src": "2354:287:9", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2553, + "id": 1891, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "2655:12:11", + "nameLocation": "2655:12:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2549, + "id": 1887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2544, + "id": 1882, "mutability": "mutable", "name": "from", - "nameLocation": "2676:4:11", + "nameLocation": "2676:4:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2668:12:11", + "scope": 1891, + "src": "2668:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1903,10 +1903,10 @@ "typeString": "address" }, "typeName": { - "id": 2543, + "id": 1881, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2668:7:11", + "src": "2668:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1917,13 +1917,13 @@ }, { "constant": false, - "id": 2546, + "id": 1884, "mutability": "mutable", "name": "to", - "nameLocation": "2690:2:11", + "nameLocation": "2690:2:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2682:10:11", + "scope": 1891, + "src": "2682:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1931,10 +1931,10 @@ "typeString": "address" }, "typeName": { - "id": 2545, + "id": 1883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2682:7:11", + "src": "2682:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1945,13 +1945,13 @@ }, { "constant": false, - "id": 2548, + "id": 1886, "mutability": "mutable", "name": "amount", - "nameLocation": "2702:6:11", + "nameLocation": "2702:6:9", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2694:14:11", + "scope": 1891, + "src": "2694:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1959,10 +1959,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2547, + "id": 1885, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2694:7:11", + "src": "2694:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1971,21 +1971,21 @@ "visibility": "internal" } ], - "src": "2667:42:11" + "src": "2667:42:9" }, "returnParameters": { - "id": 2552, + "id": 1890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2551, + "id": 1889, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2728:4:11", + "scope": 1891, + "src": "2728:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1993,10 +1993,10 @@ "typeString": "bool" }, "typeName": { - "id": 2550, + "id": 1888, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2728:4:11", + "src": "2728:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2005,21 +2005,21 @@ "visibility": "internal" } ], - "src": "2727:6:11" + "src": "2727:6:9" }, - "scope": 2554, - "src": "2646:88:11", + "scope": 1892, + "src": "2646:88:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2555, - "src": "202:2534:11", + "scope": 1893, + "src": "202:2534:9", "usedErrors": [] } ], - "src": "106:2631:11" + "src": "106:2631:9" }, "compiler": { "name": "solc", @@ -2027,5 +2027,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.258Z" + "updatedAt": "2024-07-04T18:51:17.144Z" } \ No newline at end of file diff --git a/build/contracts/IGateway.json b/build/contracts/IGateway.json index 339e6b1..dc06cc1 100644 --- a/build/contracts/IGateway.json +++ b/build/contracts/IGateway.json @@ -345,18 +345,18 @@ "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2554 + 1892 ], "IGateway": [ - 901 + 896 ] }, - "id": 902, + "id": 897, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 765, + "id": 760, "literals": [ "solidity", "^", @@ -369,20 +369,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 767, + "id": 762, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 902, - "sourceUnit": 2555, + "scope": 897, + "sourceUnit": 1893, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 766, + "id": 761, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "73:6:2", "typeDescriptions": {} }, @@ -398,15 +398,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 768, + "id": 763, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 901, + "id": 896, "linearizedBaseContracts": [ - 901 + 896 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -415,29 +415,29 @@ { "anonymous": false, "documentation": { - "id": 769, + "id": 764, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 785, + "id": 780, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 784, + "id": 779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 771, + "id": 766, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -446,7 +446,7 @@ "typeString": "address" }, "typeName": { - "id": 770, + "id": 765, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -460,13 +460,13 @@ }, { "constant": false, - "id": 773, + "id": 768, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -475,7 +475,7 @@ "typeString": "address" }, "typeName": { - "id": 772, + "id": 767, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -489,13 +489,13 @@ }, { "constant": false, - "id": 775, + "id": 770, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -504,7 +504,7 @@ "typeString": "uint256" }, "typeName": { - "id": 774, + "id": 769, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -517,13 +517,13 @@ }, { "constant": false, - "id": 777, + "id": 772, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -532,7 +532,7 @@ "typeString": "uint256" }, "typeName": { - "id": 776, + "id": 771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -545,13 +545,13 @@ }, { "constant": false, - "id": 779, + "id": 774, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -560,7 +560,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 778, + "id": 773, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -573,13 +573,13 @@ }, { "constant": false, - "id": 781, + "id": 776, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -588,7 +588,7 @@ "typeString": "uint256" }, "typeName": { - "id": 780, + "id": 775, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -601,13 +601,13 @@ }, { "constant": false, - "id": 783, + "id": 778, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -616,7 +616,7 @@ "typeString": "string" }, "typeName": { - "id": 782, + "id": 777, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -635,29 +635,29 @@ { "anonymous": false, "documentation": { - "id": 786, + "id": 781, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 796, + "id": 791, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 795, + "id": 790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 788, + "id": 783, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -666,7 +666,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 787, + "id": 782, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -679,13 +679,13 @@ }, { "constant": false, - "id": 790, + "id": 785, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -694,7 +694,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 789, + "id": 784, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -707,13 +707,13 @@ }, { "constant": false, - "id": 792, + "id": 787, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -722,7 +722,7 @@ "typeString": "address" }, "typeName": { - "id": 791, + "id": 786, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -736,13 +736,13 @@ }, { "constant": false, - "id": 794, + "id": 789, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -751,7 +751,7 @@ "typeString": "uint96" }, "typeName": { - "id": 793, + "id": 788, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -770,29 +770,29 @@ { "anonymous": false, "documentation": { - "id": 797, + "id": 792, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 803, + "id": 798, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 802, + "id": 797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 799, + "id": 794, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 803, + "scope": 798, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -801,7 +801,7 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 793, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -814,13 +814,13 @@ }, { "constant": false, - "id": 801, + "id": 796, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 803, + "scope": 798, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -829,7 +829,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 800, + "id": 795, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -848,29 +848,29 @@ { "anonymous": false, "documentation": { - "id": 804, + "id": 799, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 810, + "id": 805, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 809, + "id": 804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 806, + "id": 801, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 805, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -879,7 +879,7 @@ "typeString": "address" }, "typeName": { - "id": 805, + "id": 800, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -893,13 +893,13 @@ }, { "constant": false, - "id": 808, + "id": 803, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 805, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -908,7 +908,7 @@ "typeString": "uint256" }, "typeName": { - "id": 807, + "id": 802, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -926,16 +926,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 831, + "id": 826, "members": [ { "constant": false, - "id": 812, + "id": 807, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -944,7 +944,7 @@ "typeString": "address" }, "typeName": { - "id": 811, + "id": 806, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -958,12 +958,12 @@ }, { "constant": false, - "id": 814, + "id": 809, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -972,7 +972,7 @@ "typeString": "address" }, "typeName": { - "id": 813, + "id": 808, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -986,12 +986,12 @@ }, { "constant": false, - "id": 816, + "id": 811, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -1000,7 +1000,7 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 810, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -1014,12 +1014,12 @@ }, { "constant": false, - "id": 818, + "id": 813, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -1028,7 +1028,7 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 812, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -1041,12 +1041,12 @@ }, { "constant": false, - "id": 820, + "id": 815, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -1055,7 +1055,7 @@ "typeString": "uint256" }, "typeName": { - "id": 819, + "id": 814, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -1068,12 +1068,12 @@ }, { "constant": false, - "id": 822, + "id": 817, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -1082,7 +1082,7 @@ "typeString": "bool" }, "typeName": { - "id": 821, + "id": 816, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -1095,12 +1095,12 @@ }, { "constant": false, - "id": 824, + "id": 819, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -1109,7 +1109,7 @@ "typeString": "bool" }, "typeName": { - "id": 823, + "id": 818, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -1122,12 +1122,12 @@ }, { "constant": false, - "id": 826, + "id": 821, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -1136,7 +1136,7 @@ "typeString": "address" }, "typeName": { - "id": 825, + "id": 820, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -1150,12 +1150,12 @@ }, { "constant": false, - "id": 828, + "id": 823, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -1164,7 +1164,7 @@ "typeString": "uint96" }, "typeName": { - "id": 827, + "id": 822, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -1177,12 +1177,12 @@ }, { "constant": false, - "id": 830, + "id": 825, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -1191,7 +1191,7 @@ "typeString": "uint256" }, "typeName": { - "id": 829, + "id": 824, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -1206,19 +1206,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 901, + "scope": 896, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 832, + "id": 827, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 851, + "id": 846, "implemented": false, "kind": "function", "modifiers": [], @@ -1226,17 +1226,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 847, + "id": 842, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 834, + "id": 829, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -1245,7 +1245,7 @@ "typeString": "address" }, "typeName": { - "id": 833, + "id": 828, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -1259,12 +1259,12 @@ }, { "constant": false, - "id": 836, + "id": 831, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -1273,7 +1273,7 @@ "typeString": "uint256" }, "typeName": { - "id": 835, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -1286,12 +1286,12 @@ }, { "constant": false, - "id": 838, + "id": 833, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -1300,7 +1300,7 @@ "typeString": "uint96" }, "typeName": { - "id": 837, + "id": 832, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -1313,12 +1313,12 @@ }, { "constant": false, - "id": 840, + "id": 835, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -1327,7 +1327,7 @@ "typeString": "address" }, "typeName": { - "id": 839, + "id": 834, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -1341,12 +1341,12 @@ }, { "constant": false, - "id": 842, + "id": 837, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -1355,7 +1355,7 @@ "typeString": "uint256" }, "typeName": { - "id": 841, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -1368,12 +1368,12 @@ }, { "constant": false, - "id": 844, + "id": 839, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -1382,7 +1382,7 @@ "typeString": "address" }, "typeName": { - "id": 843, + "id": 838, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -1396,12 +1396,12 @@ }, { "constant": false, - "id": 846, + "id": 841, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -1410,7 +1410,7 @@ "typeString": "string" }, "typeName": { - "id": 845, + "id": 840, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -1425,17 +1425,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 850, + "id": 845, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 849, + "id": 844, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -1444,7 +1444,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 848, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -1458,7 +1458,7 @@ ], "src": "4218:18:2" }, - "scope": 901, + "scope": 896, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -1466,13 +1466,13 @@ }, { "documentation": { - "id": 852, + "id": 847, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 865, + "id": 860, "implemented": false, "kind": "function", "modifiers": [], @@ -1480,17 +1480,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 861, + "id": 856, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 854, + "id": 849, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -1499,7 +1499,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 853, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -1512,12 +1512,12 @@ }, { "constant": false, - "id": 856, + "id": 851, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -1526,7 +1526,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 855, + "id": 850, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -1539,12 +1539,12 @@ }, { "constant": false, - "id": 858, + "id": 853, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -1553,7 +1553,7 @@ "typeString": "address" }, "typeName": { - "id": 857, + "id": 852, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -1567,12 +1567,12 @@ }, { "constant": false, - "id": 860, + "id": 855, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -1581,7 +1581,7 @@ "typeString": "uint64" }, "typeName": { - "id": 859, + "id": 854, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -1596,17 +1596,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 864, + "id": 859, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 863, + "id": 858, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -1615,7 +1615,7 @@ "typeString": "bool" }, "typeName": { - "id": 862, + "id": 857, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -1629,7 +1629,7 @@ ], "src": "4744:6:2" }, - "scope": 901, + "scope": 896, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -1637,13 +1637,13 @@ }, { "documentation": { - "id": 866, + "id": 861, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 875, + "id": 870, "implemented": false, "kind": "function", "modifiers": [], @@ -1651,17 +1651,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 871, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 868, + "id": 863, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -1670,7 +1670,7 @@ "typeString": "uint256" }, "typeName": { - "id": 867, + "id": 862, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -1683,12 +1683,12 @@ }, { "constant": false, - "id": 870, + "id": 865, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -1697,7 +1697,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 869, + "id": 864, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -1712,17 +1712,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 874, + "id": 869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 873, + "id": 868, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -1731,7 +1731,7 @@ "typeString": "bool" }, "typeName": { - "id": 872, + "id": 867, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -1745,7 +1745,7 @@ ], "src": "5120:6:2" }, - "scope": 901, + "scope": 896, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -1753,13 +1753,13 @@ }, { "documentation": { - "id": 876, + "id": 871, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 883, + "id": 878, "implemented": false, "kind": "function", "modifiers": [], @@ -1767,17 +1767,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 879, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 873, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 883, + "scope": 878, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1786,7 @@ "typeString": "address" }, "typeName": { - "id": 877, + "id": 872, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -1802,17 +1802,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 882, + "id": 877, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 876, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 883, + "scope": 878, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -1821,7 +1821,7 @@ "typeString": "bool" }, "typeName": { - "id": 880, + "id": 875, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -1835,7 +1835,7 @@ ], "src": "5353:6:2" }, - "scope": 901, + "scope": 896, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -1843,13 +1843,13 @@ }, { "documentation": { - "id": 884, + "id": 879, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 892, + "id": 887, "implemented": false, "kind": "function", "modifiers": [], @@ -1857,17 +1857,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 887, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 886, + "id": 881, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 892, + "scope": 887, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -1876,7 +1876,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 885, + "id": 880, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -1891,41 +1891,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 891, + "id": 886, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 890, + "id": 885, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 892, + "scope": 887, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 889, + "id": 884, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 888, + "id": 883, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "5556:5:2" }, - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -1934,7 +1934,7 @@ ], "src": "5555:14:2" }, - "scope": 901, + "scope": 896, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -1942,13 +1942,13 @@ }, { "documentation": { - "id": 893, + "id": 888, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 900, + "id": 895, "implemented": false, "kind": "function", "modifiers": [], @@ -1956,23 +1956,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 894, + "id": 889, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 899, + "id": 894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 896, + "id": 891, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 900, + "scope": 895, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -1981,7 +1981,7 @@ "typeString": "uint64" }, "typeName": { - "id": 895, + "id": 890, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -1994,12 +1994,12 @@ }, { "constant": false, - "id": 898, + "id": 893, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 900, + "scope": 895, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -2008,7 +2008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 897, + "id": 892, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -2022,14 +2022,14 @@ ], "src": "5776:40:2" }, - "scope": 901, + "scope": 896, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 902, + "scope": 897, "src": "211:5608:2", "usedErrors": [] } @@ -2040,18 +2040,18 @@ "absolutePath": "/Users/encryption/Downloads/projects/paycrest/paycrestContract/contracts/interfaces/IGateway.sol", "exportedSymbols": { "IERC20": [ - 2554 + 1892 ], "IGateway": [ - 901 + 896 ] }, - "id": 902, + "id": 897, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 765, + "id": 760, "literals": [ "solidity", "^", @@ -2064,20 +2064,20 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 767, + "id": 762, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 902, - "sourceUnit": 2555, + "scope": 897, + "sourceUnit": 1893, "src": "65:70:2", "symbolAliases": [ { "foreign": { - "id": 766, + "id": 761, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, + "referencedDeclaration": 1892, "src": "73:6:2", "typeDescriptions": {} }, @@ -2093,15 +2093,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 768, + "id": 763, "nodeType": "StructuredDocumentation", "src": "137:73:2", "text": " @title IGateway\n @notice Interface for the Gateway contract." }, "fullyImplemented": false, - "id": 901, + "id": 896, "linearizedBaseContracts": [ - 901 + 896 ], "name": "IGateway", "nameLocation": "221:8:2", @@ -2110,29 +2110,29 @@ { "anonymous": false, "documentation": { - "id": 769, + "id": 764, "nodeType": "StructuredDocumentation", "src": "417:335:2", "text": " @dev Emitted when a deposit is made.\n @param sender The address of the sender.\n @param token The address of the deposited token.\n @param amount The amount of the deposit.\n @param orderId The ID of the order.\n @param rate The rate at which the deposit is made.\n @param messageHash The hash of the message." }, "eventSelector": "40ccd1ceb111a3c186ef9911e1b876dc1f789ed331b86097b3b8851055b6a137", - "id": 785, + "id": 780, "name": "OrderCreated", "nameLocation": "760:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 784, + "id": 779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 771, + "id": 766, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "792:6:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "776:22:2", "stateVariable": false, "storageLocation": "default", @@ -2141,7 +2141,7 @@ "typeString": "address" }, "typeName": { - "id": 770, + "id": 765, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:2", @@ -2155,13 +2155,13 @@ }, { "constant": false, - "id": 773, + "id": 768, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "818:5:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "802:21:2", "stateVariable": false, "storageLocation": "default", @@ -2170,7 +2170,7 @@ "typeString": "address" }, "typeName": { - "id": 772, + "id": 767, "name": "address", "nodeType": "ElementaryTypeName", "src": "802:7:2", @@ -2184,13 +2184,13 @@ }, { "constant": false, - "id": 775, + "id": 770, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "843:6:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "827:22:2", "stateVariable": false, "storageLocation": "default", @@ -2199,7 +2199,7 @@ "typeString": "uint256" }, "typeName": { - "id": 774, + "id": 769, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "827:7:2", @@ -2212,13 +2212,13 @@ }, { "constant": false, - "id": 777, + "id": 772, "indexed": false, "mutability": "mutable", "name": "protocolFee", "nameLocation": "861:11:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "853:19:2", "stateVariable": false, "storageLocation": "default", @@ -2227,7 +2227,7 @@ "typeString": "uint256" }, "typeName": { - "id": 776, + "id": 771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "853:7:2", @@ -2240,13 +2240,13 @@ }, { "constant": false, - "id": 779, + "id": 774, "indexed": false, "mutability": "mutable", "name": "orderId", "nameLocation": "884:7:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "876:15:2", "stateVariable": false, "storageLocation": "default", @@ -2255,7 +2255,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 778, + "id": 773, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "876:7:2", @@ -2268,13 +2268,13 @@ }, { "constant": false, - "id": 781, + "id": 776, "indexed": false, "mutability": "mutable", "name": "rate", "nameLocation": "903:4:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "895:12:2", "stateVariable": false, "storageLocation": "default", @@ -2283,7 +2283,7 @@ "typeString": "uint256" }, "typeName": { - "id": 780, + "id": 775, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "895:7:2", @@ -2296,13 +2296,13 @@ }, { "constant": false, - "id": 783, + "id": 778, "indexed": false, "mutability": "mutable", "name": "messageHash", "nameLocation": "918:11:2", "nodeType": "VariableDeclaration", - "scope": 785, + "scope": 780, "src": "911:18:2", "stateVariable": false, "storageLocation": "default", @@ -2311,7 +2311,7 @@ "typeString": "string" }, "typeName": { - "id": 782, + "id": 777, "name": "string", "nodeType": "ElementaryTypeName", "src": "911:6:2", @@ -2330,29 +2330,29 @@ { "anonymous": false, "documentation": { - "id": 786, + "id": 781, "nodeType": "StructuredDocumentation", "src": "936:303:2", "text": " @dev Emitted when an aggregator settles a transaction.\n @param splitOrderId The ID of the split order.\n @param orderId The ID of the order.\n @param liquidityProvider The address of the liquidity provider.\n @param settlePercent The percentage at which the transaction is settled." }, "eventSelector": "98ece21e01a01cbe1d1c0dad3b053c8fbd368f99be78be958fcf1d1d13fd249a", - "id": 796, + "id": 791, "name": "OrderSettled", "nameLocation": "1247:12:2", "nodeType": "EventDefinition", "parameters": { - "id": 795, + "id": 790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 788, + "id": 783, "indexed": false, "mutability": "mutable", "name": "splitOrderId", "nameLocation": "1271:12:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1263:20:2", "stateVariable": false, "storageLocation": "default", @@ -2361,7 +2361,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 787, + "id": 782, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1263:7:2", @@ -2374,13 +2374,13 @@ }, { "constant": false, - "id": 790, + "id": 785, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1303:7:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1287:23:2", "stateVariable": false, "storageLocation": "default", @@ -2389,7 +2389,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 789, + "id": 784, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1287:7:2", @@ -2402,13 +2402,13 @@ }, { "constant": false, - "id": 792, + "id": 787, "indexed": true, "mutability": "mutable", "name": "liquidityProvider", "nameLocation": "1330:17:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1314:33:2", "stateVariable": false, "storageLocation": "default", @@ -2417,7 +2417,7 @@ "typeString": "address" }, "typeName": { - "id": 791, + "id": 786, "name": "address", "nodeType": "ElementaryTypeName", "src": "1314:7:2", @@ -2431,13 +2431,13 @@ }, { "constant": false, - "id": 794, + "id": 789, "indexed": false, "mutability": "mutable", "name": "settlePercent", "nameLocation": "1358:13:2", "nodeType": "VariableDeclaration", - "scope": 796, + "scope": 791, "src": "1351:20:2", "stateVariable": false, "storageLocation": "default", @@ -2446,7 +2446,7 @@ "typeString": "uint96" }, "typeName": { - "id": 793, + "id": 788, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "1351:6:2", @@ -2465,29 +2465,29 @@ { "anonymous": false, "documentation": { - "id": 797, + "id": 792, "nodeType": "StructuredDocumentation", "src": "1378:163:2", "text": " @dev Emitted when an aggregator refunds a transaction.\n @param fee The fee deducted from the refund amount.\n @param orderId The ID of the order." }, "eventSelector": "0736fe428e1747ca8d387c2e6fa1a31a0cde62d3a167c40a46ade59a3cdc828e", - "id": 803, + "id": 798, "name": "OrderRefunded", "nameLocation": "1549:13:2", "nodeType": "EventDefinition", "parameters": { - "id": 802, + "id": 797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 799, + "id": 794, "indexed": false, "mutability": "mutable", "name": "fee", "nameLocation": "1571:3:2", "nodeType": "VariableDeclaration", - "scope": 803, + "scope": 798, "src": "1563:11:2", "stateVariable": false, "storageLocation": "default", @@ -2496,7 +2496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 793, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1563:7:2", @@ -2509,13 +2509,13 @@ }, { "constant": false, - "id": 801, + "id": 796, "indexed": true, "mutability": "mutable", "name": "orderId", "nameLocation": "1592:7:2", "nodeType": "VariableDeclaration", - "scope": 803, + "scope": 798, "src": "1576:23:2", "stateVariable": false, "storageLocation": "default", @@ -2524,7 +2524,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 800, + "id": 795, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1576:7:2", @@ -2543,29 +2543,29 @@ { "anonymous": false, "documentation": { - "id": 804, + "id": 799, "nodeType": "StructuredDocumentation", "src": "1604:161:2", "text": " @dev Emitted when the sender's fee is transferred.\n @param sender The address of the sender.\n @param amount The amount of the fee transferred." }, "eventSelector": "44f6938ca4a10313aabb76f874cced61e35710a734a126e4afb34461bf8c2501", - "id": 810, + "id": 805, "name": "SenderFeeTransferred", "nameLocation": "1773:20:2", "nodeType": "EventDefinition", "parameters": { - "id": 809, + "id": 804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 806, + "id": 801, "indexed": true, "mutability": "mutable", "name": "sender", "nameLocation": "1810:6:2", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 805, "src": "1794:22:2", "stateVariable": false, "storageLocation": "default", @@ -2574,7 +2574,7 @@ "typeString": "address" }, "typeName": { - "id": 805, + "id": 800, "name": "address", "nodeType": "ElementaryTypeName", "src": "1794:7:2", @@ -2588,13 +2588,13 @@ }, { "constant": false, - "id": 808, + "id": 803, "indexed": true, "mutability": "mutable", "name": "amount", "nameLocation": "1834:6:2", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 805, "src": "1818:22:2", "stateVariable": false, "storageLocation": "default", @@ -2603,7 +2603,7 @@ "typeString": "uint256" }, "typeName": { - "id": 807, + "id": 802, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:2", @@ -2621,16 +2621,16 @@ }, { "canonicalName": "IGateway.Order", - "id": 831, + "id": 826, "members": [ { "constant": false, - "id": 812, + "id": 807, "mutability": "mutable", "name": "sender", "nameLocation": "2649:6:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2641:14:2", "stateVariable": false, "storageLocation": "default", @@ -2639,7 +2639,7 @@ "typeString": "address" }, "typeName": { - "id": 811, + "id": 806, "name": "address", "nodeType": "ElementaryTypeName", "src": "2641:7:2", @@ -2653,12 +2653,12 @@ }, { "constant": false, - "id": 814, + "id": 809, "mutability": "mutable", "name": "token", "nameLocation": "2667:5:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2659:13:2", "stateVariable": false, "storageLocation": "default", @@ -2667,7 +2667,7 @@ "typeString": "address" }, "typeName": { - "id": 813, + "id": 808, "name": "address", "nodeType": "ElementaryTypeName", "src": "2659:7:2", @@ -2681,12 +2681,12 @@ }, { "constant": false, - "id": 816, + "id": 811, "mutability": "mutable", "name": "senderFeeRecipient", "nameLocation": "2684:18:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2676:26:2", "stateVariable": false, "storageLocation": "default", @@ -2695,7 +2695,7 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 810, "name": "address", "nodeType": "ElementaryTypeName", "src": "2676:7:2", @@ -2709,12 +2709,12 @@ }, { "constant": false, - "id": 818, + "id": 813, "mutability": "mutable", "name": "senderFee", "nameLocation": "2714:9:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2706:17:2", "stateVariable": false, "storageLocation": "default", @@ -2723,7 +2723,7 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 812, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", @@ -2736,12 +2736,12 @@ }, { "constant": false, - "id": 820, + "id": 815, "mutability": "mutable", "name": "protocolFee", "nameLocation": "2735:11:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2727:19:2", "stateVariable": false, "storageLocation": "default", @@ -2750,7 +2750,7 @@ "typeString": "uint256" }, "typeName": { - "id": 819, + "id": 814, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2727:7:2", @@ -2763,12 +2763,12 @@ }, { "constant": false, - "id": 822, + "id": 817, "mutability": "mutable", "name": "isFulfilled", "nameLocation": "2755:11:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2750:16:2", "stateVariable": false, "storageLocation": "default", @@ -2777,7 +2777,7 @@ "typeString": "bool" }, "typeName": { - "id": 821, + "id": 816, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2750:4:2", @@ -2790,12 +2790,12 @@ }, { "constant": false, - "id": 824, + "id": 819, "mutability": "mutable", "name": "isRefunded", "nameLocation": "2775:10:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2770:15:2", "stateVariable": false, "storageLocation": "default", @@ -2804,7 +2804,7 @@ "typeString": "bool" }, "typeName": { - "id": 823, + "id": 818, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2770:4:2", @@ -2817,12 +2817,12 @@ }, { "constant": false, - "id": 826, + "id": 821, "mutability": "mutable", "name": "refundAddress", "nameLocation": "2797:13:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2789:21:2", "stateVariable": false, "storageLocation": "default", @@ -2831,7 +2831,7 @@ "typeString": "address" }, "typeName": { - "id": 825, + "id": 820, "name": "address", "nodeType": "ElementaryTypeName", "src": "2789:7:2", @@ -2845,12 +2845,12 @@ }, { "constant": false, - "id": 828, + "id": 823, "mutability": "mutable", "name": "currentBPS", "nameLocation": "2821:10:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2814:17:2", "stateVariable": false, "storageLocation": "default", @@ -2859,7 +2859,7 @@ "typeString": "uint96" }, "typeName": { - "id": 827, + "id": 822, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "2814:6:2", @@ -2872,12 +2872,12 @@ }, { "constant": false, - "id": 830, + "id": 825, "mutability": "mutable", "name": "amount", "nameLocation": "2843:6:2", "nodeType": "VariableDeclaration", - "scope": 831, + "scope": 826, "src": "2835:14:2", "stateVariable": false, "storageLocation": "default", @@ -2886,7 +2886,7 @@ "typeString": "uint256" }, "typeName": { - "id": 829, + "id": 824, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2835:7:2", @@ -2901,19 +2901,19 @@ "name": "Order", "nameLocation": "2631:5:2", "nodeType": "StructDefinition", - "scope": 901, + "scope": 896, "src": "2624:229:2", "visibility": "public" }, { "documentation": { - "id": 832, + "id": 827, "nodeType": "StructuredDocumentation", "src": "3048:964:2", "text": " @notice Locks the sender's amount of token into Gateway.\n @dev Requirements:\n - `msg.sender` must approve Gateway contract on `_token` of at least `amount` before function call.\n - `_token` must be an acceptable token. See {isTokenSupported}.\n - `amount` must be greater than minimum.\n - `_refundAddress` refund address must not be zero address.\n @param _token The address of the token.\n @param _amount The amount in the decimal of `_token` to be locked.\n @param _rate The rate at which the sender intends to sell `_amount` of `_token`.\n @param _senderFeeRecipient The address that will receive `_senderFee` in `_token`.\n @param _senderFee The amount in the decimal of `_token` that will be paid to `_senderFeeRecipient`.\n @param _refundAddress The address that will receive `_amount` in `_token` when there is a need to refund.\n @param messageHash The hash of the message.\n @return _orderId The ID of the order." }, "functionSelector": "809804f7", - "id": 851, + "id": 846, "implemented": false, "kind": "function", "modifiers": [], @@ -2921,17 +2921,17 @@ "nameLocation": "4023:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 847, + "id": 842, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 834, + "id": 829, "mutability": "mutable", "name": "_token", "nameLocation": "4046:6:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4038:14:2", "stateVariable": false, "storageLocation": "default", @@ -2940,7 +2940,7 @@ "typeString": "address" }, "typeName": { - "id": 833, + "id": 828, "name": "address", "nodeType": "ElementaryTypeName", "src": "4038:7:2", @@ -2954,12 +2954,12 @@ }, { "constant": false, - "id": 836, + "id": 831, "mutability": "mutable", "name": "_amount", "nameLocation": "4064:7:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4056:15:2", "stateVariable": false, "storageLocation": "default", @@ -2968,7 +2968,7 @@ "typeString": "uint256" }, "typeName": { - "id": 835, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4056:7:2", @@ -2981,12 +2981,12 @@ }, { "constant": false, - "id": 838, + "id": 833, "mutability": "mutable", "name": "_rate", "nameLocation": "4082:5:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4075:12:2", "stateVariable": false, "storageLocation": "default", @@ -2995,7 +2995,7 @@ "typeString": "uint96" }, "typeName": { - "id": 837, + "id": 832, "name": "uint96", "nodeType": "ElementaryTypeName", "src": "4075:6:2", @@ -3008,12 +3008,12 @@ }, { "constant": false, - "id": 840, + "id": 835, "mutability": "mutable", "name": "_senderFeeRecipient", "nameLocation": "4099:19:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4091:27:2", "stateVariable": false, "storageLocation": "default", @@ -3022,7 +3022,7 @@ "typeString": "address" }, "typeName": { - "id": 839, + "id": 834, "name": "address", "nodeType": "ElementaryTypeName", "src": "4091:7:2", @@ -3036,12 +3036,12 @@ }, { "constant": false, - "id": 842, + "id": 837, "mutability": "mutable", "name": "_senderFee", "nameLocation": "4130:10:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4122:18:2", "stateVariable": false, "storageLocation": "default", @@ -3050,7 +3050,7 @@ "typeString": "uint256" }, "typeName": { - "id": 841, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4122:7:2", @@ -3063,12 +3063,12 @@ }, { "constant": false, - "id": 844, + "id": 839, "mutability": "mutable", "name": "_refundAddress", "nameLocation": "4152:14:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4144:22:2", "stateVariable": false, "storageLocation": "default", @@ -3077,7 +3077,7 @@ "typeString": "address" }, "typeName": { - "id": 843, + "id": 838, "name": "address", "nodeType": "ElementaryTypeName", "src": "4144:7:2", @@ -3091,12 +3091,12 @@ }, { "constant": false, - "id": 846, + "id": 841, "mutability": "mutable", "name": "messageHash", "nameLocation": "4186:11:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4170:27:2", "stateVariable": false, "storageLocation": "calldata", @@ -3105,7 +3105,7 @@ "typeString": "string" }, "typeName": { - "id": 845, + "id": 840, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", @@ -3120,17 +3120,17 @@ "src": "4034:166:2" }, "returnParameters": { - "id": 850, + "id": 845, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 849, + "id": 844, "mutability": "mutable", "name": "_orderId", "nameLocation": "4227:8:2", "nodeType": "VariableDeclaration", - "scope": 851, + "scope": 846, "src": "4219:16:2", "stateVariable": false, "storageLocation": "default", @@ -3139,7 +3139,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 848, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4219:7:2", @@ -3153,7 +3153,7 @@ ], "src": "4218:18:2" }, - "scope": 901, + "scope": 896, "src": "4014:223:2", "stateMutability": "nonpayable", "virtual": false, @@ -3161,13 +3161,13 @@ }, { "documentation": { - "id": 852, + "id": 847, "nodeType": "StructuredDocumentation", "src": "4240:366:2", "text": " @notice Settles a transaction and distributes rewards accordingly.\n @param _splitOrderId The ID of the split order.\n @param _orderId The ID of the transaction.\n @param _liquidityProvider The address of the liquidity provider.\n @param _settlePercent The rate at which the transaction is settled.\n @return bool the settlement is successful." }, "functionSelector": "f22ee704", - "id": 865, + "id": 860, "implemented": false, "kind": "function", "modifiers": [], @@ -3175,17 +3175,17 @@ "nameLocation": "4617:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 861, + "id": 856, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 854, + "id": 849, "mutability": "mutable", "name": "_splitOrderId", "nameLocation": "4635:13:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4627:21:2", "stateVariable": false, "storageLocation": "default", @@ -3194,7 +3194,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 853, + "id": 848, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4627:7:2", @@ -3207,12 +3207,12 @@ }, { "constant": false, - "id": 856, + "id": 851, "mutability": "mutable", "name": "_orderId", "nameLocation": "4660:8:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4652:16:2", "stateVariable": false, "storageLocation": "default", @@ -3221,7 +3221,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 855, + "id": 850, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4652:7:2", @@ -3234,12 +3234,12 @@ }, { "constant": false, - "id": 858, + "id": 853, "mutability": "mutable", "name": "_liquidityProvider", "nameLocation": "4680:18:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4672:26:2", "stateVariable": false, "storageLocation": "default", @@ -3248,7 +3248,7 @@ "typeString": "address" }, "typeName": { - "id": 857, + "id": 852, "name": "address", "nodeType": "ElementaryTypeName", "src": "4672:7:2", @@ -3262,12 +3262,12 @@ }, { "constant": false, - "id": 860, + "id": 855, "mutability": "mutable", "name": "_settlePercent", "nameLocation": "4709:14:2", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4702:21:2", "stateVariable": false, "storageLocation": "default", @@ -3276,7 +3276,7 @@ "typeString": "uint64" }, "typeName": { - "id": 859, + "id": 854, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4702:6:2", @@ -3291,17 +3291,17 @@ "src": "4623:103:2" }, "returnParameters": { - "id": 864, + "id": 859, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 863, + "id": 858, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 865, + "scope": 860, "src": "4745:4:2", "stateVariable": false, "storageLocation": "default", @@ -3310,7 +3310,7 @@ "typeString": "bool" }, "typeName": { - "id": 862, + "id": 857, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4745:4:2", @@ -3324,7 +3324,7 @@ ], "src": "4744:6:2" }, - "scope": 901, + "scope": 896, "src": "4608:143:2", "stateMutability": "nonpayable", "virtual": false, @@ -3332,13 +3332,13 @@ }, { "documentation": { - "id": 866, + "id": 861, "nodeType": "StructuredDocumentation", "src": "4754:299:2", "text": " @notice Refunds to the specified refundable address.\n @dev Requirements:\n - Only aggregators can call this function.\n @param _fee The amount to be deducted from the amount to be refunded.\n @param _orderId The ID of the transaction.\n @return bool the refund is successful." }, "functionSelector": "71eedb88", - "id": 875, + "id": 870, "implemented": false, "kind": "function", "modifiers": [], @@ -3346,17 +3346,17 @@ "nameLocation": "5064:6:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 871, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 868, + "id": 863, "mutability": "mutable", "name": "_fee", "nameLocation": "5079:4:2", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5071:12:2", "stateVariable": false, "storageLocation": "default", @@ -3365,7 +3365,7 @@ "typeString": "uint256" }, "typeName": { - "id": 867, + "id": 862, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5071:7:2", @@ -3378,12 +3378,12 @@ }, { "constant": false, - "id": 870, + "id": 865, "mutability": "mutable", "name": "_orderId", "nameLocation": "5093:8:2", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5085:16:2", "stateVariable": false, "storageLocation": "default", @@ -3392,7 +3392,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 869, + "id": 864, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5085:7:2", @@ -3407,17 +3407,17 @@ "src": "5070:32:2" }, "returnParameters": { - "id": 874, + "id": 869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 873, + "id": 868, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 875, + "scope": 870, "src": "5121:4:2", "stateVariable": false, "storageLocation": "default", @@ -3426,7 +3426,7 @@ "typeString": "bool" }, "typeName": { - "id": 872, + "id": 867, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5121:4:2", @@ -3440,7 +3440,7 @@ ], "src": "5120:6:2" }, - "scope": 901, + "scope": 896, "src": "5055:72:2", "stateMutability": "nonpayable", "virtual": false, @@ -3448,13 +3448,13 @@ }, { "documentation": { - "id": 876, + "id": 871, "nodeType": "StructuredDocumentation", "src": "5130:157:2", "text": " @notice Checks if a token is supported by Gateway.\n @param _token The address of the token to check.\n @return bool the token is supported." }, "functionSelector": "75151b63", - "id": 883, + "id": 878, "implemented": false, "kind": "function", "modifiers": [], @@ -3462,17 +3462,17 @@ "nameLocation": "5298:16:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 879, + "id": 874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 873, "mutability": "mutable", "name": "_token", "nameLocation": "5323:6:2", "nodeType": "VariableDeclaration", - "scope": 883, + "scope": 878, "src": "5315:14:2", "stateVariable": false, "storageLocation": "default", @@ -3481,7 +3481,7 @@ "typeString": "address" }, "typeName": { - "id": 877, + "id": 872, "name": "address", "nodeType": "ElementaryTypeName", "src": "5315:7:2", @@ -3497,17 +3497,17 @@ "src": "5314:16:2" }, "returnParameters": { - "id": 882, + "id": 877, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 876, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 883, + "scope": 878, "src": "5354:4:2", "stateVariable": false, "storageLocation": "default", @@ -3516,7 +3516,7 @@ "typeString": "bool" }, "typeName": { - "id": 880, + "id": 875, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5354:4:2", @@ -3530,7 +3530,7 @@ ], "src": "5353:6:2" }, - "scope": 901, + "scope": 896, "src": "5289:71:2", "stateMutability": "view", "virtual": false, @@ -3538,13 +3538,13 @@ }, { "documentation": { - "id": 884, + "id": 879, "nodeType": "StructuredDocumentation", "src": "5363:128:2", "text": " @notice Gets the details of an order.\n @param _orderId The ID of the order.\n @return Order The order details." }, "functionSelector": "768c6ec0", - "id": 892, + "id": 887, "implemented": false, "kind": "function", "modifiers": [], @@ -3552,17 +3552,17 @@ "nameLocation": "5502:12:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 887, + "id": 882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 886, + "id": 881, "mutability": "mutable", "name": "_orderId", "nameLocation": "5523:8:2", "nodeType": "VariableDeclaration", - "scope": 892, + "scope": 887, "src": "5515:16:2", "stateVariable": false, "storageLocation": "default", @@ -3571,7 +3571,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 885, + "id": 880, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5515:7:2", @@ -3586,41 +3586,41 @@ "src": "5514:18:2" }, "returnParameters": { - "id": 891, + "id": 886, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 890, + "id": 885, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 892, + "scope": 887, "src": "5556:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_memory_ptr", + "typeIdentifier": "t_struct$_Order_$826_memory_ptr", "typeString": "struct IGateway.Order" }, "typeName": { - "id": 889, + "id": 884, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 888, + "id": 883, "name": "Order", "nameLocations": [ "5556:5:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "5556:5:2" }, - "referencedDeclaration": 831, + "referencedDeclaration": 826, "src": "5556:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$831_storage_ptr", + "typeIdentifier": "t_struct$_Order_$826_storage_ptr", "typeString": "struct IGateway.Order" } }, @@ -3629,7 +3629,7 @@ ], "src": "5555:14:2" }, - "scope": 901, + "scope": 896, "src": "5493:77:2", "stateMutability": "view", "virtual": false, @@ -3637,13 +3637,13 @@ }, { "documentation": { - "id": 893, + "id": 888, "nodeType": "StructuredDocumentation", "src": "5573:154:2", "text": " @notice Gets the fee details of Gateway.\n @return protocolReward The protocol reward amount.\n @return max_bps The maximum basis points." }, "functionSelector": "b810c636", - "id": 900, + "id": 895, "implemented": false, "kind": "function", "modifiers": [], @@ -3651,23 +3651,23 @@ "nameLocation": "5738:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 894, + "id": 889, "nodeType": "ParameterList", "parameters": [], "src": "5751:2:2" }, "returnParameters": { - "id": 899, + "id": 894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 896, + "id": 891, "mutability": "mutable", "name": "protocolReward", "nameLocation": "5784:14:2", "nodeType": "VariableDeclaration", - "scope": 900, + "scope": 895, "src": "5777:21:2", "stateVariable": false, "storageLocation": "default", @@ -3676,7 +3676,7 @@ "typeString": "uint64" }, "typeName": { - "id": 895, + "id": 890, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5777:6:2", @@ -3689,12 +3689,12 @@ }, { "constant": false, - "id": 898, + "id": 893, "mutability": "mutable", "name": "max_bps", "nameLocation": "5808:7:2", "nodeType": "VariableDeclaration", - "scope": 900, + "scope": 895, "src": "5800:15:2", "stateVariable": false, "storageLocation": "default", @@ -3703,7 +3703,7 @@ "typeString": "uint256" }, "typeName": { - "id": 897, + "id": 892, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5800:7:2", @@ -3717,14 +3717,14 @@ ], "src": "5776:40:2" }, - "scope": 901, + "scope": 896, "src": "5729:88:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 902, + "scope": 897, "src": "211:5608:2", "usedErrors": [] } @@ -3737,5 +3737,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.258Z" + "updatedAt": "2024-07-04T18:51:17.143Z" } \ No newline at end of file diff --git a/build/contracts/Initializable.json b/build/contracts/Initializable.json index b5e3068..cf0e11a 100644 --- a/build/contracts/Initializable.json +++ b/build/contracts/Initializable.json @@ -25,18 +25,18 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1838 + 1763 ], "Initializable": [ - 1380 + 1305 ] }, - "id": 1381, + "id": 1306, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1213, + "id": 1138, "literals": [ "solidity", "^", @@ -44,17 +44,17 @@ ".2" ], "nodeType": "PragmaDirective", - "src": "113:23:6" + "src": "113:23:5" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1214, + "id": 1139, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1381, - "sourceUnit": 1839, - "src": "138:44:6", + "scope": 1306, + "sourceUnit": 1764, + "src": "138:44:5", "symbolAliases": [], "unitAlias": "" }, @@ -65,35 +65,35 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1215, + "id": 1140, "nodeType": "StructuredDocumentation", - "src": "184:2209:6", + "src": "184:2209:5", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1380, + "id": 1305, "linearizedBaseContracts": [ - 1380 + 1305 ], "name": "Initializable", - "nameLocation": "2412:13:6", + "nameLocation": "2412:13:5", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "documentation": { - "id": 1216, + "id": 1141, "nodeType": "StructuredDocumentation", - "src": "2432:109:6", + "src": "2432:109:5", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1218, + "id": 1143, "mutability": "mutable", "name": "_initialized", - "nameLocation": "2560:12:6", + "nameLocation": "2560:12:5", "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "2546:26:6", + "scope": 1305, + "src": "2546:26:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -101,10 +101,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1217, + "id": 1142, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2546:5:6", + "src": "2546:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -115,18 +115,18 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1144, "nodeType": "StructuredDocumentation", - "src": "2579:91:6", + "src": "2579:91:5", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1221, + "id": 1146, "mutability": "mutable", "name": "_initializing", - "nameLocation": "2688:13:6", + "nameLocation": "2688:13:5", "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "2675:26:6", + "scope": 1305, + "src": "2675:26:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -134,10 +134,10 @@ "typeString": "bool" }, "typeName": { - "id": 1220, + "id": 1145, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2675:4:6", + "src": "2675:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -148,30 +148,30 @@ { "anonymous": false, "documentation": { - "id": 1222, + "id": 1147, "nodeType": "StructuredDocumentation", - "src": "2708:90:6", + "src": "2708:90:5", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1226, + "id": 1151, "name": "Initialized", - "nameLocation": "2809:11:6", + "nameLocation": "2809:11:5", "nodeType": "EventDefinition", "parameters": { - "id": 1225, + "id": 1150, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1224, + "id": 1149, "indexed": false, "mutability": "mutable", "name": "version", - "nameLocation": "2827:7:6", + "nameLocation": "2827:7:5", "nodeType": "VariableDeclaration", - "scope": 1226, - "src": "2821:13:6", + "scope": 1151, + "src": "2821:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -179,10 +179,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1223, + "id": 1148, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2821:5:6", + "src": "2821:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -191,30 +191,30 @@ "visibility": "internal" } ], - "src": "2820:15:6" + "src": "2820:15:5" }, - "src": "2803:33:6" + "src": "2803:33:5" }, { "body": { - "id": 1281, + "id": 1206, "nodeType": "Block", - "src": "3269:483:6", + "src": "3269:483:5", "statements": [ { "assignments": [ - 1230 + 1155 ], "declarations": [ { "constant": false, - "id": 1230, + "id": 1155, "mutability": "mutable", "name": "isTopLevelCall", - "nameLocation": "3284:14:6", + "nameLocation": "3284:14:5", "nodeType": "VariableDeclaration", - "scope": 1281, - "src": "3279:19:6", + "scope": 1206, + "src": "3279:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -222,10 +222,10 @@ "typeString": "bool" }, "typeName": { - "id": 1229, + "id": 1154, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3279:4:6", + "src": "3279:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -234,9 +234,9 @@ "visibility": "internal" } ], - "id": 1233, + "id": 1158, "initialValue": { - "id": 1232, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, @@ -244,14 +244,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3301:14:6", + "src": "3301:14:5", "subExpression": { - "id": 1231, + "id": 1156, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3302:13:6", + "referencedDeclaration": 1146, + "src": "3302:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -263,7 +263,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3279:36:6" + "src": "3279:36:5" }, { "expression": { @@ -273,7 +273,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1254, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -285,18 +285,18 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1239, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1235, + "id": 1160, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3347:14:6", + "referencedDeclaration": 1155, + "src": "3347:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -309,18 +309,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1238, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1236, + "id": 1161, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3365:12:6", + "referencedDeclaration": 1143, + "src": "3365:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -330,41 +330,41 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1237, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3380:1:6", + "src": "3380:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3365:16:6", + "src": "3365:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3347:34:6", + "src": "3347:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1240, + "id": 1165, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3346:36:6", + "src": "3346:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -379,13 +379,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1252, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1248, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -393,20 +393,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3387:45:6", + "src": "3387:45:5", "subExpression": { "arguments": [ { "arguments": [ { - "id": 1245, + "id": 1170, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3426:4:6", + "src": "3426:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1380", + "typeIdentifier": "t_contract$_Initializable_$1305", "typeString": "contract Initializable" } } @@ -414,30 +414,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1380", + "typeIdentifier": "t_contract$_Initializable_$1305", "typeString": "contract Initializable" } ], - "id": 1244, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3418:7:6", + "src": "3418:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1243, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3418:7:6", + "src": "3418:7:5", "typeDescriptions": {} } }, - "id": 1246, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -446,7 +446,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3418:13:6", + "src": "3418:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -462,33 +462,33 @@ } ], "expression": { - "id": 1241, + "id": 1166, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1838, - "src": "3388:18:6", + "referencedDeclaration": 1763, + "src": "3388:18:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1763_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1242, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3407:10:6", + "memberLocation": "3407:10:5", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1526, - "src": "3388:29:6", + "referencedDeclaration": 1451, + "src": "3388:29:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1247, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -497,7 +497,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3388:44:6", + "src": "3388:44:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -516,18 +516,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1251, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1249, + "id": 1174, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3436:12:6", + "referencedDeclaration": 1143, + "src": "3436:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -537,47 +537,47 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1250, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:1:6", + "src": "3452:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3436:17:6", + "src": "3436:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3387:66:6", + "src": "3387:66:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1253, + "id": 1178, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3386:68:6", + "src": "3386:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3346:108:6", + "src": "3346:108:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -585,14 +585,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1255, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3468:48:6", + "src": "3468:48:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" @@ -611,7 +611,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1234, + "id": 1159, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -619,13 +619,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3325:7:6", + "src": "3325:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1256, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -634,31 +634,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3325:201:6", + "src": "3325:201:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1257, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "3325:201:6" + "src": "3325:201:5" }, { "expression": { - "id": 1260, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1258, + "id": 1183, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3536:12:6", + "referencedDeclaration": 1143, + "src": "3536:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -668,65 +668,65 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1259, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3551:1:6", + "src": "3551:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3536:16:6", + "src": "3536:16:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1261, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "3536:16:6" + "src": "3536:16:5" }, { "condition": { - "id": 1262, + "id": 1187, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3566:14:6", + "referencedDeclaration": 1155, + "src": "3566:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1268, + "id": 1193, "nodeType": "IfStatement", - "src": "3562:65:6", + "src": "3562:65:5", "trueBody": { - "id": 1267, + "id": 1192, "nodeType": "Block", - "src": "3582:45:6", + "src": "3582:45:5", "statements": [ { "expression": { - "id": 1265, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1263, + "id": 1188, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3596:13:6", + "referencedDeclaration": 1146, + "src": "3596:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -736,73 +736,73 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1264, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3612:4:6", + "src": "3612:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3596:20:6", + "src": "3596:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1266, + "id": 1191, "nodeType": "ExpressionStatement", - "src": "3596:20:6" + "src": "3596:20:5" } ] } }, { - "id": 1269, + "id": 1194, "nodeType": "PlaceholderStatement", - "src": "3636:1:6" + "src": "3636:1:5" }, { "condition": { - "id": 1270, + "id": 1195, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3651:14:6", + "referencedDeclaration": 1155, + "src": "3651:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1280, + "id": 1205, "nodeType": "IfStatement", - "src": "3647:99:6", + "src": "3647:99:5", "trueBody": { - "id": 1279, + "id": 1204, "nodeType": "Block", - "src": "3667:79:6", + "src": "3667:79:5", "statements": [ { "expression": { - "id": 1273, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1271, + "id": 1196, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3681:13:6", + "referencedDeclaration": 1146, + "src": "3681:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -812,43 +812,43 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1272, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3697:5:6", + "src": "3697:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "3681:21:6", + "src": "3681:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1274, + "id": 1199, "nodeType": "ExpressionStatement", - "src": "3681:21:6" + "src": "3681:21:5" }, { "eventCall": { "arguments": [ { "hexValue": "31", - "id": 1276, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3733:1:6", + "src": "3733:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -863,18 +863,18 @@ "typeString": "int_const 1" } ], - "id": 1275, + "id": 1200, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "3721:11:6", + "referencedDeclaration": 1151, + "src": "3721:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1277, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -883,16 +883,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3721:14:6", + "src": "3721:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1278, + "id": 1203, "nodeType": "EmitStatement", - "src": "3716:19:6" + "src": "3716:19:5" } ] } @@ -900,30 +900,30 @@ ] }, "documentation": { - "id": 1227, + "id": 1152, "nodeType": "StructuredDocumentation", - "src": "2842:399:6", + "src": "2842:399:5", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1282, + "id": 1207, "name": "initializer", - "nameLocation": "3255:11:6", + "nameLocation": "3255:11:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1228, + "id": 1153, "nodeType": "ParameterList", "parameters": [], - "src": "3266:2:6" + "src": "3266:2:5" }, - "src": "3246:506:6", + "src": "3246:506:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1314, + "id": 1239, "nodeType": "Block", - "src": "4863:255:6", + "src": "4863:255:5", "statements": [ { "expression": { @@ -933,13 +933,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1293, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1289, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": false, @@ -947,14 +947,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4881:14:6", + "src": "4881:14:5", "subExpression": { - "id": 1288, + "id": 1213, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "4882:13:6", + "referencedDeclaration": 1146, + "src": "4882:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -972,18 +972,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1292, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1290, + "id": 1215, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "4899:12:6", + "referencedDeclaration": 1143, + "src": "4899:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -992,24 +992,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1291, + "id": 1216, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "4914:7:6", + "referencedDeclaration": 1210, + "src": "4914:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4899:22:6", + "src": "4899:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4881:40:6", + "src": "4881:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1017,14 +1017,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1294, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4923:48:6", + "src": "4923:48:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" @@ -1043,7 +1043,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1287, + "id": 1212, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1051,13 +1051,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4873:7:6", + "src": "4873:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1295, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, @@ -1066,31 +1066,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4873:99:6", + "src": "4873:99:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1296, + "id": 1221, "nodeType": "ExpressionStatement", - "src": "4873:99:6" + "src": "4873:99:5" }, { "expression": { - "id": 1299, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1297, + "id": 1222, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "4982:12:6", + "referencedDeclaration": 1143, + "src": "4982:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1099,41 +1099,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1298, + "id": 1223, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "4997:7:6", + "referencedDeclaration": 1210, + "src": "4997:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4982:22:6", + "src": "4982:22:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1300, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "4982:22:6" + "src": "4982:22:5" }, { "expression": { - "id": 1303, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1301, + "id": 1226, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5014:13:6", + "referencedDeclaration": 1146, + "src": "5014:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1143,49 +1143,49 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1302, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5030:4:6", + "src": "5030:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5014:20:6", + "src": "5014:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1304, + "id": 1229, "nodeType": "ExpressionStatement", - "src": "5014:20:6" + "src": "5014:20:5" }, { - "id": 1305, + "id": 1230, "nodeType": "PlaceholderStatement", - "src": "5044:1:6" + "src": "5044:1:5" }, { "expression": { - "id": 1308, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1306, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5055:13:6", + "referencedDeclaration": 1146, + "src": "5055:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1195,40 +1195,40 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1307, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5071:5:6", + "src": "5071:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "5055:21:6", + "src": "5055:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1309, + "id": 1234, "nodeType": "ExpressionStatement", - "src": "5055:21:6" + "src": "5055:21:5" }, { "eventCall": { "arguments": [ { - "id": 1311, + "id": 1236, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "5103:7:6", + "referencedDeclaration": 1210, + "src": "5103:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1242,18 +1242,18 @@ "typeString": "uint8" } ], - "id": 1310, + "id": 1235, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "5091:11:6", + "referencedDeclaration": 1151, + "src": "5091:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1312, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, @@ -1262,42 +1262,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5091:20:6", + "src": "5091:20:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1313, + "id": 1238, "nodeType": "EmitStatement", - "src": "5086:25:6" + "src": "5086:25:5" } ] }, "documentation": { - "id": 1283, + "id": 1208, "nodeType": "StructuredDocumentation", - "src": "3758:1062:6", + "src": "3758:1062:5", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1315, + "id": 1240, "name": "reinitializer", - "nameLocation": "4834:13:6", + "nameLocation": "4834:13:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1286, + "id": 1211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1210, "mutability": "mutable", "name": "version", - "nameLocation": "4854:7:6", + "nameLocation": "4854:7:5", "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "4848:13:6", + "scope": 1240, + "src": "4848:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1305,10 +1305,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1284, + "id": 1209, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4848:5:6", + "src": "4848:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1317,28 +1317,28 @@ "visibility": "internal" } ], - "src": "4847:15:6" + "src": "4847:15:5" }, - "src": "4825:293:6", + "src": "4825:293:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1324, + "id": 1249, "nodeType": "Block", - "src": "5356:97:6", + "src": "5356:97:5", "statements": [ { "expression": { "arguments": [ { - "id": 1319, + "id": 1244, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5374:13:6", + "referencedDeclaration": 1146, + "src": "5374:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1346,14 +1346,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1320, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5389:45:6", + "src": "5389:45:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\"" @@ -1372,7 +1372,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1318, + "id": 1243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1380,13 +1380,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5366:7:6", + "src": "5366:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1321, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -1395,55 +1395,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5366:69:6", + "src": "5366:69:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1322, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "5366:69:6" + "src": "5366:69:5" }, { - "id": 1323, + "id": 1248, "nodeType": "PlaceholderStatement", - "src": "5445:1:6" + "src": "5445:1:5" } ] }, "documentation": { - "id": 1316, + "id": 1241, "nodeType": "StructuredDocumentation", - "src": "5124:199:6", + "src": "5124:199:5", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1325, + "id": 1250, "name": "onlyInitializing", - "nameLocation": "5337:16:6", + "nameLocation": "5337:16:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1317, + "id": 1242, "nodeType": "ParameterList", "parameters": [], - "src": "5353:2:6" + "src": "5353:2:5" }, - "src": "5328:125:6", + "src": "5328:125:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1360, + "id": 1285, "nodeType": "Block", - "src": "5988:231:6", + "src": "5988:231:5", "statements": [ { "expression": { "arguments": [ { - "id": 1331, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -1451,14 +1451,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6006:14:6", + "src": "6006:14:5", "subExpression": { - "id": 1330, + "id": 1255, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6007:13:6", + "referencedDeclaration": 1146, + "src": "6007:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1471,14 +1471,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1332, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6022:41:6", + "src": "6022:41:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", "typeString": "literal_string \"Initializable: contract is initializing\"" @@ -1497,7 +1497,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1329, + "id": 1254, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1505,13 +1505,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5998:7:6", + "src": "5998:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1333, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -1520,16 +1520,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5998:66:6", + "src": "5998:66:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1334, + "id": 1259, "nodeType": "ExpressionStatement", - "src": "5998:66:6" + "src": "5998:66:5" }, { "condition": { @@ -1537,18 +1537,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1341, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1335, + "id": 1260, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6078:12:6", + "referencedDeclaration": 1143, + "src": "6078:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1560,22 +1560,22 @@ "expression": { "arguments": [ { - "id": 1338, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6099:5:6", + "src": "6099:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1337, + "id": 1262, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6099:5:6", + "src": "6099:5:5", "typeDescriptions": {} } } @@ -1587,18 +1587,18 @@ "typeString": "type(uint8)" } ], - "id": 1336, + "id": 1261, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6094:4:6", + "src": "6094:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1339, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -1607,55 +1607,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6094:11:6", + "src": "6094:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1340, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6106:3:6", + "memberLocation": "6106:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6094:15:6", + "src": "6094:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6078:31:6", + "src": "6078:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1359, + "id": 1284, "nodeType": "IfStatement", - "src": "6074:139:6", + "src": "6074:139:5", "trueBody": { - "id": 1358, + "id": 1283, "nodeType": "Block", - "src": "6111:102:6", + "src": "6111:102:5", "statements": [ { "expression": { - "id": 1348, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1342, + "id": 1267, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6125:12:6", + "referencedDeclaration": 1143, + "src": "6125:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1667,22 +1667,22 @@ "expression": { "arguments": [ { - "id": 1345, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6145:5:6", + "src": "6145:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1344, + "id": 1269, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6145:5:6", + "src": "6145:5:5", "typeDescriptions": {} } } @@ -1694,18 +1694,18 @@ "typeString": "type(uint8)" } ], - "id": 1343, + "id": 1268, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6140:4:6", + "src": "6140:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1346, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, @@ -1714,36 +1714,36 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6140:11:6", + "src": "6140:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1347, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6152:3:6", + "memberLocation": "6152:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6140:15:6", + "src": "6140:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6125:30:6", + "src": "6125:30:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1349, + "id": 1274, "nodeType": "ExpressionStatement", - "src": "6125:30:6" + "src": "6125:30:5" }, { "eventCall": { @@ -1752,22 +1752,22 @@ "expression": { "arguments": [ { - "id": 1353, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6191:5:6", + "src": "6191:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1352, + "id": 1277, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6191:5:6", + "src": "6191:5:5", "typeDescriptions": {} } } @@ -1779,18 +1779,18 @@ "typeString": "type(uint8)" } ], - "id": 1351, + "id": 1276, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6186:4:6", + "src": "6186:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1354, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": true, @@ -1799,22 +1799,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6186:11:6", + "src": "6186:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1355, + "id": 1280, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6198:3:6", + "memberLocation": "6198:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6186:15:6", + "src": "6186:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1828,18 +1828,18 @@ "typeString": "uint8" } ], - "id": 1350, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "6174:11:6", + "referencedDeclaration": 1151, + "src": "6174:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1356, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -1848,16 +1848,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6174:28:6", + "src": "6174:28:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1357, + "id": 1282, "nodeType": "EmitStatement", - "src": "6169:33:6" + "src": "6169:33:5" } ] } @@ -1865,94 +1865,94 @@ ] }, "documentation": { - "id": 1326, + "id": 1251, "nodeType": "StructuredDocumentation", - "src": "5459:475:6", + "src": "5459:475:5", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1361, + "id": 1286, "implemented": true, "kind": "function", "modifiers": [], "name": "_disableInitializers", - "nameLocation": "5948:20:6", + "nameLocation": "5948:20:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1327, + "id": 1252, "nodeType": "ParameterList", "parameters": [], - "src": "5968:2:6" + "src": "5968:2:5" }, "returnParameters": { - "id": 1328, + "id": 1253, "nodeType": "ParameterList", "parameters": [], - "src": "5988:0:6" + "src": "5988:0:5" }, - "scope": 1380, - "src": "5939:280:6", + "scope": 1305, + "src": "5939:280:5", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1369, + "id": 1294, "nodeType": "Block", - "src": "6393:36:6", + "src": "6393:36:5", "statements": [ { "expression": { - "id": 1367, + "id": 1292, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6410:12:6", + "referencedDeclaration": 1143, + "src": "6410:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1366, - "id": 1368, + "functionReturnParameters": 1291, + "id": 1293, "nodeType": "Return", - "src": "6403:19:6" + "src": "6403:19:5" } ] }, "documentation": { - "id": 1362, + "id": 1287, "nodeType": "StructuredDocumentation", - "src": "6225:99:6", + "src": "6225:99:5", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1370, + "id": 1295, "implemented": true, "kind": "function", "modifiers": [], "name": "_getInitializedVersion", - "nameLocation": "6338:22:6", + "nameLocation": "6338:22:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1363, + "id": 1288, "nodeType": "ParameterList", "parameters": [], - "src": "6360:2:6" + "src": "6360:2:5" }, "returnParameters": { - "id": 1366, + "id": 1291, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1365, + "id": 1290, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1370, - "src": "6386:5:6", + "scope": 1295, + "src": "6386:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1960,10 +1960,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1364, + "id": 1289, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6386:5:6", + "src": "6386:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1972,72 +1972,72 @@ "visibility": "internal" } ], - "src": "6385:7:6" + "src": "6385:7:5" }, - "scope": 1380, - "src": "6329:100:6", + "scope": 1305, + "src": "6329:100:5", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1378, + "id": 1303, "nodeType": "Block", - "src": "6601:37:6", + "src": "6601:37:5", "statements": [ { "expression": { - "id": 1376, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6618:13:6", + "referencedDeclaration": 1146, + "src": "6618:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1375, - "id": 1377, + "functionReturnParameters": 1300, + "id": 1302, "nodeType": "Return", - "src": "6611:20:6" + "src": "6611:20:5" } ] }, "documentation": { - "id": 1371, + "id": 1296, "nodeType": "StructuredDocumentation", - "src": "6435:105:6", + "src": "6435:105:5", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1379, + "id": 1304, "implemented": true, "kind": "function", "modifiers": [], "name": "_isInitializing", - "nameLocation": "6554:15:6", + "nameLocation": "6554:15:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1372, + "id": 1297, "nodeType": "ParameterList", "parameters": [], - "src": "6569:2:6" + "src": "6569:2:5" }, "returnParameters": { - "id": 1375, + "id": 1300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1374, + "id": 1299, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1379, - "src": "6595:4:6", + "scope": 1304, + "src": "6595:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2045,10 +2045,10 @@ "typeString": "bool" }, "typeName": { - "id": 1373, + "id": 1298, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6595:4:6", + "src": "6595:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2057,38 +2057,38 @@ "visibility": "internal" } ], - "src": "6594:6:6" + "src": "6594:6:5" }, - "scope": 1380, - "src": "6545:93:6", + "scope": 1305, + "src": "6545:93:5", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1381, - "src": "2394:4246:6", + "scope": 1306, + "src": "2394:4246:5", "usedErrors": [] } ], - "src": "113:6528:6" + "src": "113:6528:5" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { "AddressUpgradeable": [ - 1838 + 1763 ], "Initializable": [ - 1380 + 1305 ] }, - "id": 1381, + "id": 1306, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1213, + "id": 1138, "literals": [ "solidity", "^", @@ -2096,17 +2096,17 @@ ".2" ], "nodeType": "PragmaDirective", - "src": "113:23:6" + "src": "113:23:5" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", - "id": 1214, + "id": 1139, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1381, - "sourceUnit": 1839, - "src": "138:44:6", + "scope": 1306, + "sourceUnit": 1764, + "src": "138:44:5", "symbolAliases": [], "unitAlias": "" }, @@ -2117,35 +2117,35 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1215, + "id": 1140, "nodeType": "StructuredDocumentation", - "src": "184:2209:6", + "src": "184:2209:5", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" }, "fullyImplemented": true, - "id": 1380, + "id": 1305, "linearizedBaseContracts": [ - 1380 + 1305 ], "name": "Initializable", - "nameLocation": "2412:13:6", + "nameLocation": "2412:13:5", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "documentation": { - "id": 1216, + "id": 1141, "nodeType": "StructuredDocumentation", - "src": "2432:109:6", + "src": "2432:109:5", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" }, - "id": 1218, + "id": 1143, "mutability": "mutable", "name": "_initialized", - "nameLocation": "2560:12:6", + "nameLocation": "2560:12:5", "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "2546:26:6", + "scope": 1305, + "src": "2546:26:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2153,10 +2153,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1217, + "id": 1142, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2546:5:6", + "src": "2546:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2167,18 +2167,18 @@ { "constant": false, "documentation": { - "id": 1219, + "id": 1144, "nodeType": "StructuredDocumentation", - "src": "2579:91:6", + "src": "2579:91:5", "text": " @dev Indicates that the contract is in the process of being initialized." }, - "id": 1221, + "id": 1146, "mutability": "mutable", "name": "_initializing", - "nameLocation": "2688:13:6", + "nameLocation": "2688:13:5", "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "2675:26:6", + "scope": 1305, + "src": "2675:26:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2186,10 +2186,10 @@ "typeString": "bool" }, "typeName": { - "id": 1220, + "id": 1145, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2675:4:6", + "src": "2675:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2200,30 +2200,30 @@ { "anonymous": false, "documentation": { - "id": 1222, + "id": 1147, "nodeType": "StructuredDocumentation", - "src": "2708:90:6", + "src": "2708:90:5", "text": " @dev Triggered when the contract has been initialized or reinitialized." }, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", - "id": 1226, + "id": 1151, "name": "Initialized", - "nameLocation": "2809:11:6", + "nameLocation": "2809:11:5", "nodeType": "EventDefinition", "parameters": { - "id": 1225, + "id": 1150, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1224, + "id": 1149, "indexed": false, "mutability": "mutable", "name": "version", - "nameLocation": "2827:7:6", + "nameLocation": "2827:7:5", "nodeType": "VariableDeclaration", - "scope": 1226, - "src": "2821:13:6", + "scope": 1151, + "src": "2821:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2231,10 +2231,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1223, + "id": 1148, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2821:5:6", + "src": "2821:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2243,30 +2243,30 @@ "visibility": "internal" } ], - "src": "2820:15:6" + "src": "2820:15:5" }, - "src": "2803:33:6" + "src": "2803:33:5" }, { "body": { - "id": 1281, + "id": 1206, "nodeType": "Block", - "src": "3269:483:6", + "src": "3269:483:5", "statements": [ { "assignments": [ - 1230 + 1155 ], "declarations": [ { "constant": false, - "id": 1230, + "id": 1155, "mutability": "mutable", "name": "isTopLevelCall", - "nameLocation": "3284:14:6", + "nameLocation": "3284:14:5", "nodeType": "VariableDeclaration", - "scope": 1281, - "src": "3279:19:6", + "scope": 1206, + "src": "3279:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2274,10 +2274,10 @@ "typeString": "bool" }, "typeName": { - "id": 1229, + "id": 1154, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3279:4:6", + "src": "3279:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2286,9 +2286,9 @@ "visibility": "internal" } ], - "id": 1233, + "id": 1158, "initialValue": { - "id": 1232, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, @@ -2296,14 +2296,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3301:14:6", + "src": "3301:14:5", "subExpression": { - "id": 1231, + "id": 1156, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3302:13:6", + "referencedDeclaration": 1146, + "src": "3302:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2315,7 +2315,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3279:36:6" + "src": "3279:36:5" }, { "expression": { @@ -2325,7 +2325,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1254, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -2337,18 +2337,18 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1239, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1235, + "id": 1160, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3347:14:6", + "referencedDeclaration": 1155, + "src": "3347:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2361,18 +2361,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1238, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1236, + "id": 1161, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3365:12:6", + "referencedDeclaration": 1143, + "src": "3365:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2382,41 +2382,41 @@ "operator": "<", "rightExpression": { "hexValue": "31", - "id": 1237, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3380:1:6", + "src": "3380:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3365:16:6", + "src": "3365:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3347:34:6", + "src": "3347:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1240, + "id": 1165, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3346:36:6", + "src": "3346:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2431,13 +2431,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1252, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1248, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -2445,20 +2445,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3387:45:6", + "src": "3387:45:5", "subExpression": { "arguments": [ { "arguments": [ { - "id": 1245, + "id": 1170, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3426:4:6", + "src": "3426:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$1380", + "typeIdentifier": "t_contract$_Initializable_$1305", "typeString": "contract Initializable" } } @@ -2466,30 +2466,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Initializable_$1380", + "typeIdentifier": "t_contract$_Initializable_$1305", "typeString": "contract Initializable" } ], - "id": 1244, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3418:7:6", + "src": "3418:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1243, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3418:7:6", + "src": "3418:7:5", "typeDescriptions": {} } }, - "id": 1246, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -2498,7 +2498,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3418:13:6", + "src": "3418:13:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2514,33 +2514,33 @@ } ], "expression": { - "id": 1241, + "id": 1166, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1838, - "src": "3388:18:6", + "referencedDeclaration": 1763, + "src": "3388:18:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1838_$", + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1763_$", "typeString": "type(library AddressUpgradeable)" } }, - "id": 1242, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3407:10:6", + "memberLocation": "3407:10:5", "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 1526, - "src": "3388:29:6", + "referencedDeclaration": 1451, + "src": "3388:29:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1247, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -2549,7 +2549,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3388:44:6", + "src": "3388:44:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2568,18 +2568,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1251, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1249, + "id": 1174, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3436:12:6", + "referencedDeclaration": 1143, + "src": "3436:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2589,47 +2589,47 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 1250, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:1:6", + "src": "3452:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3436:17:6", + "src": "3436:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3387:66:6", + "src": "3387:66:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1253, + "id": 1178, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3386:68:6", + "src": "3386:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3346:108:6", + "src": "3346:108:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2637,14 +2637,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1255, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3468:48:6", + "src": "3468:48:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" @@ -2663,7 +2663,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1234, + "id": 1159, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2671,13 +2671,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3325:7:6", + "src": "3325:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1256, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -2686,31 +2686,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3325:201:6", + "src": "3325:201:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1257, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "3325:201:6" + "src": "3325:201:5" }, { "expression": { - "id": 1260, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1258, + "id": 1183, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3536:12:6", + "referencedDeclaration": 1143, + "src": "3536:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2720,65 +2720,65 @@ "operator": "=", "rightHandSide": { "hexValue": "31", - "id": 1259, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3551:1:6", + "src": "3551:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3536:16:6", + "src": "3536:16:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1261, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "3536:16:6" + "src": "3536:16:5" }, { "condition": { - "id": 1262, + "id": 1187, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3566:14:6", + "referencedDeclaration": 1155, + "src": "3566:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1268, + "id": 1193, "nodeType": "IfStatement", - "src": "3562:65:6", + "src": "3562:65:5", "trueBody": { - "id": 1267, + "id": 1192, "nodeType": "Block", - "src": "3582:45:6", + "src": "3582:45:5", "statements": [ { "expression": { - "id": 1265, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1263, + "id": 1188, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3596:13:6", + "referencedDeclaration": 1146, + "src": "3596:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2788,73 +2788,73 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1264, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3612:4:6", + "src": "3612:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3596:20:6", + "src": "3596:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1266, + "id": 1191, "nodeType": "ExpressionStatement", - "src": "3596:20:6" + "src": "3596:20:5" } ] } }, { - "id": 1269, + "id": 1194, "nodeType": "PlaceholderStatement", - "src": "3636:1:6" + "src": "3636:1:5" }, { "condition": { - "id": 1270, + "id": 1195, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "3651:14:6", + "referencedDeclaration": 1155, + "src": "3651:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1280, + "id": 1205, "nodeType": "IfStatement", - "src": "3647:99:6", + "src": "3647:99:5", "trueBody": { - "id": 1279, + "id": 1204, "nodeType": "Block", - "src": "3667:79:6", + "src": "3667:79:5", "statements": [ { "expression": { - "id": 1273, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1271, + "id": 1196, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "3681:13:6", + "referencedDeclaration": 1146, + "src": "3681:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2864,43 +2864,43 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1272, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3697:5:6", + "src": "3697:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "3681:21:6", + "src": "3681:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1274, + "id": 1199, "nodeType": "ExpressionStatement", - "src": "3681:21:6" + "src": "3681:21:5" }, { "eventCall": { "arguments": [ { "hexValue": "31", - "id": 1276, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3733:1:6", + "src": "3733:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -2915,18 +2915,18 @@ "typeString": "int_const 1" } ], - "id": 1275, + "id": 1200, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "3721:11:6", + "referencedDeclaration": 1151, + "src": "3721:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1277, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -2935,16 +2935,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3721:14:6", + "src": "3721:14:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1278, + "id": 1203, "nodeType": "EmitStatement", - "src": "3716:19:6" + "src": "3716:19:5" } ] } @@ -2952,30 +2952,30 @@ ] }, "documentation": { - "id": 1227, + "id": 1152, "nodeType": "StructuredDocumentation", - "src": "2842:399:6", + "src": "2842:399:5", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." }, - "id": 1282, + "id": 1207, "name": "initializer", - "nameLocation": "3255:11:6", + "nameLocation": "3255:11:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1228, + "id": 1153, "nodeType": "ParameterList", "parameters": [], - "src": "3266:2:6" + "src": "3266:2:5" }, - "src": "3246:506:6", + "src": "3246:506:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1314, + "id": 1239, "nodeType": "Block", - "src": "4863:255:6", + "src": "4863:255:5", "statements": [ { "expression": { @@ -2985,13 +2985,13 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1293, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1289, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": false, @@ -2999,14 +2999,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4881:14:6", + "src": "4881:14:5", "subExpression": { - "id": 1288, + "id": 1213, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "4882:13:6", + "referencedDeclaration": 1146, + "src": "4882:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3024,18 +3024,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1292, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1290, + "id": 1215, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "4899:12:6", + "referencedDeclaration": 1143, + "src": "4899:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3044,24 +3044,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1291, + "id": 1216, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "4914:7:6", + "referencedDeclaration": 1210, + "src": "4914:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4899:22:6", + "src": "4899:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4881:40:6", + "src": "4881:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3069,14 +3069,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 1294, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4923:48:6", + "src": "4923:48:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" @@ -3095,7 +3095,7 @@ "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], - "id": 1287, + "id": 1212, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3103,13 +3103,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4873:7:6", + "src": "4873:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1295, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, @@ -3118,31 +3118,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4873:99:6", + "src": "4873:99:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1296, + "id": 1221, "nodeType": "ExpressionStatement", - "src": "4873:99:6" + "src": "4873:99:5" }, { "expression": { - "id": 1299, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1297, + "id": 1222, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "4982:12:6", + "referencedDeclaration": 1143, + "src": "4982:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3151,41 +3151,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1298, + "id": 1223, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "4997:7:6", + "referencedDeclaration": 1210, + "src": "4997:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4982:22:6", + "src": "4982:22:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1300, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "4982:22:6" + "src": "4982:22:5" }, { "expression": { - "id": 1303, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1301, + "id": 1226, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5014:13:6", + "referencedDeclaration": 1146, + "src": "5014:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3195,49 +3195,49 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1302, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5030:4:6", + "src": "5030:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5014:20:6", + "src": "5014:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1304, + "id": 1229, "nodeType": "ExpressionStatement", - "src": "5014:20:6" + "src": "5014:20:5" }, { - "id": 1305, + "id": 1230, "nodeType": "PlaceholderStatement", - "src": "5044:1:6" + "src": "5044:1:5" }, { "expression": { - "id": 1308, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1306, + "id": 1231, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5055:13:6", + "referencedDeclaration": 1146, + "src": "5055:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3247,40 +3247,40 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1307, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5071:5:6", + "src": "5071:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "5055:21:6", + "src": "5055:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1309, + "id": 1234, "nodeType": "ExpressionStatement", - "src": "5055:21:6" + "src": "5055:21:5" }, { "eventCall": { "arguments": [ { - "id": 1311, + "id": 1236, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, - "src": "5103:7:6", + "referencedDeclaration": 1210, + "src": "5103:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3294,18 +3294,18 @@ "typeString": "uint8" } ], - "id": 1310, + "id": 1235, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "5091:11:6", + "referencedDeclaration": 1151, + "src": "5091:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1312, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, @@ -3314,42 +3314,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5091:20:6", + "src": "5091:20:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1313, + "id": 1238, "nodeType": "EmitStatement", - "src": "5086:25:6" + "src": "5086:25:5" } ] }, "documentation": { - "id": 1283, + "id": 1208, "nodeType": "StructuredDocumentation", - "src": "3758:1062:6", + "src": "3758:1062:5", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." }, - "id": 1315, + "id": 1240, "name": "reinitializer", - "nameLocation": "4834:13:6", + "nameLocation": "4834:13:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1286, + "id": 1211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1210, "mutability": "mutable", "name": "version", - "nameLocation": "4854:7:6", + "nameLocation": "4854:7:5", "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "4848:13:6", + "scope": 1240, + "src": "4848:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3357,10 +3357,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1284, + "id": 1209, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4848:5:6", + "src": "4848:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3369,28 +3369,28 @@ "visibility": "internal" } ], - "src": "4847:15:6" + "src": "4847:15:5" }, - "src": "4825:293:6", + "src": "4825:293:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1324, + "id": 1249, "nodeType": "Block", - "src": "5356:97:6", + "src": "5356:97:5", "statements": [ { "expression": { "arguments": [ { - "id": 1319, + "id": 1244, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5374:13:6", + "referencedDeclaration": 1146, + "src": "5374:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3398,14 +3398,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", - "id": 1320, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5389:45:6", + "src": "5389:45:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\"" @@ -3424,7 +3424,7 @@ "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], - "id": 1318, + "id": 1243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3432,13 +3432,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5366:7:6", + "src": "5366:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1321, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -3447,55 +3447,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5366:69:6", + "src": "5366:69:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1322, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "5366:69:6" + "src": "5366:69:5" }, { - "id": 1323, + "id": 1248, "nodeType": "PlaceholderStatement", - "src": "5445:1:6" + "src": "5445:1:5" } ] }, "documentation": { - "id": 1316, + "id": 1241, "nodeType": "StructuredDocumentation", - "src": "5124:199:6", + "src": "5124:199:5", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." }, - "id": 1325, + "id": 1250, "name": "onlyInitializing", - "nameLocation": "5337:16:6", + "nameLocation": "5337:16:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1317, + "id": 1242, "nodeType": "ParameterList", "parameters": [], - "src": "5353:2:6" + "src": "5353:2:5" }, - "src": "5328:125:6", + "src": "5328:125:5", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1360, + "id": 1285, "nodeType": "Block", - "src": "5988:231:6", + "src": "5988:231:5", "statements": [ { "expression": { "arguments": [ { - "id": 1331, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -3503,14 +3503,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6006:14:6", + "src": "6006:14:5", "subExpression": { - "id": 1330, + "id": 1255, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6007:13:6", + "referencedDeclaration": 1146, + "src": "6007:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3523,14 +3523,14 @@ }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", - "id": 1332, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6022:41:6", + "src": "6022:41:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", "typeString": "literal_string \"Initializable: contract is initializing\"" @@ -3549,7 +3549,7 @@ "typeString": "literal_string \"Initializable: contract is initializing\"" } ], - "id": 1329, + "id": 1254, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3557,13 +3557,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5998:7:6", + "src": "5998:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1333, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -3572,16 +3572,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5998:66:6", + "src": "5998:66:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1334, + "id": 1259, "nodeType": "ExpressionStatement", - "src": "5998:66:6" + "src": "5998:66:5" }, { "condition": { @@ -3589,18 +3589,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1341, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1335, + "id": 1260, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6078:12:6", + "referencedDeclaration": 1143, + "src": "6078:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3612,22 +3612,22 @@ "expression": { "arguments": [ { - "id": 1338, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6099:5:6", + "src": "6099:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1337, + "id": 1262, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6099:5:6", + "src": "6099:5:5", "typeDescriptions": {} } } @@ -3639,18 +3639,18 @@ "typeString": "type(uint8)" } ], - "id": 1336, + "id": 1261, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6094:4:6", + "src": "6094:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1339, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -3659,55 +3659,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6094:11:6", + "src": "6094:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1340, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6106:3:6", + "memberLocation": "6106:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6094:15:6", + "src": "6094:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6078:31:6", + "src": "6078:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1359, + "id": 1284, "nodeType": "IfStatement", - "src": "6074:139:6", + "src": "6074:139:5", "trueBody": { - "id": 1358, + "id": 1283, "nodeType": "Block", - "src": "6111:102:6", + "src": "6111:102:5", "statements": [ { "expression": { - "id": 1348, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1342, + "id": 1267, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6125:12:6", + "referencedDeclaration": 1143, + "src": "6125:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3719,22 +3719,22 @@ "expression": { "arguments": [ { - "id": 1345, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6145:5:6", + "src": "6145:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1344, + "id": 1269, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6145:5:6", + "src": "6145:5:5", "typeDescriptions": {} } } @@ -3746,18 +3746,18 @@ "typeString": "type(uint8)" } ], - "id": 1343, + "id": 1268, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6140:4:6", + "src": "6140:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1346, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, @@ -3766,36 +3766,36 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6140:11:6", + "src": "6140:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1347, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6152:3:6", + "memberLocation": "6152:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6140:15:6", + "src": "6140:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6125:30:6", + "src": "6125:30:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1349, + "id": 1274, "nodeType": "ExpressionStatement", - "src": "6125:30:6" + "src": "6125:30:5" }, { "eventCall": { @@ -3804,22 +3804,22 @@ "expression": { "arguments": [ { - "id": 1353, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6191:5:6", + "src": "6191:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1352, + "id": 1277, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6191:5:6", + "src": "6191:5:5", "typeDescriptions": {} } } @@ -3831,18 +3831,18 @@ "typeString": "type(uint8)" } ], - "id": 1351, + "id": 1276, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, - "src": "6186:4:6", + "src": "6186:4:5", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1354, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": true, @@ -3851,22 +3851,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6186:11:6", + "src": "6186:11:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)" } }, - "id": 1355, + "id": 1280, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6198:3:6", + "memberLocation": "6198:3:5", "memberName": "max", "nodeType": "MemberAccess", - "src": "6186:15:6", + "src": "6186:15:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3880,18 +3880,18 @@ "typeString": "uint8" } ], - "id": 1350, + "id": 1275, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, - "src": "6174:11:6", + "referencedDeclaration": 1151, + "src": "6174:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1356, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -3900,16 +3900,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6174:28:6", + "src": "6174:28:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1357, + "id": 1282, "nodeType": "EmitStatement", - "src": "6169:33:6" + "src": "6169:33:5" } ] } @@ -3917,94 +3917,94 @@ ] }, "documentation": { - "id": 1326, + "id": 1251, "nodeType": "StructuredDocumentation", - "src": "5459:475:6", + "src": "5459:475:5", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." }, - "id": 1361, + "id": 1286, "implemented": true, "kind": "function", "modifiers": [], "name": "_disableInitializers", - "nameLocation": "5948:20:6", + "nameLocation": "5948:20:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1327, + "id": 1252, "nodeType": "ParameterList", "parameters": [], - "src": "5968:2:6" + "src": "5968:2:5" }, "returnParameters": { - "id": 1328, + "id": 1253, "nodeType": "ParameterList", "parameters": [], - "src": "5988:0:6" + "src": "5988:0:5" }, - "scope": 1380, - "src": "5939:280:6", + "scope": 1305, + "src": "5939:280:5", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1369, + "id": 1294, "nodeType": "Block", - "src": "6393:36:6", + "src": "6393:36:5", "statements": [ { "expression": { - "id": 1367, + "id": 1292, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "6410:12:6", + "referencedDeclaration": 1143, + "src": "6410:12:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1366, - "id": 1368, + "functionReturnParameters": 1291, + "id": 1293, "nodeType": "Return", - "src": "6403:19:6" + "src": "6403:19:5" } ] }, "documentation": { - "id": 1362, + "id": 1287, "nodeType": "StructuredDocumentation", - "src": "6225:99:6", + "src": "6225:99:5", "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." }, - "id": 1370, + "id": 1295, "implemented": true, "kind": "function", "modifiers": [], "name": "_getInitializedVersion", - "nameLocation": "6338:22:6", + "nameLocation": "6338:22:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1363, + "id": 1288, "nodeType": "ParameterList", "parameters": [], - "src": "6360:2:6" + "src": "6360:2:5" }, "returnParameters": { - "id": 1366, + "id": 1291, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1365, + "id": 1290, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1370, - "src": "6386:5:6", + "scope": 1295, + "src": "6386:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4012,10 +4012,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1364, + "id": 1289, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6386:5:6", + "src": "6386:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4024,72 +4024,72 @@ "visibility": "internal" } ], - "src": "6385:7:6" + "src": "6385:7:5" }, - "scope": 1380, - "src": "6329:100:6", + "scope": 1305, + "src": "6329:100:5", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1378, + "id": 1303, "nodeType": "Block", - "src": "6601:37:6", + "src": "6601:37:5", "statements": [ { "expression": { - "id": 1376, + "id": 1301, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6618:13:6", + "referencedDeclaration": 1146, + "src": "6618:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1375, - "id": 1377, + "functionReturnParameters": 1300, + "id": 1302, "nodeType": "Return", - "src": "6611:20:6" + "src": "6611:20:5" } ] }, "documentation": { - "id": 1371, + "id": 1296, "nodeType": "StructuredDocumentation", - "src": "6435:105:6", + "src": "6435:105:5", "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." }, - "id": 1379, + "id": 1304, "implemented": true, "kind": "function", "modifiers": [], "name": "_isInitializing", - "nameLocation": "6554:15:6", + "nameLocation": "6554:15:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1372, + "id": 1297, "nodeType": "ParameterList", "parameters": [], - "src": "6569:2:6" + "src": "6569:2:5" }, "returnParameters": { - "id": 1375, + "id": 1300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1374, + "id": 1299, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1379, - "src": "6595:4:6", + "scope": 1304, + "src": "6595:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4097,10 +4097,10 @@ "typeString": "bool" }, "typeName": { - "id": 1373, + "id": 1298, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6595:4:6", + "src": "6595:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4109,21 +4109,21 @@ "visibility": "internal" } ], - "src": "6594:6:6" + "src": "6594:6:5" }, - "scope": 1380, - "src": "6545:93:6", + "scope": 1305, + "src": "6545:93:5", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 1381, - "src": "2394:4246:6", + "scope": 1306, + "src": "2394:4246:5", "usedErrors": [] } ], - "src": "113:6528:6" + "src": "113:6528:5" }, "compiler": { "name": "solc", @@ -4131,5 +4131,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.256Z" + "updatedAt": "2024-07-04T18:51:17.142Z" } \ No newline at end of file diff --git a/build/contracts/Ownable2StepUpgradeable.json b/build/contracts/Ownable2StepUpgradeable.json index 54737b5..b858f6a 100644 --- a/build/contracts/Ownable2StepUpgradeable.json +++ b/build/contracts/Ownable2StepUpgradeable.json @@ -116,24 +116,24 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "Ownable2StepUpgradeable": [ - 1078 + 1003 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 1079, + "id": 1004, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 973, + "id": 898, "literals": [ "solidity", "^", @@ -141,38 +141,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "107:23:4" + "src": "107:23:3" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 974, + "id": 899, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1079, - "sourceUnit": 1212, - "src": "132:34:4", + "scope": 1004, + "sourceUnit": 1137, + "src": "132:34:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 976, + "id": 901, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1079, - "sourceUnit": 1381, - "src": "167:63:4", + "scope": 1004, + "sourceUnit": 1306, + "src": "167:63:3", "symbolAliases": [ { "foreign": { - "id": 975, + "id": 900, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "175:13:4", + "referencedDeclaration": 1305, + "src": "175:13:3", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -185,65 +185,65 @@ "baseContracts": [ { "baseName": { - "id": 978, + "id": 903, "name": "Initializable", "nameLocations": [ - "719:13:4" + "719:13:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "719:13:4" + "referencedDeclaration": 1305, + "src": "719:13:3" }, - "id": 979, + "id": 904, "nodeType": "InheritanceSpecifier", - "src": "719:13:4" + "src": "719:13:3" }, { "baseName": { - "id": 980, + "id": 905, "name": "OwnableUpgradeable", "nameLocations": [ - "734:18:4" + "734:18:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1211, - "src": "734:18:4" + "referencedDeclaration": 1136, + "src": "734:18:3" }, - "id": 981, + "id": 906, "nodeType": "InheritanceSpecifier", - "src": "734:18:4" + "src": "734:18:3" } ], "canonicalName": "Ownable2StepUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 977, + "id": 902, "nodeType": "StructuredDocumentation", - "src": "232:441:4", + "src": "232:441:3", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1078, + "id": 1003, "linearizedBaseContracts": [ - 1078, - 1211, - 1889, - 1380 + 1003, + 1136, + 1814, + 1305 ], "name": "Ownable2StepUpgradeable", - "nameLocation": "692:23:4", + "nameLocation": "692:23:3", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 983, + "id": 908, "mutability": "mutable", "name": "_pendingOwner", - "nameLocation": "775:13:4", + "nameLocation": "775:13:3", "nodeType": "VariableDeclaration", - "scope": 1078, - "src": "759:29:4", + "scope": 1003, + "src": "759:29:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -251,10 +251,10 @@ "typeString": "address" }, "typeName": { - "id": 982, + "id": 907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "759:7:4", + "src": "759:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -266,24 +266,24 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 989, + "id": 914, "name": "OwnershipTransferStarted", - "nameLocation": "801:24:4", + "nameLocation": "801:24:3", "nodeType": "EventDefinition", "parameters": { - "id": 988, + "id": 913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 985, + "id": 910, "indexed": true, "mutability": "mutable", "name": "previousOwner", - "nameLocation": "842:13:4", + "nameLocation": "842:13:3", "nodeType": "VariableDeclaration", - "scope": 989, - "src": "826:29:4", + "scope": 914, + "src": "826:29:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +291,10 @@ "typeString": "address" }, "typeName": { - "id": 984, + "id": 909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "826:7:4", + "src": "826:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -305,14 +305,14 @@ }, { "constant": false, - "id": 987, + "id": 912, "indexed": true, "mutability": "mutable", "name": "newOwner", - "nameLocation": "873:8:4", + "nameLocation": "873:8:3", "nodeType": "VariableDeclaration", - "scope": 989, - "src": "857:24:4", + "scope": 914, + "src": "857:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -320,10 +320,10 @@ "typeString": "address" }, "typeName": { - "id": 986, + "id": 911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "857:7:4", + "src": "857:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -333,33 +333,33 @@ "visibility": "internal" } ], - "src": "825:57:4" + "src": "825:57:3" }, - "src": "795:88:4" + "src": "795:88:3" }, { "body": { - "id": 997, + "id": 922, "nodeType": "Block", - "src": "946:43:4", + "src": "946:43:3", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 994, + "id": 919, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "956:24:4", + "referencedDeclaration": 1042, + "src": "956:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 995, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -368,169 +368,169 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "956:26:4", + "src": "956:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 921, "nodeType": "ExpressionStatement", - "src": "956:26:4" + "src": "956:26:3" } ] }, - "id": 998, + "id": 923, "implemented": true, "kind": "function", "modifiers": [ { - "id": 992, + "id": 917, "kind": "modifierInvocation", "modifierName": { - "id": 991, + "id": 916, "name": "onlyInitializing", "nameLocations": [ - "929:16:4" + "929:16:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "929:16:4" + "referencedDeclaration": 1250, + "src": "929:16:3" }, "nodeType": "ModifierInvocation", - "src": "929:16:4" + "src": "929:16:3" } ], "name": "__Ownable2Step_init", - "nameLocation": "898:19:4", + "nameLocation": "898:19:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 990, + "id": 915, "nodeType": "ParameterList", "parameters": [], - "src": "917:2:4" + "src": "917:2:3" }, "returnParameters": { - "id": 993, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "946:0:4" + "src": "946:0:3" }, - "scope": 1078, - "src": "889:100:4", + "scope": 1003, + "src": "889:100:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1003, + "id": 928, "nodeType": "Block", - "src": "1062:7:4", + "src": "1062:7:3", "statements": [] }, - "id": 1004, + "id": 929, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1001, + "id": 926, "kind": "modifierInvocation", "modifierName": { - "id": 1000, + "id": 925, "name": "onlyInitializing", "nameLocations": [ - "1045:16:4" + "1045:16:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1045:16:4" + "referencedDeclaration": 1250, + "src": "1045:16:3" }, "nodeType": "ModifierInvocation", - "src": "1045:16:4" + "src": "1045:16:3" } ], "name": "__Ownable2Step_init_unchained", - "nameLocation": "1004:29:4", + "nameLocation": "1004:29:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 999, + "id": 924, "nodeType": "ParameterList", "parameters": [], - "src": "1033:2:4" + "src": "1033:2:3" }, "returnParameters": { - "id": 1002, + "id": 927, "nodeType": "ParameterList", "parameters": [], - "src": "1062:0:4" + "src": "1062:0:3" }, - "scope": 1078, - "src": "995:74:4", + "scope": 1003, + "src": "995:74:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1012, + "id": 937, "nodeType": "Block", - "src": "1206:37:4", + "src": "1206:37:3", "statements": [ { "expression": { - "id": 1010, + "id": 935, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1223:13:4", + "referencedDeclaration": 908, + "src": "1223:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1009, - "id": 1011, + "functionReturnParameters": 934, + "id": 936, "nodeType": "Return", - "src": "1216:20:4" + "src": "1216:20:3" } ] }, "documentation": { - "id": 1005, + "id": 930, "nodeType": "StructuredDocumentation", - "src": "1074:65:4", + "src": "1074:65:3", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1013, + "id": 938, "implemented": true, "kind": "function", "modifiers": [], "name": "pendingOwner", - "nameLocation": "1153:12:4", + "nameLocation": "1153:12:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 1006, + "id": 931, "nodeType": "ParameterList", "parameters": [], - "src": "1165:2:4" + "src": "1165:2:3" }, "returnParameters": { - "id": 1009, + "id": 934, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1008, + "id": 933, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1013, - "src": "1197:7:4", + "scope": 938, + "src": "1197:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -538,10 +538,10 @@ "typeString": "address" }, "typeName": { - "id": 1007, + "id": 932, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1197:7:4", + "src": "1197:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -551,37 +551,37 @@ "visibility": "internal" } ], - "src": "1196:9:4" + "src": "1196:9:3" }, - "scope": 1078, - "src": "1144:99:4", + "scope": 1003, + "src": "1144:99:3", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ - 1185 + 1110 ], "body": { - "id": 1032, + "id": 957, "nodeType": "Block", - "src": "1515:99:4", + "src": "1515:99:3", "statements": [ { "expression": { - "id": 1024, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1022, + "id": 947, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1525:13:4", + "referencedDeclaration": 908, + "src": "1525:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -590,26 +590,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1023, + "id": 948, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1541:8:4", + "referencedDeclaration": 941, + "src": "1541:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1525:24:4", + "src": "1525:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1025, + "id": 950, "nodeType": "ExpressionStatement", - "src": "1525:24:4" + "src": "1525:24:3" }, { "eventCall": { @@ -618,18 +618,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1027, + "id": 952, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "1589:5:4", + "referencedDeclaration": 1059, + "src": "1589:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1028, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -638,7 +638,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1589:7:4", + "src": "1589:7:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -646,12 +646,12 @@ } }, { - "id": 1029, + "id": 954, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1598:8:4", + "referencedDeclaration": 941, + "src": "1598:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -669,18 +669,18 @@ "typeString": "address" } ], - "id": 1026, + "id": 951, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "1564:24:4", + "referencedDeclaration": 914, + "src": "1564:24:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1030, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -689,69 +689,69 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1564:43:4", + "src": "1564:43:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1031, + "id": 956, "nodeType": "EmitStatement", - "src": "1559:48:4" + "src": "1559:48:3" } ] }, "documentation": { - "id": 1014, + "id": 939, "nodeType": "StructuredDocumentation", - "src": "1249:182:4", + "src": "1249:182:3", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1033, + "id": 958, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1020, + "id": 945, "kind": "modifierInvocation", "modifierName": { - "id": 1019, + "id": 944, "name": "onlyOwner", "nameLocations": [ - "1505:9:4" + "1505:9:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "1505:9:4" + "referencedDeclaration": 1050, + "src": "1505:9:3" }, "nodeType": "ModifierInvocation", - "src": "1505:9:4" + "src": "1505:9:3" } ], "name": "transferOwnership", - "nameLocation": "1445:17:4", + "nameLocation": "1445:17:3", "nodeType": "FunctionDefinition", "overrides": { - "id": 1018, + "id": 943, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1496:8:4" + "src": "1496:8:3" }, "parameters": { - "id": 1017, + "id": 942, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 941, "mutability": "mutable", "name": "newOwner", - "nameLocation": "1471:8:4", + "nameLocation": "1471:8:3", "nodeType": "VariableDeclaration", - "scope": 1033, - "src": "1463:16:4", + "scope": 958, + "src": "1463:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -759,10 +759,10 @@ "typeString": "address" }, "typeName": { - "id": 1015, + "id": 940, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1463:7:4", + "src": "1463:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -772,32 +772,32 @@ "visibility": "internal" } ], - "src": "1462:18:4" + "src": "1462:18:3" }, "returnParameters": { - "id": 1021, + "id": 946, "nodeType": "ParameterList", "parameters": [], - "src": "1515:0:4" + "src": "1515:0:3" }, - "scope": 1078, - "src": "1436:178:4", + "scope": 1003, + "src": "1436:178:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "baseFunctions": [ - 1205 + 1130 ], "body": { - "id": 1049, + "id": 974, "nodeType": "Block", - "src": "1870:81:4", + "src": "1870:81:3", "statements": [ { "expression": { - "id": 1041, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, @@ -805,14 +805,14 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "1880:20:4", + "src": "1880:20:3", "subExpression": { - "id": 1040, + "id": 965, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1887:13:4", + "referencedDeclaration": 908, + "src": "1887:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -823,20 +823,20 @@ "typeString": "tuple()" } }, - "id": 1042, + "id": 967, "nodeType": "ExpressionStatement", - "src": "1880:20:4" + "src": "1880:20:3" }, { "expression": { "arguments": [ { - "id": 1046, + "id": 971, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1935:8:4", + "referencedDeclaration": 961, + "src": "1935:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -851,33 +851,33 @@ } ], "expression": { - "id": 1043, + "id": 968, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, - "src": "1910:5:4", + "src": "1910:5:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1003_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1045, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1916:18:4", + "memberLocation": "1916:18:3", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1205, - "src": "1910:24:4", + "referencedDeclaration": 1130, + "src": "1910:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1047, + "id": 972, "isConstant": false, "isLValue": false, "isPure": false, @@ -886,51 +886,51 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1910:34:4", + "src": "1910:34:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1048, + "id": 973, "nodeType": "ExpressionStatement", - "src": "1910:34:4" + "src": "1910:34:3" } ] }, "documentation": { - "id": 1034, + "id": 959, "nodeType": "StructuredDocumentation", - "src": "1620:173:4", + "src": "1620:173:3", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1050, + "id": 975, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", - "nameLocation": "1807:18:4", + "nameLocation": "1807:18:3", "nodeType": "FunctionDefinition", "overrides": { - "id": 1038, + "id": 963, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1861:8:4" + "src": "1861:8:3" }, "parameters": { - "id": 1037, + "id": 962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1036, + "id": 961, "mutability": "mutable", "name": "newOwner", - "nameLocation": "1834:8:4", + "nameLocation": "1834:8:3", "nodeType": "VariableDeclaration", - "scope": 1050, - "src": "1826:16:4", + "scope": 975, + "src": "1826:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -938,10 +938,10 @@ "typeString": "address" }, "typeName": { - "id": 1035, + "id": 960, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1826:7:4", + "src": "1826:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -951,40 +951,40 @@ "visibility": "internal" } ], - "src": "1825:18:4" + "src": "1825:18:3" }, "returnParameters": { - "id": 1039, + "id": 964, "nodeType": "ParameterList", "parameters": [], - "src": "1870:0:4" + "src": "1870:0:3" }, - "scope": 1078, - "src": "1798:153:4", + "scope": 1003, + "src": "1798:153:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1071, + "id": 996, "nodeType": "Block", - "src": "2073:170:4", + "src": "2073:170:3", "statements": [ { "assignments": [ - 1055 + 980 ], "declarations": [ { "constant": false, - "id": 1055, + "id": 980, "mutability": "mutable", "name": "sender", - "nameLocation": "2091:6:4", + "nameLocation": "2091:6:3", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "2083:14:4", + "scope": 996, + "src": "2083:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -992,10 +992,10 @@ "typeString": "address" }, "typeName": { - "id": 1054, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2083:7:4", + "src": "2083:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1005,23 +1005,23 @@ "visibility": "internal" } ], - "id": 1058, + "id": 983, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1056, + "id": 981, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2100:10:4", + "referencedDeclaration": 1791, + "src": "2100:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1057, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, @@ -1030,7 +1030,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2100:12:4", + "src": "2100:12:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1038,7 +1038,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2083:29:4" + "src": "2083:29:3" }, { "expression": { @@ -1048,7 +1048,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1063, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -1057,18 +1057,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1060, + "id": 985, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1013, - "src": "2130:12:4", + "referencedDeclaration": 938, + "src": "2130:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1061, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -1077,7 +1077,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2130:14:4", + "src": "2130:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1087,18 +1087,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1062, + "id": 987, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1055, - "src": "2148:6:4", + "referencedDeclaration": 980, + "src": "2148:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2130:24:4", + "src": "2130:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1106,14 +1106,14 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1064, + "id": 989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2156:43:4", + "src": "2156:43:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc", "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" @@ -1132,7 +1132,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1059, + "id": 984, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1140,13 +1140,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2122:7:4", + "src": "2122:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1065, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, @@ -1155,27 +1155,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2122:78:4", + "src": "2122:78:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1066, + "id": 991, "nodeType": "ExpressionStatement", - "src": "2122:78:4" + "src": "2122:78:3" }, { "expression": { "arguments": [ { - "id": 1068, + "id": 993, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1055, - "src": "2229:6:4", + "referencedDeclaration": 980, + "src": "2229:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,20 +1189,20 @@ "typeString": "address" } ], - "id": 1067, + "id": 992, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1050 + 975 ], - "referencedDeclaration": 1050, - "src": "2210:18:4", + "referencedDeclaration": 975, + "src": "2210:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1069, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -1211,47 +1211,47 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2210:26:4", + "src": "2210:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1070, + "id": 995, "nodeType": "ExpressionStatement", - "src": "2210:26:4" + "src": "2210:26:3" } ] }, "documentation": { - "id": 1051, + "id": 976, "nodeType": "StructuredDocumentation", - "src": "1957:69:4", + "src": "1957:69:3", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1072, + "id": 997, "implemented": true, "kind": "function", "modifiers": [], "name": "acceptOwnership", - "nameLocation": "2040:15:4", + "nameLocation": "2040:15:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 1052, + "id": 977, "nodeType": "ParameterList", "parameters": [], - "src": "2055:2:4" + "src": "2055:2:3" }, "returnParameters": { - "id": 1053, + "id": 978, "nodeType": "ParameterList", "parameters": [], - "src": "2073:0:4" + "src": "2073:0:3" }, - "scope": 1078, - "src": "2031:212:4", + "scope": 1003, + "src": "2031:212:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" @@ -1259,18 +1259,18 @@ { "constant": false, "documentation": { - "id": 1073, + "id": 998, "nodeType": "StructuredDocumentation", - "src": "2249:254:4", + "src": "2249:254:3", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1077, + "id": 1002, "mutability": "mutable", "name": "__gap", - "nameLocation": "2528:5:4", + "nameLocation": "2528:5:3", "nodeType": "VariableDeclaration", - "scope": 1078, - "src": "2508:25:4", + "scope": 1003, + "src": "2508:25:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1279,26 +1279,26 @@ }, "typeName": { "baseType": { - "id": 1074, + "id": 999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2508:7:4", + "src": "2508:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1076, + "id": 1001, "length": { "hexValue": "3439", - "id": 1075, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2516:2:4", + "src": "2516:2:3", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -1306,7 +1306,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "2508:11:4", + "src": "2508:11:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -1315,35 +1315,35 @@ "visibility": "private" } ], - "scope": 1079, - "src": "674:1862:4", + "scope": 1004, + "src": "674:1862:3", "usedErrors": [] } ], - "src": "107:2430:4" + "src": "107:2430:3" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "Ownable2StepUpgradeable": [ - 1078 + 1003 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 1079, + "id": 1004, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 973, + "id": 898, "literals": [ "solidity", "^", @@ -1351,38 +1351,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "107:23:4" + "src": "107:23:3" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "./OwnableUpgradeable.sol", - "id": 974, + "id": 899, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1079, - "sourceUnit": 1212, - "src": "132:34:4", + "scope": 1004, + "sourceUnit": 1137, + "src": "132:34:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 976, + "id": 901, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1079, - "sourceUnit": 1381, - "src": "167:63:4", + "scope": 1004, + "sourceUnit": 1306, + "src": "167:63:3", "symbolAliases": [ { "foreign": { - "id": 975, + "id": 900, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "175:13:4", + "referencedDeclaration": 1305, + "src": "175:13:3", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1395,65 +1395,65 @@ "baseContracts": [ { "baseName": { - "id": 978, + "id": 903, "name": "Initializable", "nameLocations": [ - "719:13:4" + "719:13:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "719:13:4" + "referencedDeclaration": 1305, + "src": "719:13:3" }, - "id": 979, + "id": 904, "nodeType": "InheritanceSpecifier", - "src": "719:13:4" + "src": "719:13:3" }, { "baseName": { - "id": 980, + "id": 905, "name": "OwnableUpgradeable", "nameLocations": [ - "734:18:4" + "734:18:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1211, - "src": "734:18:4" + "referencedDeclaration": 1136, + "src": "734:18:3" }, - "id": 981, + "id": 906, "nodeType": "InheritanceSpecifier", - "src": "734:18:4" + "src": "734:18:3" } ], "canonicalName": "Ownable2StepUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 977, + "id": 902, "nodeType": "StructuredDocumentation", - "src": "232:441:4", + "src": "232:441:3", "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." }, "fullyImplemented": true, - "id": 1078, + "id": 1003, "linearizedBaseContracts": [ - 1078, - 1211, - 1889, - 1380 + 1003, + 1136, + 1814, + 1305 ], "name": "Ownable2StepUpgradeable", - "nameLocation": "692:23:4", + "nameLocation": "692:23:3", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 983, + "id": 908, "mutability": "mutable", "name": "_pendingOwner", - "nameLocation": "775:13:4", + "nameLocation": "775:13:3", "nodeType": "VariableDeclaration", - "scope": 1078, - "src": "759:29:4", + "scope": 1003, + "src": "759:29:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1461,10 +1461,10 @@ "typeString": "address" }, "typeName": { - "id": 982, + "id": 907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "759:7:4", + "src": "759:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1476,24 +1476,24 @@ { "anonymous": false, "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 989, + "id": 914, "name": "OwnershipTransferStarted", - "nameLocation": "801:24:4", + "nameLocation": "801:24:3", "nodeType": "EventDefinition", "parameters": { - "id": 988, + "id": 913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 985, + "id": 910, "indexed": true, "mutability": "mutable", "name": "previousOwner", - "nameLocation": "842:13:4", + "nameLocation": "842:13:3", "nodeType": "VariableDeclaration", - "scope": 989, - "src": "826:29:4", + "scope": 914, + "src": "826:29:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1501,10 +1501,10 @@ "typeString": "address" }, "typeName": { - "id": 984, + "id": 909, "name": "address", "nodeType": "ElementaryTypeName", - "src": "826:7:4", + "src": "826:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1515,14 +1515,14 @@ }, { "constant": false, - "id": 987, + "id": 912, "indexed": true, "mutability": "mutable", "name": "newOwner", - "nameLocation": "873:8:4", + "nameLocation": "873:8:3", "nodeType": "VariableDeclaration", - "scope": 989, - "src": "857:24:4", + "scope": 914, + "src": "857:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1530,10 +1530,10 @@ "typeString": "address" }, "typeName": { - "id": 986, + "id": 911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "857:7:4", + "src": "857:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1543,33 +1543,33 @@ "visibility": "internal" } ], - "src": "825:57:4" + "src": "825:57:3" }, - "src": "795:88:4" + "src": "795:88:3" }, { "body": { - "id": 997, + "id": 922, "nodeType": "Block", - "src": "946:43:4", + "src": "946:43:3", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 994, + "id": 919, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "956:24:4", + "referencedDeclaration": 1042, + "src": "956:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 995, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -1578,169 +1578,169 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "956:26:4", + "src": "956:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 921, "nodeType": "ExpressionStatement", - "src": "956:26:4" + "src": "956:26:3" } ] }, - "id": 998, + "id": 923, "implemented": true, "kind": "function", "modifiers": [ { - "id": 992, + "id": 917, "kind": "modifierInvocation", "modifierName": { - "id": 991, + "id": 916, "name": "onlyInitializing", "nameLocations": [ - "929:16:4" + "929:16:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "929:16:4" + "referencedDeclaration": 1250, + "src": "929:16:3" }, "nodeType": "ModifierInvocation", - "src": "929:16:4" + "src": "929:16:3" } ], "name": "__Ownable2Step_init", - "nameLocation": "898:19:4", + "nameLocation": "898:19:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 990, + "id": 915, "nodeType": "ParameterList", "parameters": [], - "src": "917:2:4" + "src": "917:2:3" }, "returnParameters": { - "id": 993, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "946:0:4" + "src": "946:0:3" }, - "scope": 1078, - "src": "889:100:4", + "scope": 1003, + "src": "889:100:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1003, + "id": 928, "nodeType": "Block", - "src": "1062:7:4", + "src": "1062:7:3", "statements": [] }, - "id": 1004, + "id": 929, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1001, + "id": 926, "kind": "modifierInvocation", "modifierName": { - "id": 1000, + "id": 925, "name": "onlyInitializing", "nameLocations": [ - "1045:16:4" + "1045:16:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1045:16:4" + "referencedDeclaration": 1250, + "src": "1045:16:3" }, "nodeType": "ModifierInvocation", - "src": "1045:16:4" + "src": "1045:16:3" } ], "name": "__Ownable2Step_init_unchained", - "nameLocation": "1004:29:4", + "nameLocation": "1004:29:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 999, + "id": 924, "nodeType": "ParameterList", "parameters": [], - "src": "1033:2:4" + "src": "1033:2:3" }, "returnParameters": { - "id": 1002, + "id": 927, "nodeType": "ParameterList", "parameters": [], - "src": "1062:0:4" + "src": "1062:0:3" }, - "scope": 1078, - "src": "995:74:4", + "scope": 1003, + "src": "995:74:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1012, + "id": 937, "nodeType": "Block", - "src": "1206:37:4", + "src": "1206:37:3", "statements": [ { "expression": { - "id": 1010, + "id": 935, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1223:13:4", + "referencedDeclaration": 908, + "src": "1223:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1009, - "id": 1011, + "functionReturnParameters": 934, + "id": 936, "nodeType": "Return", - "src": "1216:20:4" + "src": "1216:20:3" } ] }, "documentation": { - "id": 1005, + "id": 930, "nodeType": "StructuredDocumentation", - "src": "1074:65:4", + "src": "1074:65:3", "text": " @dev Returns the address of the pending owner." }, "functionSelector": "e30c3978", - "id": 1013, + "id": 938, "implemented": true, "kind": "function", "modifiers": [], "name": "pendingOwner", - "nameLocation": "1153:12:4", + "nameLocation": "1153:12:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 1006, + "id": 931, "nodeType": "ParameterList", "parameters": [], - "src": "1165:2:4" + "src": "1165:2:3" }, "returnParameters": { - "id": 1009, + "id": 934, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1008, + "id": 933, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1013, - "src": "1197:7:4", + "scope": 938, + "src": "1197:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1748,10 +1748,10 @@ "typeString": "address" }, "typeName": { - "id": 1007, + "id": 932, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1197:7:4", + "src": "1197:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1761,37 +1761,37 @@ "visibility": "internal" } ], - "src": "1196:9:4" + "src": "1196:9:3" }, - "scope": 1078, - "src": "1144:99:4", + "scope": 1003, + "src": "1144:99:3", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ - 1185 + 1110 ], "body": { - "id": 1032, + "id": 957, "nodeType": "Block", - "src": "1515:99:4", + "src": "1515:99:3", "statements": [ { "expression": { - "id": 1024, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1022, + "id": 947, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1525:13:4", + "referencedDeclaration": 908, + "src": "1525:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1800,26 +1800,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1023, + "id": 948, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1541:8:4", + "referencedDeclaration": 941, + "src": "1541:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1525:24:4", + "src": "1525:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1025, + "id": 950, "nodeType": "ExpressionStatement", - "src": "1525:24:4" + "src": "1525:24:3" }, { "eventCall": { @@ -1828,18 +1828,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1027, + "id": 952, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "1589:5:4", + "referencedDeclaration": 1059, + "src": "1589:5:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1028, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -1848,7 +1848,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1589:7:4", + "src": "1589:7:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1856,12 +1856,12 @@ } }, { - "id": 1029, + "id": 954, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1598:8:4", + "referencedDeclaration": 941, + "src": "1598:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1879,18 +1879,18 @@ "typeString": "address" } ], - "id": 1026, + "id": 951, "name": "OwnershipTransferStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "1564:24:4", + "referencedDeclaration": 914, + "src": "1564:24:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1030, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -1899,69 +1899,69 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1564:43:4", + "src": "1564:43:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1031, + "id": 956, "nodeType": "EmitStatement", - "src": "1559:48:4" + "src": "1559:48:3" } ] }, "documentation": { - "id": 1014, + "id": 939, "nodeType": "StructuredDocumentation", - "src": "1249:182:4", + "src": "1249:182:3", "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1033, + "id": 958, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1020, + "id": 945, "kind": "modifierInvocation", "modifierName": { - "id": 1019, + "id": 944, "name": "onlyOwner", "nameLocations": [ - "1505:9:4" + "1505:9:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "1505:9:4" + "referencedDeclaration": 1050, + "src": "1505:9:3" }, "nodeType": "ModifierInvocation", - "src": "1505:9:4" + "src": "1505:9:3" } ], "name": "transferOwnership", - "nameLocation": "1445:17:4", + "nameLocation": "1445:17:3", "nodeType": "FunctionDefinition", "overrides": { - "id": 1018, + "id": 943, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1496:8:4" + "src": "1496:8:3" }, "parameters": { - "id": 1017, + "id": 942, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 941, "mutability": "mutable", "name": "newOwner", - "nameLocation": "1471:8:4", + "nameLocation": "1471:8:3", "nodeType": "VariableDeclaration", - "scope": 1033, - "src": "1463:16:4", + "scope": 958, + "src": "1463:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1969,10 +1969,10 @@ "typeString": "address" }, "typeName": { - "id": 1015, + "id": 940, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1463:7:4", + "src": "1463:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1982,32 +1982,32 @@ "visibility": "internal" } ], - "src": "1462:18:4" + "src": "1462:18:3" }, "returnParameters": { - "id": 1021, + "id": 946, "nodeType": "ParameterList", "parameters": [], - "src": "1515:0:4" + "src": "1515:0:3" }, - "scope": 1078, - "src": "1436:178:4", + "scope": 1003, + "src": "1436:178:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "baseFunctions": [ - 1205 + 1130 ], "body": { - "id": 1049, + "id": 974, "nodeType": "Block", - "src": "1870:81:4", + "src": "1870:81:3", "statements": [ { "expression": { - "id": 1041, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, @@ -2015,14 +2015,14 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "1880:20:4", + "src": "1880:20:3", "subExpression": { - "id": 1040, + "id": 965, "name": "_pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1887:13:4", + "referencedDeclaration": 908, + "src": "1887:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2033,20 +2033,20 @@ "typeString": "tuple()" } }, - "id": 1042, + "id": 967, "nodeType": "ExpressionStatement", - "src": "1880:20:4" + "src": "1880:20:3" }, { "expression": { "arguments": [ { - "id": 1046, + "id": 971, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1935:8:4", + "referencedDeclaration": 961, + "src": "1935:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2061,33 +2061,33 @@ } ], "expression": { - "id": 1043, + "id": 968, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967271, - "src": "1910:5:4", + "src": "1910:5:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1078_$", + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$1003_$", "typeString": "type(contract super Ownable2StepUpgradeable)" } }, - "id": 1045, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1916:18:4", + "memberLocation": "1916:18:3", "memberName": "_transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 1205, - "src": "1910:24:4", + "referencedDeclaration": 1130, + "src": "1910:24:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1047, + "id": 972, "isConstant": false, "isLValue": false, "isPure": false, @@ -2096,51 +2096,51 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1910:34:4", + "src": "1910:34:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1048, + "id": 973, "nodeType": "ExpressionStatement", - "src": "1910:34:4" + "src": "1910:34:3" } ] }, "documentation": { - "id": 1034, + "id": 959, "nodeType": "StructuredDocumentation", - "src": "1620:173:4", + "src": "1620:173:3", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." }, - "id": 1050, + "id": 975, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", - "nameLocation": "1807:18:4", + "nameLocation": "1807:18:3", "nodeType": "FunctionDefinition", "overrides": { - "id": 1038, + "id": 963, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1861:8:4" + "src": "1861:8:3" }, "parameters": { - "id": 1037, + "id": 962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1036, + "id": 961, "mutability": "mutable", "name": "newOwner", - "nameLocation": "1834:8:4", + "nameLocation": "1834:8:3", "nodeType": "VariableDeclaration", - "scope": 1050, - "src": "1826:16:4", + "scope": 975, + "src": "1826:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2148,10 +2148,10 @@ "typeString": "address" }, "typeName": { - "id": 1035, + "id": 960, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1826:7:4", + "src": "1826:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2161,40 +2161,40 @@ "visibility": "internal" } ], - "src": "1825:18:4" + "src": "1825:18:3" }, "returnParameters": { - "id": 1039, + "id": 964, "nodeType": "ParameterList", "parameters": [], - "src": "1870:0:4" + "src": "1870:0:3" }, - "scope": 1078, - "src": "1798:153:4", + "scope": 1003, + "src": "1798:153:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1071, + "id": 996, "nodeType": "Block", - "src": "2073:170:4", + "src": "2073:170:3", "statements": [ { "assignments": [ - 1055 + 980 ], "declarations": [ { "constant": false, - "id": 1055, + "id": 980, "mutability": "mutable", "name": "sender", - "nameLocation": "2091:6:4", + "nameLocation": "2091:6:3", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "2083:14:4", + "scope": 996, + "src": "2083:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2202,10 +2202,10 @@ "typeString": "address" }, "typeName": { - "id": 1054, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2083:7:4", + "src": "2083:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2215,23 +2215,23 @@ "visibility": "internal" } ], - "id": 1058, + "id": 983, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1056, + "id": 981, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2100:10:4", + "referencedDeclaration": 1791, + "src": "2100:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1057, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, @@ -2240,7 +2240,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2100:12:4", + "src": "2100:12:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2248,7 +2248,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2083:29:4" + "src": "2083:29:3" }, { "expression": { @@ -2258,7 +2258,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1063, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -2267,18 +2267,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1060, + "id": 985, "name": "pendingOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1013, - "src": "2130:12:4", + "referencedDeclaration": 938, + "src": "2130:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1061, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -2287,7 +2287,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2130:14:4", + "src": "2130:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2297,18 +2297,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1062, + "id": 987, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1055, - "src": "2148:6:4", + "referencedDeclaration": 980, + "src": "2148:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2130:24:4", + "src": "2130:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2316,14 +2316,14 @@ }, { "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572", - "id": 1064, + "id": 989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2156:43:4", + "src": "2156:43:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc", "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" @@ -2342,7 +2342,7 @@ "typeString": "literal_string \"Ownable2Step: caller is not the new owner\"" } ], - "id": 1059, + "id": 984, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2350,13 +2350,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2122:7:4", + "src": "2122:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1065, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, @@ -2365,27 +2365,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2122:78:4", + "src": "2122:78:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1066, + "id": 991, "nodeType": "ExpressionStatement", - "src": "2122:78:4" + "src": "2122:78:3" }, { "expression": { "arguments": [ { - "id": 1068, + "id": 993, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1055, - "src": "2229:6:4", + "referencedDeclaration": 980, + "src": "2229:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2399,20 +2399,20 @@ "typeString": "address" } ], - "id": 1067, + "id": 992, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [ - 1050 + 975 ], - "referencedDeclaration": 1050, - "src": "2210:18:4", + "referencedDeclaration": 975, + "src": "2210:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1069, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -2421,47 +2421,47 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2210:26:4", + "src": "2210:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1070, + "id": 995, "nodeType": "ExpressionStatement", - "src": "2210:26:4" + "src": "2210:26:3" } ] }, "documentation": { - "id": 1051, + "id": 976, "nodeType": "StructuredDocumentation", - "src": "1957:69:4", + "src": "1957:69:3", "text": " @dev The new owner accepts the ownership transfer." }, "functionSelector": "79ba5097", - "id": 1072, + "id": 997, "implemented": true, "kind": "function", "modifiers": [], "name": "acceptOwnership", - "nameLocation": "2040:15:4", + "nameLocation": "2040:15:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 1052, + "id": 977, "nodeType": "ParameterList", "parameters": [], - "src": "2055:2:4" + "src": "2055:2:3" }, "returnParameters": { - "id": 1053, + "id": 978, "nodeType": "ParameterList", "parameters": [], - "src": "2073:0:4" + "src": "2073:0:3" }, - "scope": 1078, - "src": "2031:212:4", + "scope": 1003, + "src": "2031:212:3", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" @@ -2469,18 +2469,18 @@ { "constant": false, "documentation": { - "id": 1073, + "id": 998, "nodeType": "StructuredDocumentation", - "src": "2249:254:4", + "src": "2249:254:3", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1077, + "id": 1002, "mutability": "mutable", "name": "__gap", - "nameLocation": "2528:5:4", + "nameLocation": "2528:5:3", "nodeType": "VariableDeclaration", - "scope": 1078, - "src": "2508:25:4", + "scope": 1003, + "src": "2508:25:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2489,26 +2489,26 @@ }, "typeName": { "baseType": { - "id": 1074, + "id": 999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2508:7:4", + "src": "2508:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1076, + "id": 1001, "length": { "hexValue": "3439", - "id": 1075, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2516:2:4", + "src": "2516:2:3", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -2516,7 +2516,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "2508:11:4", + "src": "2508:11:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -2525,12 +2525,12 @@ "visibility": "private" } ], - "scope": 1079, - "src": "674:1862:4", + "scope": 1004, + "src": "674:1862:3", "usedErrors": [] } ], - "src": "107:2430:4" + "src": "107:2430:3" }, "compiler": { "name": "solc", @@ -2538,5 +2538,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.257Z" + "updatedAt": "2024-07-04T18:51:17.140Z" } \ No newline at end of file diff --git a/build/contracts/OwnableUpgradeable.json b/build/contracts/OwnableUpgradeable.json index 433e7f5..6eb8c29 100644 --- a/build/contracts/OwnableUpgradeable.json +++ b/build/contracts/OwnableUpgradeable.json @@ -77,21 +77,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 1212, + "id": 1137, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1080, + "id": 1005, "literals": [ "solidity", "^", @@ -99,38 +99,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "102:23:5" + "src": "102:23:4" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1081, + "id": 1006, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1890, - "src": "127:41:5", + "scope": 1137, + "sourceUnit": 1815, + "src": "127:41:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1083, + "id": 1008, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1381, - "src": "169:63:5", + "scope": 1137, + "sourceUnit": 1306, + "src": "169:63:4", "symbolAliases": [ { "foreign": { - "id": 1082, + "id": 1007, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "177:13:5", + "referencedDeclaration": 1305, + "src": "177:13:4", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -143,64 +143,64 @@ "baseContracts": [ { "baseName": { - "id": 1085, + "id": 1010, "name": "Initializable", "nameLocations": [ - "769:13:5" + "769:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "769:13:5" + "referencedDeclaration": 1305, + "src": "769:13:4" }, - "id": 1086, + "id": 1011, "nodeType": "InheritanceSpecifier", - "src": "769:13:5" + "src": "769:13:4" }, { "baseName": { - "id": 1087, + "id": 1012, "name": "ContextUpgradeable", "nameLocations": [ - "784:18:5" + "784:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1889, - "src": "784:18:5" + "referencedDeclaration": 1814, + "src": "784:18:4" }, - "id": 1088, + "id": 1013, "nodeType": "InheritanceSpecifier", - "src": "784:18:5" + "src": "784:18:4" } ], "canonicalName": "OwnableUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1084, + "id": 1009, "nodeType": "StructuredDocumentation", - "src": "234:494:5", + "src": "234:494:4", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1211, + "id": 1136, "linearizedBaseContracts": [ - 1211, - 1889, - 1380 + 1136, + 1814, + 1305 ], "name": "OwnableUpgradeable", - "nameLocation": "747:18:5", + "nameLocation": "747:18:4", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1090, + "id": 1015, "mutability": "mutable", "name": "_owner", - "nameLocation": "825:6:5", + "nameLocation": "825:6:4", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "809:22:5", + "scope": 1136, + "src": "809:22:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -208,10 +208,10 @@ "typeString": "address" }, "typeName": { - "id": 1089, + "id": 1014, "name": "address", "nodeType": "ElementaryTypeName", - "src": "809:7:5", + "src": "809:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -223,24 +223,24 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1096, + "id": 1021, "name": "OwnershipTransferred", - "nameLocation": "844:20:5", + "nameLocation": "844:20:4", "nodeType": "EventDefinition", "parameters": { - "id": 1095, + "id": 1020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1092, + "id": 1017, "indexed": true, "mutability": "mutable", "name": "previousOwner", - "nameLocation": "881:13:5", + "nameLocation": "881:13:4", "nodeType": "VariableDeclaration", - "scope": 1096, - "src": "865:29:5", + "scope": 1021, + "src": "865:29:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -248,10 +248,10 @@ "typeString": "address" }, "typeName": { - "id": 1091, + "id": 1016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "865:7:5", + "src": "865:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -262,14 +262,14 @@ }, { "constant": false, - "id": 1094, + "id": 1019, "indexed": true, "mutability": "mutable", "name": "newOwner", - "nameLocation": "912:8:5", + "nameLocation": "912:8:4", "nodeType": "VariableDeclaration", - "scope": 1096, - "src": "896:24:5", + "scope": 1021, + "src": "896:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -277,10 +277,10 @@ "typeString": "address" }, "typeName": { - "id": 1093, + "id": 1018, "name": "address", "nodeType": "ElementaryTypeName", - "src": "896:7:5", + "src": "896:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -290,33 +290,33 @@ "visibility": "internal" } ], - "src": "864:57:5" + "src": "864:57:4" }, - "src": "838:84:5" + "src": "838:84:4" }, { "body": { - "id": 1105, + "id": 1030, "nodeType": "Block", - "src": "1076:43:5", + "src": "1076:43:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1102, + "id": 1027, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1086:24:5", + "referencedDeclaration": 1042, + "src": "1086:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1103, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -325,72 +325,72 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1086:26:5", + "src": "1086:26:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1104, + "id": 1029, "nodeType": "ExpressionStatement", - "src": "1086:26:5" + "src": "1086:26:4" } ] }, "documentation": { - "id": 1097, + "id": 1022, "nodeType": "StructuredDocumentation", - "src": "928:91:5", + "src": "928:91:4", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1106, + "id": 1031, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1100, + "id": 1025, "kind": "modifierInvocation", "modifierName": { - "id": 1099, + "id": 1024, "name": "onlyInitializing", "nameLocations": [ - "1059:16:5" + "1059:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1059:16:5" + "referencedDeclaration": 1250, + "src": "1059:16:4" }, "nodeType": "ModifierInvocation", - "src": "1059:16:5" + "src": "1059:16:4" } ], "name": "__Ownable_init", - "nameLocation": "1033:14:5", + "nameLocation": "1033:14:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1098, + "id": 1023, "nodeType": "ParameterList", "parameters": [], - "src": "1047:2:5" + "src": "1047:2:4" }, "returnParameters": { - "id": 1101, + "id": 1026, "nodeType": "ParameterList", "parameters": [], - "src": "1076:0:5" + "src": "1076:0:4" }, - "scope": 1211, - "src": "1024:95:5", + "scope": 1136, + "src": "1024:95:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1116, + "id": 1041, "nodeType": "Block", - "src": "1187:49:5", + "src": "1187:49:4", "statements": [ { "expression": { @@ -399,18 +399,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1112, + "id": 1037, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "1216:10:5", + "referencedDeclaration": 1791, + "src": "1216:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1113, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -419,7 +419,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1216:12:5", + "src": "1216:12:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -434,18 +434,18 @@ "typeString": "address" } ], - "id": 1111, + "id": 1036, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "1197:18:5", + "referencedDeclaration": 1130, + "src": "1197:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1114, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -454,84 +454,84 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1197:32:5", + "src": "1197:32:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1115, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "1197:32:5" + "src": "1197:32:4" } ] }, - "id": 1117, + "id": 1042, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1109, + "id": 1034, "kind": "modifierInvocation", "modifierName": { - "id": 1108, + "id": 1033, "name": "onlyInitializing", "nameLocations": [ - "1170:16:5" + "1170:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1170:16:5" + "referencedDeclaration": 1250, + "src": "1170:16:4" }, "nodeType": "ModifierInvocation", - "src": "1170:16:5" + "src": "1170:16:4" } ], "name": "__Ownable_init_unchained", - "nameLocation": "1134:24:5", + "nameLocation": "1134:24:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1107, + "id": 1032, "nodeType": "ParameterList", "parameters": [], - "src": "1158:2:5" + "src": "1158:2:4" }, "returnParameters": { - "id": 1110, + "id": 1035, "nodeType": "ParameterList", "parameters": [], - "src": "1187:0:5" + "src": "1187:0:4" }, - "scope": 1211, - "src": "1125:111:5", + "scope": 1136, + "src": "1125:111:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1124, + "id": 1049, "nodeType": "Block", - "src": "1345:41:5", + "src": "1345:41:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1120, + "id": 1045, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1148, - "src": "1355:11:5", + "referencedDeclaration": 1073, + "src": "1355:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1121, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -540,103 +540,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1355:13:5", + "src": "1355:13:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1047, "nodeType": "ExpressionStatement", - "src": "1355:13:5" + "src": "1355:13:4" }, { - "id": 1123, + "id": 1048, "nodeType": "PlaceholderStatement", - "src": "1378:1:5" + "src": "1378:1:4" } ] }, "documentation": { - "id": 1118, + "id": 1043, "nodeType": "StructuredDocumentation", - "src": "1242:77:5", + "src": "1242:77:4", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1125, + "id": 1050, "name": "onlyOwner", - "nameLocation": "1333:9:5", + "nameLocation": "1333:9:4", "nodeType": "ModifierDefinition", "parameters": { - "id": 1119, + "id": 1044, "nodeType": "ParameterList", "parameters": [], - "src": "1342:2:5" + "src": "1342:2:4" }, - "src": "1324:62:5", + "src": "1324:62:4", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1133, + "id": 1058, "nodeType": "Block", - "src": "1517:30:5", + "src": "1517:30:4", "statements": [ { "expression": { - "id": 1131, + "id": 1056, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1534:6:5", + "referencedDeclaration": 1015, + "src": "1534:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1130, - "id": 1132, + "functionReturnParameters": 1055, + "id": 1057, "nodeType": "Return", - "src": "1527:13:5" + "src": "1527:13:4" } ] }, "documentation": { - "id": 1126, + "id": 1051, "nodeType": "StructuredDocumentation", - "src": "1392:65:5", + "src": "1392:65:4", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1134, + "id": 1059, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", - "nameLocation": "1471:5:5", + "nameLocation": "1471:5:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1127, + "id": 1052, "nodeType": "ParameterList", "parameters": [], - "src": "1476:2:5" + "src": "1476:2:4" }, "returnParameters": { - "id": 1130, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1129, + "id": 1054, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1134, - "src": "1508:7:5", + "scope": 1059, + "src": "1508:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -644,10 +644,10 @@ "typeString": "address" }, "typeName": { - "id": 1128, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1508:7:5", + "src": "1508:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -657,19 +657,19 @@ "visibility": "internal" } ], - "src": "1507:9:5" + "src": "1507:9:4" }, - "scope": 1211, - "src": "1462:85:5", + "scope": 1136, + "src": "1462:85:4", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1147, + "id": 1072, "nodeType": "Block", - "src": "1665:85:5", + "src": "1665:85:4", "statements": [ { "expression": { @@ -679,7 +679,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1143, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,18 +688,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1139, + "id": 1064, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "1683:5:5", + "referencedDeclaration": 1059, + "src": "1683:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1140, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -708,7 +708,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1683:7:5", + "src": "1683:7:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -721,18 +721,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1141, + "id": 1066, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "1694:10:5", + "referencedDeclaration": 1791, + "src": "1694:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1142, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -741,14 +741,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1694:12:5", + "src": "1694:12:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1683:23:5", + "src": "1683:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -756,14 +756,14 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1144, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1708:34:5", + "src": "1708:34:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" @@ -782,7 +782,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1138, + "id": 1063, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -790,13 +790,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1675:7:5", + "src": "1675:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1145, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": false, @@ -805,55 +805,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1675:68:5", + "src": "1675:68:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1146, + "id": 1071, "nodeType": "ExpressionStatement", - "src": "1675:68:5" + "src": "1675:68:4" } ] }, "documentation": { - "id": 1135, + "id": 1060, "nodeType": "StructuredDocumentation", - "src": "1553:62:5", + "src": "1553:62:4", "text": " @dev Throws if the sender is not the owner." }, - "id": 1148, + "id": 1073, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOwner", - "nameLocation": "1629:11:5", + "nameLocation": "1629:11:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1136, + "id": 1061, "nodeType": "ParameterList", "parameters": [], - "src": "1640:2:5" + "src": "1640:2:4" }, "returnParameters": { - "id": 1137, + "id": 1062, "nodeType": "ParameterList", "parameters": [], - "src": "1665:0:5" + "src": "1665:0:4" }, - "scope": 1211, - "src": "1620:130:5", + "scope": 1136, + "src": "1620:130:4", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1161, + "id": 1086, "nodeType": "Block", - "src": "2139:47:5", + "src": "2139:47:4", "statements": [ { "expression": { @@ -862,14 +862,14 @@ "arguments": [ { "hexValue": "30", - "id": 1157, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2176:1:5", + "src": "2176:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -884,26 +884,26 @@ "typeString": "int_const 0" } ], - "id": 1156, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2168:7:5", + "src": "2168:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1155, + "id": 1080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2168:7:5", + "src": "2168:7:4", "typeDescriptions": {} } }, - "id": 1158, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, @@ -912,7 +912,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2168:10:5", + "src": "2168:10:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -927,18 +927,18 @@ "typeString": "address" } ], - "id": 1154, + "id": 1079, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "2149:18:5", + "referencedDeclaration": 1130, + "src": "2149:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1159, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -947,73 +947,73 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2149:30:5", + "src": "2149:30:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1160, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "2149:30:5" + "src": "2149:30:4" } ] }, "documentation": { - "id": 1149, + "id": 1074, "nodeType": "StructuredDocumentation", - "src": "1756:324:5", + "src": "1756:324:4", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1162, + "id": 1087, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1152, + "id": 1077, "kind": "modifierInvocation", "modifierName": { - "id": 1151, + "id": 1076, "name": "onlyOwner", "nameLocations": [ - "2129:9:5" + "2129:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "2129:9:5" + "referencedDeclaration": 1050, + "src": "2129:9:4" }, "nodeType": "ModifierInvocation", - "src": "2129:9:5" + "src": "2129:9:4" } ], "name": "renounceOwnership", - "nameLocation": "2094:17:5", + "nameLocation": "2094:17:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1150, + "id": 1075, "nodeType": "ParameterList", "parameters": [], - "src": "2111:2:5" + "src": "2111:2:4" }, "returnParameters": { - "id": 1153, + "id": 1078, "nodeType": "ParameterList", "parameters": [], - "src": "2139:0:5" + "src": "2139:0:4" }, - "scope": 1211, - "src": "2085:101:5", + "scope": 1136, + "src": "2085:101:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1184, + "id": 1109, "nodeType": "Block", - "src": "2405:128:5", + "src": "2405:128:4", "statements": [ { "expression": { @@ -1023,18 +1023,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1176, + "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1171, + "id": 1096, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2423:8:5", + "referencedDeclaration": 1090, + "src": "2423:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1046,14 +1046,14 @@ "arguments": [ { "hexValue": "30", - "id": 1174, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2443:1:5", + "src": "2443:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1068,26 +1068,26 @@ "typeString": "int_const 0" } ], - "id": 1173, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2435:7:5", + "src": "2435:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1172, + "id": 1097, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2435:7:5", + "src": "2435:7:4", "typeDescriptions": {} } }, - "id": 1175, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, @@ -1096,14 +1096,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2435:10:5", + "src": "2435:10:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2423:22:5", + "src": "2423:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1111,14 +1111,14 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1177, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2447:40:5", + "src": "2447:40:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" @@ -1137,7 +1137,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1170, + "id": 1095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1145,13 +1145,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2415:7:5", + "src": "2415:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1178, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -1160,27 +1160,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2415:73:5", + "src": "2415:73:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1179, + "id": 1104, "nodeType": "ExpressionStatement", - "src": "2415:73:5" + "src": "2415:73:4" }, { "expression": { "arguments": [ { - "id": 1181, + "id": 1106, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2517:8:5", + "referencedDeclaration": 1090, + "src": "2517:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1194,18 +1194,18 @@ "typeString": "address" } ], - "id": 1180, + "id": 1105, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "2498:18:5", + "referencedDeclaration": 1130, + "src": "2498:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1182, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -1214,63 +1214,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2498:28:5", + "src": "2498:28:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1183, + "id": 1108, "nodeType": "ExpressionStatement", - "src": "2498:28:5" + "src": "2498:28:4" } ] }, "documentation": { - "id": 1163, + "id": 1088, "nodeType": "StructuredDocumentation", - "src": "2192:138:5", + "src": "2192:138:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1185, + "id": 1110, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1168, + "id": 1093, "kind": "modifierInvocation", "modifierName": { - "id": 1167, + "id": 1092, "name": "onlyOwner", "nameLocations": [ - "2395:9:5" + "2395:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "2395:9:5" + "referencedDeclaration": 1050, + "src": "2395:9:4" }, "nodeType": "ModifierInvocation", - "src": "2395:9:5" + "src": "2395:9:4" } ], "name": "transferOwnership", - "nameLocation": "2344:17:5", + "nameLocation": "2344:17:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1166, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1165, + "id": 1090, "mutability": "mutable", "name": "newOwner", - "nameLocation": "2370:8:5", + "nameLocation": "2370:8:4", "nodeType": "VariableDeclaration", - "scope": 1185, - "src": "2362:16:5", + "scope": 1110, + "src": "2362:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1278,10 +1278,10 @@ "typeString": "address" }, "typeName": { - "id": 1164, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2362:7:5", + "src": "2362:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1291,40 +1291,40 @@ "visibility": "internal" } ], - "src": "2361:18:5" + "src": "2361:18:4" }, "returnParameters": { - "id": 1169, + "id": 1094, "nodeType": "ParameterList", "parameters": [], - "src": "2405:0:5" + "src": "2405:0:4" }, - "scope": 1211, - "src": "2335:198:5", + "scope": 1136, + "src": "2335:198:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1204, + "id": 1129, "nodeType": "Block", - "src": "2750:124:5", + "src": "2750:124:4", "statements": [ { "assignments": [ - 1192 + 1117 ], "declarations": [ { "constant": false, - "id": 1192, + "id": 1117, "mutability": "mutable", "name": "oldOwner", - "nameLocation": "2768:8:5", + "nameLocation": "2768:8:4", "nodeType": "VariableDeclaration", - "scope": 1204, - "src": "2760:16:5", + "scope": 1129, + "src": "2760:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1332,10 +1332,10 @@ "typeString": "address" }, "typeName": { - "id": 1191, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2760:7:5", + "src": "2760:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1345,36 +1345,36 @@ "visibility": "internal" } ], - "id": 1194, + "id": 1119, "initialValue": { - "id": 1193, + "id": 1118, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "2779:6:5", + "referencedDeclaration": 1015, + "src": "2779:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2760:25:5" + "src": "2760:25:4" }, { "expression": { - "id": 1197, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1195, + "id": 1120, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "2795:6:5", + "referencedDeclaration": 1015, + "src": "2795:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1383,49 +1383,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1196, + "id": 1121, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, - "src": "2804:8:5", + "referencedDeclaration": 1113, + "src": "2804:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2795:17:5", + "src": "2795:17:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1198, + "id": 1123, "nodeType": "ExpressionStatement", - "src": "2795:17:5" + "src": "2795:17:4" }, { "eventCall": { "arguments": [ { - "id": 1200, + "id": 1125, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "2848:8:5", + "referencedDeclaration": 1117, + "src": "2848:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1201, + "id": 1126, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, - "src": "2858:8:5", + "referencedDeclaration": 1113, + "src": "2858:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1443,18 +1443,18 @@ "typeString": "address" } ], - "id": 1199, + "id": 1124, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2827:20:5", + "referencedDeclaration": 1021, + "src": "2827:20:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1202, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, @@ -1463,45 +1463,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2827:40:5", + "src": "2827:40:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1203, + "id": 1128, "nodeType": "EmitStatement", - "src": "2822:45:5" + "src": "2822:45:4" } ] }, "documentation": { - "id": 1186, + "id": 1111, "nodeType": "StructuredDocumentation", - "src": "2539:143:5", + "src": "2539:143:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1205, + "id": 1130, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", - "nameLocation": "2696:18:5", + "nameLocation": "2696:18:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1189, + "id": 1114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1188, + "id": 1113, "mutability": "mutable", "name": "newOwner", - "nameLocation": "2723:8:5", + "nameLocation": "2723:8:4", "nodeType": "VariableDeclaration", - "scope": 1205, - "src": "2715:16:5", + "scope": 1130, + "src": "2715:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1509,10 +1509,10 @@ "typeString": "address" }, "typeName": { - "id": 1187, + "id": 1112, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2715:7:5", + "src": "2715:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1522,16 +1522,16 @@ "visibility": "internal" } ], - "src": "2714:18:5" + "src": "2714:18:4" }, "returnParameters": { - "id": 1190, + "id": 1115, "nodeType": "ParameterList", "parameters": [], - "src": "2750:0:5" + "src": "2750:0:4" }, - "scope": 1211, - "src": "2687:187:5", + "scope": 1136, + "src": "2687:187:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" @@ -1539,18 +1539,18 @@ { "constant": false, "documentation": { - "id": 1206, + "id": 1131, "nodeType": "StructuredDocumentation", - "src": "2880:254:5", + "src": "2880:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1210, + "id": 1135, "mutability": "mutable", "name": "__gap", - "nameLocation": "3159:5:5", + "nameLocation": "3159:5:4", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3139:25:5", + "scope": 1136, + "src": "3139:25:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1559,26 +1559,26 @@ }, "typeName": { "baseType": { - "id": 1207, + "id": 1132, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:5", + "src": "3139:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1209, + "id": 1134, "length": { "hexValue": "3439", - "id": 1208, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:2:5", + "src": "3147:2:4", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -1586,7 +1586,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "3139:11:5", + "src": "3139:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -1595,32 +1595,32 @@ "visibility": "private" } ], - "scope": 1212, - "src": "729:2438:5", + "scope": 1137, + "src": "729:2438:4", "usedErrors": [] } ], - "src": "102:3066:5" + "src": "102:3066:4" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "OwnableUpgradeable": [ - 1211 + 1136 ] }, - "id": 1212, + "id": 1137, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1080, + "id": 1005, "literals": [ "solidity", "^", @@ -1628,38 +1628,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "102:23:5" + "src": "102:23:4" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1081, + "id": 1006, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1890, - "src": "127:41:5", + "scope": 1137, + "sourceUnit": 1815, + "src": "127:41:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1083, + "id": 1008, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1381, - "src": "169:63:5", + "scope": 1137, + "sourceUnit": 1306, + "src": "169:63:4", "symbolAliases": [ { "foreign": { - "id": 1082, + "id": 1007, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "177:13:5", + "referencedDeclaration": 1305, + "src": "177:13:4", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1672,64 +1672,64 @@ "baseContracts": [ { "baseName": { - "id": 1085, + "id": 1010, "name": "Initializable", "nameLocations": [ - "769:13:5" + "769:13:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "769:13:5" + "referencedDeclaration": 1305, + "src": "769:13:4" }, - "id": 1086, + "id": 1011, "nodeType": "InheritanceSpecifier", - "src": "769:13:5" + "src": "769:13:4" }, { "baseName": { - "id": 1087, + "id": 1012, "name": "ContextUpgradeable", "nameLocations": [ - "784:18:5" + "784:18:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1889, - "src": "784:18:5" + "referencedDeclaration": 1814, + "src": "784:18:4" }, - "id": 1088, + "id": 1013, "nodeType": "InheritanceSpecifier", - "src": "784:18:5" + "src": "784:18:4" } ], "canonicalName": "OwnableUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1084, + "id": 1009, "nodeType": "StructuredDocumentation", - "src": "234:494:5", + "src": "234:494:4", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1211, + "id": 1136, "linearizedBaseContracts": [ - 1211, - 1889, - 1380 + 1136, + 1814, + 1305 ], "name": "OwnableUpgradeable", - "nameLocation": "747:18:5", + "nameLocation": "747:18:4", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1090, + "id": 1015, "mutability": "mutable", "name": "_owner", - "nameLocation": "825:6:5", + "nameLocation": "825:6:4", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "809:22:5", + "scope": 1136, + "src": "809:22:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1737,10 +1737,10 @@ "typeString": "address" }, "typeName": { - "id": 1089, + "id": 1014, "name": "address", "nodeType": "ElementaryTypeName", - "src": "809:7:5", + "src": "809:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1752,24 +1752,24 @@ { "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 1096, + "id": 1021, "name": "OwnershipTransferred", - "nameLocation": "844:20:5", + "nameLocation": "844:20:4", "nodeType": "EventDefinition", "parameters": { - "id": 1095, + "id": 1020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1092, + "id": 1017, "indexed": true, "mutability": "mutable", "name": "previousOwner", - "nameLocation": "881:13:5", + "nameLocation": "881:13:4", "nodeType": "VariableDeclaration", - "scope": 1096, - "src": "865:29:5", + "scope": 1021, + "src": "865:29:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1777,10 +1777,10 @@ "typeString": "address" }, "typeName": { - "id": 1091, + "id": 1016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "865:7:5", + "src": "865:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1791,14 +1791,14 @@ }, { "constant": false, - "id": 1094, + "id": 1019, "indexed": true, "mutability": "mutable", "name": "newOwner", - "nameLocation": "912:8:5", + "nameLocation": "912:8:4", "nodeType": "VariableDeclaration", - "scope": 1096, - "src": "896:24:5", + "scope": 1021, + "src": "896:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1806,10 +1806,10 @@ "typeString": "address" }, "typeName": { - "id": 1093, + "id": 1018, "name": "address", "nodeType": "ElementaryTypeName", - "src": "896:7:5", + "src": "896:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1819,33 +1819,33 @@ "visibility": "internal" } ], - "src": "864:57:5" + "src": "864:57:4" }, - "src": "838:84:5" + "src": "838:84:4" }, { "body": { - "id": 1105, + "id": 1030, "nodeType": "Block", - "src": "1076:43:5", + "src": "1076:43:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1102, + "id": 1027, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1086:24:5", + "referencedDeclaration": 1042, + "src": "1086:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1103, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -1854,72 +1854,72 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1086:26:5", + "src": "1086:26:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1104, + "id": 1029, "nodeType": "ExpressionStatement", - "src": "1086:26:5" + "src": "1086:26:4" } ] }, "documentation": { - "id": 1097, + "id": 1022, "nodeType": "StructuredDocumentation", - "src": "928:91:5", + "src": "928:91:4", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1106, + "id": 1031, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1100, + "id": 1025, "kind": "modifierInvocation", "modifierName": { - "id": 1099, + "id": 1024, "name": "onlyInitializing", "nameLocations": [ - "1059:16:5" + "1059:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1059:16:5" + "referencedDeclaration": 1250, + "src": "1059:16:4" }, "nodeType": "ModifierInvocation", - "src": "1059:16:5" + "src": "1059:16:4" } ], "name": "__Ownable_init", - "nameLocation": "1033:14:5", + "nameLocation": "1033:14:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1098, + "id": 1023, "nodeType": "ParameterList", "parameters": [], - "src": "1047:2:5" + "src": "1047:2:4" }, "returnParameters": { - "id": 1101, + "id": 1026, "nodeType": "ParameterList", "parameters": [], - "src": "1076:0:5" + "src": "1076:0:4" }, - "scope": 1211, - "src": "1024:95:5", + "scope": 1136, + "src": "1024:95:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1116, + "id": 1041, "nodeType": "Block", - "src": "1187:49:5", + "src": "1187:49:4", "statements": [ { "expression": { @@ -1928,18 +1928,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1112, + "id": 1037, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "1216:10:5", + "referencedDeclaration": 1791, + "src": "1216:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1113, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -1948,7 +1948,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1216:12:5", + "src": "1216:12:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1963,18 +1963,18 @@ "typeString": "address" } ], - "id": 1111, + "id": 1036, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "1197:18:5", + "referencedDeclaration": 1130, + "src": "1197:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1114, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -1983,84 +1983,84 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1197:32:5", + "src": "1197:32:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1115, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "1197:32:5" + "src": "1197:32:4" } ] }, - "id": 1117, + "id": 1042, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1109, + "id": 1034, "kind": "modifierInvocation", "modifierName": { - "id": 1108, + "id": 1033, "name": "onlyInitializing", "nameLocations": [ - "1170:16:5" + "1170:16:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1170:16:5" + "referencedDeclaration": 1250, + "src": "1170:16:4" }, "nodeType": "ModifierInvocation", - "src": "1170:16:5" + "src": "1170:16:4" } ], "name": "__Ownable_init_unchained", - "nameLocation": "1134:24:5", + "nameLocation": "1134:24:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1107, + "id": 1032, "nodeType": "ParameterList", "parameters": [], - "src": "1158:2:5" + "src": "1158:2:4" }, "returnParameters": { - "id": 1110, + "id": 1035, "nodeType": "ParameterList", "parameters": [], - "src": "1187:0:5" + "src": "1187:0:4" }, - "scope": 1211, - "src": "1125:111:5", + "scope": 1136, + "src": "1125:111:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1124, + "id": 1049, "nodeType": "Block", - "src": "1345:41:5", + "src": "1345:41:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1120, + "id": 1045, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1148, - "src": "1355:11:5", + "referencedDeclaration": 1073, + "src": "1355:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1121, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -2069,103 +2069,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1355:13:5", + "src": "1355:13:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1047, "nodeType": "ExpressionStatement", - "src": "1355:13:5" + "src": "1355:13:4" }, { - "id": 1123, + "id": 1048, "nodeType": "PlaceholderStatement", - "src": "1378:1:5" + "src": "1378:1:4" } ] }, "documentation": { - "id": 1118, + "id": 1043, "nodeType": "StructuredDocumentation", - "src": "1242:77:5", + "src": "1242:77:4", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1125, + "id": 1050, "name": "onlyOwner", - "nameLocation": "1333:9:5", + "nameLocation": "1333:9:4", "nodeType": "ModifierDefinition", "parameters": { - "id": 1119, + "id": 1044, "nodeType": "ParameterList", "parameters": [], - "src": "1342:2:5" + "src": "1342:2:4" }, - "src": "1324:62:5", + "src": "1324:62:4", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1133, + "id": 1058, "nodeType": "Block", - "src": "1517:30:5", + "src": "1517:30:4", "statements": [ { "expression": { - "id": 1131, + "id": 1056, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1534:6:5", + "referencedDeclaration": 1015, + "src": "1534:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1130, - "id": 1132, + "functionReturnParameters": 1055, + "id": 1057, "nodeType": "Return", - "src": "1527:13:5" + "src": "1527:13:4" } ] }, "documentation": { - "id": 1126, + "id": 1051, "nodeType": "StructuredDocumentation", - "src": "1392:65:5", + "src": "1392:65:4", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1134, + "id": 1059, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", - "nameLocation": "1471:5:5", + "nameLocation": "1471:5:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1127, + "id": 1052, "nodeType": "ParameterList", "parameters": [], - "src": "1476:2:5" + "src": "1476:2:4" }, "returnParameters": { - "id": 1130, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1129, + "id": 1054, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1134, - "src": "1508:7:5", + "scope": 1059, + "src": "1508:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2173,10 +2173,10 @@ "typeString": "address" }, "typeName": { - "id": 1128, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1508:7:5", + "src": "1508:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2186,19 +2186,19 @@ "visibility": "internal" } ], - "src": "1507:9:5" + "src": "1507:9:4" }, - "scope": 1211, - "src": "1462:85:5", + "scope": 1136, + "src": "1462:85:4", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1147, + "id": 1072, "nodeType": "Block", - "src": "1665:85:5", + "src": "1665:85:4", "statements": [ { "expression": { @@ -2208,7 +2208,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1143, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -2217,18 +2217,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1139, + "id": 1064, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "1683:5:5", + "referencedDeclaration": 1059, + "src": "1683:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1140, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -2237,7 +2237,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1683:7:5", + "src": "1683:7:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2250,18 +2250,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1141, + "id": 1066, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "1694:10:5", + "referencedDeclaration": 1791, + "src": "1694:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1142, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -2270,14 +2270,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1694:12:5", + "src": "1694:12:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1683:23:5", + "src": "1683:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2285,14 +2285,14 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1144, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1708:34:5", + "src": "1708:34:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" @@ -2311,7 +2311,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1138, + "id": 1063, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2319,13 +2319,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1675:7:5", + "src": "1675:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1145, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": false, @@ -2334,55 +2334,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1675:68:5", + "src": "1675:68:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1146, + "id": 1071, "nodeType": "ExpressionStatement", - "src": "1675:68:5" + "src": "1675:68:4" } ] }, "documentation": { - "id": 1135, + "id": 1060, "nodeType": "StructuredDocumentation", - "src": "1553:62:5", + "src": "1553:62:4", "text": " @dev Throws if the sender is not the owner." }, - "id": 1148, + "id": 1073, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOwner", - "nameLocation": "1629:11:5", + "nameLocation": "1629:11:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1136, + "id": 1061, "nodeType": "ParameterList", "parameters": [], - "src": "1640:2:5" + "src": "1640:2:4" }, "returnParameters": { - "id": 1137, + "id": 1062, "nodeType": "ParameterList", "parameters": [], - "src": "1665:0:5" + "src": "1665:0:4" }, - "scope": 1211, - "src": "1620:130:5", + "scope": 1136, + "src": "1620:130:4", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1161, + "id": 1086, "nodeType": "Block", - "src": "2139:47:5", + "src": "2139:47:4", "statements": [ { "expression": { @@ -2391,14 +2391,14 @@ "arguments": [ { "hexValue": "30", - "id": 1157, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2176:1:5", + "src": "2176:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2413,26 +2413,26 @@ "typeString": "int_const 0" } ], - "id": 1156, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2168:7:5", + "src": "2168:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1155, + "id": 1080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2168:7:5", + "src": "2168:7:4", "typeDescriptions": {} } }, - "id": 1158, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, @@ -2441,7 +2441,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2168:10:5", + "src": "2168:10:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2456,18 +2456,18 @@ "typeString": "address" } ], - "id": 1154, + "id": 1079, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "2149:18:5", + "referencedDeclaration": 1130, + "src": "2149:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1159, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -2476,73 +2476,73 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2149:30:5", + "src": "2149:30:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1160, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "2149:30:5" + "src": "2149:30:4" } ] }, "documentation": { - "id": 1149, + "id": 1074, "nodeType": "StructuredDocumentation", - "src": "1756:324:5", + "src": "1756:324:4", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1162, + "id": 1087, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1152, + "id": 1077, "kind": "modifierInvocation", "modifierName": { - "id": 1151, + "id": 1076, "name": "onlyOwner", "nameLocations": [ - "2129:9:5" + "2129:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "2129:9:5" + "referencedDeclaration": 1050, + "src": "2129:9:4" }, "nodeType": "ModifierInvocation", - "src": "2129:9:5" + "src": "2129:9:4" } ], "name": "renounceOwnership", - "nameLocation": "2094:17:5", + "nameLocation": "2094:17:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1150, + "id": 1075, "nodeType": "ParameterList", "parameters": [], - "src": "2111:2:5" + "src": "2111:2:4" }, "returnParameters": { - "id": 1153, + "id": 1078, "nodeType": "ParameterList", "parameters": [], - "src": "2139:0:5" + "src": "2139:0:4" }, - "scope": 1211, - "src": "2085:101:5", + "scope": 1136, + "src": "2085:101:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1184, + "id": 1109, "nodeType": "Block", - "src": "2405:128:5", + "src": "2405:128:4", "statements": [ { "expression": { @@ -2552,18 +2552,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1176, + "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1171, + "id": 1096, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2423:8:5", + "referencedDeclaration": 1090, + "src": "2423:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2575,14 +2575,14 @@ "arguments": [ { "hexValue": "30", - "id": 1174, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2443:1:5", + "src": "2443:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2597,26 +2597,26 @@ "typeString": "int_const 0" } ], - "id": 1173, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2435:7:5", + "src": "2435:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1172, + "id": 1097, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2435:7:5", + "src": "2435:7:4", "typeDescriptions": {} } }, - "id": 1175, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, @@ -2625,14 +2625,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2435:10:5", + "src": "2435:10:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2423:22:5", + "src": "2423:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2640,14 +2640,14 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1177, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2447:40:5", + "src": "2447:40:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" @@ -2666,7 +2666,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1170, + "id": 1095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2674,13 +2674,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2415:7:5", + "src": "2415:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1178, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -2689,27 +2689,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2415:73:5", + "src": "2415:73:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1179, + "id": 1104, "nodeType": "ExpressionStatement", - "src": "2415:73:5" + "src": "2415:73:4" }, { "expression": { "arguments": [ { - "id": 1181, + "id": 1106, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "2517:8:5", + "referencedDeclaration": 1090, + "src": "2517:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2723,18 +2723,18 @@ "typeString": "address" } ], - "id": 1180, + "id": 1105, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1205, - "src": "2498:18:5", + "referencedDeclaration": 1130, + "src": "2498:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1182, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -2743,63 +2743,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2498:28:5", + "src": "2498:28:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1183, + "id": 1108, "nodeType": "ExpressionStatement", - "src": "2498:28:5" + "src": "2498:28:4" } ] }, "documentation": { - "id": 1163, + "id": 1088, "nodeType": "StructuredDocumentation", - "src": "2192:138:5", + "src": "2192:138:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1185, + "id": 1110, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1168, + "id": 1093, "kind": "modifierInvocation", "modifierName": { - "id": 1167, + "id": 1092, "name": "onlyOwner", "nameLocations": [ - "2395:9:5" + "2395:9:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1125, - "src": "2395:9:5" + "referencedDeclaration": 1050, + "src": "2395:9:4" }, "nodeType": "ModifierInvocation", - "src": "2395:9:5" + "src": "2395:9:4" } ], "name": "transferOwnership", - "nameLocation": "2344:17:5", + "nameLocation": "2344:17:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1166, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1165, + "id": 1090, "mutability": "mutable", "name": "newOwner", - "nameLocation": "2370:8:5", + "nameLocation": "2370:8:4", "nodeType": "VariableDeclaration", - "scope": 1185, - "src": "2362:16:5", + "scope": 1110, + "src": "2362:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2807,10 +2807,10 @@ "typeString": "address" }, "typeName": { - "id": 1164, + "id": 1089, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2362:7:5", + "src": "2362:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2820,40 +2820,40 @@ "visibility": "internal" } ], - "src": "2361:18:5" + "src": "2361:18:4" }, "returnParameters": { - "id": 1169, + "id": 1094, "nodeType": "ParameterList", "parameters": [], - "src": "2405:0:5" + "src": "2405:0:4" }, - "scope": 1211, - "src": "2335:198:5", + "scope": 1136, + "src": "2335:198:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1204, + "id": 1129, "nodeType": "Block", - "src": "2750:124:5", + "src": "2750:124:4", "statements": [ { "assignments": [ - 1192 + 1117 ], "declarations": [ { "constant": false, - "id": 1192, + "id": 1117, "mutability": "mutable", "name": "oldOwner", - "nameLocation": "2768:8:5", + "nameLocation": "2768:8:4", "nodeType": "VariableDeclaration", - "scope": 1204, - "src": "2760:16:5", + "scope": 1129, + "src": "2760:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2861,10 +2861,10 @@ "typeString": "address" }, "typeName": { - "id": 1191, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2760:7:5", + "src": "2760:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2874,36 +2874,36 @@ "visibility": "internal" } ], - "id": 1194, + "id": 1119, "initialValue": { - "id": 1193, + "id": 1118, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "2779:6:5", + "referencedDeclaration": 1015, + "src": "2779:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2760:25:5" + "src": "2760:25:4" }, { "expression": { - "id": 1197, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1195, + "id": 1120, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "2795:6:5", + "referencedDeclaration": 1015, + "src": "2795:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2912,49 +2912,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1196, + "id": 1121, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, - "src": "2804:8:5", + "referencedDeclaration": 1113, + "src": "2804:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2795:17:5", + "src": "2795:17:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1198, + "id": 1123, "nodeType": "ExpressionStatement", - "src": "2795:17:5" + "src": "2795:17:4" }, { "eventCall": { "arguments": [ { - "id": 1200, + "id": 1125, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "2848:8:5", + "referencedDeclaration": 1117, + "src": "2848:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1201, + "id": 1126, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, - "src": "2858:8:5", + "referencedDeclaration": 1113, + "src": "2858:8:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2972,18 +2972,18 @@ "typeString": "address" } ], - "id": 1199, + "id": 1124, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2827:20:5", + "referencedDeclaration": 1021, + "src": "2827:20:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1202, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, @@ -2992,45 +2992,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2827:40:5", + "src": "2827:40:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1203, + "id": 1128, "nodeType": "EmitStatement", - "src": "2822:45:5" + "src": "2822:45:4" } ] }, "documentation": { - "id": 1186, + "id": 1111, "nodeType": "StructuredDocumentation", - "src": "2539:143:5", + "src": "2539:143:4", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, - "id": 1205, + "id": 1130, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", - "nameLocation": "2696:18:5", + "nameLocation": "2696:18:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1189, + "id": 1114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1188, + "id": 1113, "mutability": "mutable", "name": "newOwner", - "nameLocation": "2723:8:5", + "nameLocation": "2723:8:4", "nodeType": "VariableDeclaration", - "scope": 1205, - "src": "2715:16:5", + "scope": 1130, + "src": "2715:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3038,10 +3038,10 @@ "typeString": "address" }, "typeName": { - "id": 1187, + "id": 1112, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2715:7:5", + "src": "2715:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3051,16 +3051,16 @@ "visibility": "internal" } ], - "src": "2714:18:5" + "src": "2714:18:4" }, "returnParameters": { - "id": 1190, + "id": 1115, "nodeType": "ParameterList", "parameters": [], - "src": "2750:0:5" + "src": "2750:0:4" }, - "scope": 1211, - "src": "2687:187:5", + "scope": 1136, + "src": "2687:187:4", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" @@ -3068,18 +3068,18 @@ { "constant": false, "documentation": { - "id": 1206, + "id": 1131, "nodeType": "StructuredDocumentation", - "src": "2880:254:5", + "src": "2880:254:4", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1210, + "id": 1135, "mutability": "mutable", "name": "__gap", - "nameLocation": "3159:5:5", + "nameLocation": "3159:5:4", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3139:25:5", + "scope": 1136, + "src": "3139:25:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3088,26 +3088,26 @@ }, "typeName": { "baseType": { - "id": 1207, + "id": 1132, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:5", + "src": "3139:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1209, + "id": 1134, "length": { "hexValue": "3439", - "id": 1208, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:2:5", + "src": "3147:2:4", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -3115,7 +3115,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "3139:11:5", + "src": "3139:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -3124,12 +3124,12 @@ "visibility": "private" } ], - "scope": 1212, - "src": "729:2438:5", + "scope": 1137, + "src": "729:2438:4", "usedErrors": [] } ], - "src": "102:3066:5" + "src": "102:3066:4" }, "compiler": { "name": "solc", @@ -3137,5 +3137,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.262Z" + "updatedAt": "2024-07-04T18:51:17.141Z" } \ No newline at end of file diff --git a/build/contracts/PausableUpgradeable.json b/build/contracts/PausableUpgradeable.json index 2ddae33..cecf9d3 100644 --- a/build/contracts/PausableUpgradeable.json +++ b/build/contracts/PausableUpgradeable.json @@ -64,21 +64,21 @@ "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "PausableUpgradeable": [ - 1508 + 1433 ] }, - "id": 1509, + "id": 1434, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1382, + "id": 1307, "literals": [ "solidity", "^", @@ -86,38 +86,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "105:23:7" + "src": "105:23:6" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1383, + "id": 1308, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1509, - "sourceUnit": 1890, - "src": "130:41:7", + "scope": 1434, + "sourceUnit": 1815, + "src": "130:41:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1385, + "id": 1310, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1509, - "sourceUnit": 1381, - "src": "172:63:7", + "scope": 1434, + "sourceUnit": 1306, + "src": "172:63:6", "symbolAliases": [ { "foreign": { - "id": 1384, + "id": 1309, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "180:13:7", + "referencedDeclaration": 1305, + "src": "180:13:6", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -130,82 +130,82 @@ "baseContracts": [ { "baseName": { - "id": 1387, + "id": 1312, "name": "Initializable", "nameLocations": [ - "718:13:7" + "718:13:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "718:13:7" + "referencedDeclaration": 1305, + "src": "718:13:6" }, - "id": 1388, + "id": 1313, "nodeType": "InheritanceSpecifier", - "src": "718:13:7" + "src": "718:13:6" }, { "baseName": { - "id": 1389, + "id": 1314, "name": "ContextUpgradeable", "nameLocations": [ - "733:18:7" + "733:18:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1889, - "src": "733:18:7" + "referencedDeclaration": 1814, + "src": "733:18:6" }, - "id": 1390, + "id": 1315, "nodeType": "InheritanceSpecifier", - "src": "733:18:7" + "src": "733:18:6" } ], "canonicalName": "PausableUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1386, + "id": 1311, "nodeType": "StructuredDocumentation", - "src": "237:439:7", + "src": "237:439:6", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1508, + "id": 1433, "linearizedBaseContracts": [ - 1508, - 1889, - 1380 + 1433, + 1814, + 1305 ], "name": "PausableUpgradeable", - "nameLocation": "695:19:7", + "nameLocation": "695:19:6", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { - "id": 1391, + "id": 1316, "nodeType": "StructuredDocumentation", - "src": "758:73:7", + "src": "758:73:6", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1395, + "id": 1320, "name": "Paused", - "nameLocation": "842:6:7", + "nameLocation": "842:6:6", "nodeType": "EventDefinition", "parameters": { - "id": 1394, + "id": 1319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1393, + "id": 1318, "indexed": false, "mutability": "mutable", "name": "account", - "nameLocation": "857:7:7", + "nameLocation": "857:7:6", "nodeType": "VariableDeclaration", - "scope": 1395, - "src": "849:15:7", + "scope": 1320, + "src": "849:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -213,10 +213,10 @@ "typeString": "address" }, "typeName": { - "id": 1392, + "id": 1317, "name": "address", "nodeType": "ElementaryTypeName", - "src": "849:7:7", + "src": "849:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -226,37 +226,37 @@ "visibility": "internal" } ], - "src": "848:17:7" + "src": "848:17:6" }, - "src": "836:30:7" + "src": "836:30:6" }, { "anonymous": false, "documentation": { - "id": 1396, + "id": 1321, "nodeType": "StructuredDocumentation", - "src": "872:70:7", + "src": "872:70:6", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1400, + "id": 1325, "name": "Unpaused", - "nameLocation": "953:8:7", + "nameLocation": "953:8:6", "nodeType": "EventDefinition", "parameters": { - "id": 1399, + "id": 1324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1398, + "id": 1323, "indexed": false, "mutability": "mutable", "name": "account", - "nameLocation": "970:7:7", + "nameLocation": "970:7:6", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "962:15:7", + "scope": 1325, + "src": "962:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -264,10 +264,10 @@ "typeString": "address" }, "typeName": { - "id": 1397, + "id": 1322, "name": "address", "nodeType": "ElementaryTypeName", - "src": "962:7:7", + "src": "962:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -277,19 +277,19 @@ "visibility": "internal" } ], - "src": "961:17:7" + "src": "961:17:6" }, - "src": "947:32:7" + "src": "947:32:6" }, { "constant": false, - "id": 1402, + "id": 1327, "mutability": "mutable", "name": "_paused", - "nameLocation": "998:7:7", + "nameLocation": "998:7:6", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "985:20:7", + "scope": 1433, + "src": "985:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -297,10 +297,10 @@ "typeString": "bool" }, "typeName": { - "id": 1401, + "id": 1326, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "985:4:7", + "src": "985:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -310,27 +310,27 @@ }, { "body": { - "id": 1411, + "id": 1336, "nodeType": "Block", - "src": "1137:44:7", + "src": "1137:44:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1408, + "id": 1333, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "1147:25:7", + "referencedDeclaration": 1347, + "src": "1147:25:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1409, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, @@ -339,87 +339,87 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1147:27:7", + "src": "1147:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1410, + "id": 1335, "nodeType": "ExpressionStatement", - "src": "1147:27:7" + "src": "1147:27:6" } ] }, "documentation": { - "id": 1403, + "id": 1328, "nodeType": "StructuredDocumentation", - "src": "1012:67:7", + "src": "1012:67:6", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1412, + "id": 1337, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1406, + "id": 1331, "kind": "modifierInvocation", "modifierName": { - "id": 1405, + "id": 1330, "name": "onlyInitializing", "nameLocations": [ - "1120:16:7" + "1120:16:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1120:16:7" + "referencedDeclaration": 1250, + "src": "1120:16:6" }, "nodeType": "ModifierInvocation", - "src": "1120:16:7" + "src": "1120:16:6" } ], "name": "__Pausable_init", - "nameLocation": "1093:15:7", + "nameLocation": "1093:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1404, + "id": 1329, "nodeType": "ParameterList", "parameters": [], - "src": "1108:2:7" + "src": "1108:2:6" }, "returnParameters": { - "id": 1407, + "id": 1332, "nodeType": "ParameterList", "parameters": [], - "src": "1137:0:7" + "src": "1137:0:6" }, - "scope": 1508, - "src": "1084:97:7", + "scope": 1433, + "src": "1084:97:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1421, + "id": 1346, "nodeType": "Block", - "src": "1250:32:7", + "src": "1250:32:6", "statements": [ { "expression": { - "id": 1419, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1417, + "id": 1342, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "1260:7:7", + "referencedDeclaration": 1327, + "src": "1260:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -429,97 +429,97 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1418, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1270:5:7", + "src": "1270:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1260:15:7", + "src": "1260:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1420, + "id": 1345, "nodeType": "ExpressionStatement", - "src": "1260:15:7" + "src": "1260:15:6" } ] }, - "id": 1422, + "id": 1347, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1415, + "id": 1340, "kind": "modifierInvocation", "modifierName": { - "id": 1414, + "id": 1339, "name": "onlyInitializing", "nameLocations": [ - "1233:16:7" + "1233:16:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1233:16:7" + "referencedDeclaration": 1250, + "src": "1233:16:6" }, "nodeType": "ModifierInvocation", - "src": "1233:16:7" + "src": "1233:16:6" } ], "name": "__Pausable_init_unchained", - "nameLocation": "1196:25:7", + "nameLocation": "1196:25:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1413, + "id": 1338, "nodeType": "ParameterList", "parameters": [], - "src": "1221:2:7" + "src": "1221:2:6" }, "returnParameters": { - "id": 1416, + "id": 1341, "nodeType": "ParameterList", "parameters": [], - "src": "1250:0:7" + "src": "1250:0:6" }, - "scope": 1508, - "src": "1187:95:7", + "scope": 1433, + "src": "1187:95:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1429, + "id": 1354, "nodeType": "Block", - "src": "1493:47:7", + "src": "1493:47:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1425, + "id": 1350, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "1503:17:7", + "referencedDeclaration": 1384, + "src": "1503:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1426, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -528,67 +528,67 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1503:19:7", + "src": "1503:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1427, + "id": 1352, "nodeType": "ExpressionStatement", - "src": "1503:19:7" + "src": "1503:19:6" }, { - "id": 1428, + "id": 1353, "nodeType": "PlaceholderStatement", - "src": "1532:1:7" + "src": "1532:1:6" } ] }, "documentation": { - "id": 1423, + "id": 1348, "nodeType": "StructuredDocumentation", - "src": "1288:175:7", + "src": "1288:175:6", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1430, + "id": 1355, "name": "whenNotPaused", - "nameLocation": "1477:13:7", + "nameLocation": "1477:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1424, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "1490:2:7" + "src": "1490:2:6" }, - "src": "1468:72:7", + "src": "1468:72:6", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1437, + "id": 1362, "nodeType": "Block", - "src": "1740:44:7", + "src": "1740:44:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1433, + "id": 1358, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1750:14:7", + "referencedDeclaration": 1395, + "src": "1750:14:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1434, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -597,103 +597,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1750:16:7", + "src": "1750:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1435, + "id": 1360, "nodeType": "ExpressionStatement", - "src": "1750:16:7" + "src": "1750:16:6" }, { - "id": 1436, + "id": 1361, "nodeType": "PlaceholderStatement", - "src": "1776:1:7" + "src": "1776:1:6" } ] }, "documentation": { - "id": 1431, + "id": 1356, "nodeType": "StructuredDocumentation", - "src": "1546:167:7", + "src": "1546:167:6", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1438, + "id": 1363, "name": "whenPaused", - "nameLocation": "1727:10:7", + "nameLocation": "1727:10:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1432, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "1737:2:7" + "src": "1737:2:6" }, - "src": "1718:66:7", + "src": "1718:66:6", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1446, + "id": 1371, "nodeType": "Block", - "src": "1932:31:7", + "src": "1932:31:6", "statements": [ { "expression": { - "id": 1444, + "id": 1369, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "1949:7:7", + "referencedDeclaration": 1327, + "src": "1949:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1443, - "id": 1445, + "functionReturnParameters": 1368, + "id": 1370, "nodeType": "Return", - "src": "1942:14:7" + "src": "1942:14:6" } ] }, "documentation": { - "id": 1439, + "id": 1364, "nodeType": "StructuredDocumentation", - "src": "1790:84:7", + "src": "1790:84:6", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1447, + "id": 1372, "implemented": true, "kind": "function", "modifiers": [], "name": "paused", - "nameLocation": "1888:6:7", + "nameLocation": "1888:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1440, + "id": 1365, "nodeType": "ParameterList", "parameters": [], - "src": "1894:2:7" + "src": "1894:2:6" }, "returnParameters": { - "id": 1443, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1442, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "1926:4:7", + "scope": 1372, + "src": "1926:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -701,10 +701,10 @@ "typeString": "bool" }, "typeName": { - "id": 1441, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1926:4:7", + "src": "1926:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -713,25 +713,25 @@ "visibility": "internal" } ], - "src": "1925:6:7" + "src": "1925:6:6" }, - "scope": 1508, - "src": "1879:84:7", + "scope": 1433, + "src": "1879:84:6", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1458, + "id": 1383, "nodeType": "Block", - "src": "2082:55:7", + "src": "2082:55:6", "statements": [ { "expression": { "arguments": [ { - "id": 1454, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,23 +739,23 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2100:9:7", + "src": "2100:9:6", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1452, + "id": 1377, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "2101:6:7", + "referencedDeclaration": 1372, + "src": "2101:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1453, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -764,7 +764,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2101:8:7", + "src": "2101:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -778,14 +778,14 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1455, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2111:18:7", + "src": "2111:18:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "typeString": "literal_string \"Pausable: paused\"" @@ -804,7 +804,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1451, + "id": 1376, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -812,13 +812,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2092:7:7", + "src": "2092:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1456, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -827,55 +827,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2092:38:7", + "src": "2092:38:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1457, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "2092:38:7" + "src": "2092:38:6" } ] }, "documentation": { - "id": 1448, + "id": 1373, "nodeType": "StructuredDocumentation", - "src": "1969:57:7", + "src": "1969:57:6", "text": " @dev Throws if the contract is paused." }, - "id": 1459, + "id": 1384, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireNotPaused", - "nameLocation": "2040:17:7", + "nameLocation": "2040:17:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1449, + "id": 1374, "nodeType": "ParameterList", "parameters": [], - "src": "2057:2:7" + "src": "2057:2:6" }, "returnParameters": { - "id": 1450, + "id": 1375, "nodeType": "ParameterList", "parameters": [], - "src": "2082:0:7" + "src": "2082:0:6" }, - "scope": 1508, - "src": "2031:106:7", + "scope": 1433, + "src": "2031:106:6", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1469, + "id": 1394, "nodeType": "Block", - "src": "2257:58:7", + "src": "2257:58:6", "statements": [ { "expression": { @@ -884,18 +884,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1464, + "id": 1389, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "2275:6:7", + "referencedDeclaration": 1372, + "src": "2275:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1465, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -904,7 +904,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2275:8:7", + "src": "2275:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -913,14 +913,14 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1466, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2285:22:7", + "src": "2285:22:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "typeString": "literal_string \"Pausable: not paused\"" @@ -939,7 +939,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1463, + "id": 1388, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -947,13 +947,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2267:7:7", + "src": "2267:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1467, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": false, @@ -962,70 +962,70 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2267:41:7", + "src": "2267:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1468, + "id": 1393, "nodeType": "ExpressionStatement", - "src": "2267:41:7" + "src": "2267:41:6" } ] }, "documentation": { - "id": 1460, + "id": 1385, "nodeType": "StructuredDocumentation", - "src": "2143:61:7", + "src": "2143:61:6", "text": " @dev Throws if the contract is not paused." }, - "id": 1470, + "id": 1395, "implemented": true, "kind": "function", "modifiers": [], "name": "_requirePaused", - "nameLocation": "2218:14:7", + "nameLocation": "2218:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1461, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "2232:2:7" + "src": "2232:2:6" }, "returnParameters": { - "id": 1462, + "id": 1387, "nodeType": "ParameterList", "parameters": [], - "src": "2257:0:7" + "src": "2257:0:6" }, - "scope": 1508, - "src": "2209:106:7", + "scope": 1433, + "src": "2209:106:6", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1485, + "id": 1410, "nodeType": "Block", - "src": "2499:66:7", + "src": "2499:66:6", "statements": [ { "expression": { - "id": 1478, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1476, + "id": 1401, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "2509:7:7", + "referencedDeclaration": 1327, + "src": "2509:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1035,29 +1035,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1477, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2519:4:7", + "src": "2519:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2509:14:7", + "src": "2509:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1479, + "id": 1404, "nodeType": "ExpressionStatement", - "src": "2509:14:7" + "src": "2509:14:6" }, { "eventCall": { @@ -1066,18 +1066,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1481, + "id": 1406, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2545:10:7", + "referencedDeclaration": 1791, + "src": "2545:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1482, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -1086,7 +1086,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2545:12:7", + "src": "2545:12:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1101,18 +1101,18 @@ "typeString": "address" } ], - "id": 1480, + "id": 1405, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2538:6:7", + "referencedDeclaration": 1320, + "src": "2538:6:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1483, + "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, @@ -1121,87 +1121,87 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2538:20:7", + "src": "2538:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1484, + "id": 1409, "nodeType": "EmitStatement", - "src": "2533:25:7" + "src": "2533:25:6" } ] }, "documentation": { - "id": 1471, + "id": 1396, "nodeType": "StructuredDocumentation", - "src": "2321:124:7", + "src": "2321:124:6", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1486, + "id": 1411, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1474, + "id": 1399, "kind": "modifierInvocation", "modifierName": { - "id": 1473, + "id": 1398, "name": "whenNotPaused", "nameLocations": [ - "2485:13:7" + "2485:13:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1430, - "src": "2485:13:7" + "referencedDeclaration": 1355, + "src": "2485:13:6" }, "nodeType": "ModifierInvocation", - "src": "2485:13:7" + "src": "2485:13:6" } ], "name": "_pause", - "nameLocation": "2459:6:7", + "nameLocation": "2459:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1472, + "id": 1397, "nodeType": "ParameterList", "parameters": [], - "src": "2465:2:7" + "src": "2465:2:6" }, "returnParameters": { - "id": 1475, + "id": 1400, "nodeType": "ParameterList", "parameters": [], - "src": "2499:0:7" + "src": "2499:0:6" }, - "scope": 1508, - "src": "2450:115:7", + "scope": 1433, + "src": "2450:115:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1501, + "id": 1426, "nodeType": "Block", - "src": "2745:69:7", + "src": "2745:69:6", "statements": [ { "expression": { - "id": 1494, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1492, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "2755:7:7", + "referencedDeclaration": 1327, + "src": "2755:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1211,29 +1211,29 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1493, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2765:5:7", + "src": "2765:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2755:15:7", + "src": "2755:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1495, + "id": 1420, "nodeType": "ExpressionStatement", - "src": "2755:15:7" + "src": "2755:15:6" }, { "eventCall": { @@ -1242,18 +1242,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1497, + "id": 1422, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2794:10:7", + "referencedDeclaration": 1791, + "src": "2794:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1498, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, @@ -1262,7 +1262,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2794:12:7", + "src": "2794:12:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1277,18 +1277,18 @@ "typeString": "address" } ], - "id": 1496, + "id": 1421, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "2785:8:7", + "referencedDeclaration": 1325, + "src": "2785:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1499, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": false, @@ -1297,63 +1297,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2785:22:7", + "src": "2785:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1500, + "id": 1425, "nodeType": "EmitStatement", - "src": "2780:27:7" + "src": "2780:27:6" } ] }, "documentation": { - "id": 1487, + "id": 1412, "nodeType": "StructuredDocumentation", - "src": "2571:121:7", + "src": "2571:121:6", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1502, + "id": 1427, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1490, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1489, + "id": 1414, "name": "whenPaused", "nameLocations": [ - "2734:10:7" + "2734:10:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1438, - "src": "2734:10:7" + "referencedDeclaration": 1363, + "src": "2734:10:6" }, "nodeType": "ModifierInvocation", - "src": "2734:10:7" + "src": "2734:10:6" } ], "name": "_unpause", - "nameLocation": "2706:8:7", + "nameLocation": "2706:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1488, + "id": 1413, "nodeType": "ParameterList", "parameters": [], - "src": "2714:2:7" + "src": "2714:2:6" }, "returnParameters": { - "id": 1491, + "id": 1416, "nodeType": "ParameterList", "parameters": [], - "src": "2745:0:7" + "src": "2745:0:6" }, - "scope": 1508, - "src": "2697:117:7", + "scope": 1433, + "src": "2697:117:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" @@ -1361,18 +1361,18 @@ { "constant": false, "documentation": { - "id": 1503, + "id": 1428, "nodeType": "StructuredDocumentation", - "src": "2820:254:7", + "src": "2820:254:6", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1507, + "id": 1432, "mutability": "mutable", "name": "__gap", - "nameLocation": "3099:5:7", + "nameLocation": "3099:5:6", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "3079:25:7", + "scope": 1433, + "src": "3079:25:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1381,26 +1381,26 @@ }, "typeName": { "baseType": { - "id": 1504, + "id": 1429, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3079:7:7", + "src": "3079:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1506, + "id": 1431, "length": { "hexValue": "3439", - "id": 1505, + "id": 1430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3087:2:7", + "src": "3087:2:6", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -1408,7 +1408,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "3079:11:7", + "src": "3079:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -1417,32 +1417,32 @@ "visibility": "private" } ], - "scope": 1509, - "src": "677:2430:7", + "scope": 1434, + "src": "677:2430:6", "usedErrors": [] } ], - "src": "105:3003:7" + "src": "105:3003:6" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol", "exportedSymbols": { "ContextUpgradeable": [ - 1889 + 1814 ], "Initializable": [ - 1380 + 1305 ], "PausableUpgradeable": [ - 1508 + 1433 ] }, - "id": 1509, + "id": 1434, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1382, + "id": 1307, "literals": [ "solidity", "^", @@ -1450,38 +1450,38 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "105:23:7" + "src": "105:23:6" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", - "id": 1383, + "id": 1308, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1509, - "sourceUnit": 1890, - "src": "130:41:7", + "scope": 1434, + "sourceUnit": 1815, + "src": "130:41:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", - "id": 1385, + "id": 1310, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1509, - "sourceUnit": 1381, - "src": "172:63:7", + "scope": 1434, + "sourceUnit": 1306, + "src": "172:63:6", "symbolAliases": [ { "foreign": { - "id": 1384, + "id": 1309, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "180:13:7", + "referencedDeclaration": 1305, + "src": "180:13:6", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1494,82 +1494,82 @@ "baseContracts": [ { "baseName": { - "id": 1387, + "id": 1312, "name": "Initializable", "nameLocations": [ - "718:13:7" + "718:13:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1380, - "src": "718:13:7" + "referencedDeclaration": 1305, + "src": "718:13:6" }, - "id": 1388, + "id": 1313, "nodeType": "InheritanceSpecifier", - "src": "718:13:7" + "src": "718:13:6" }, { "baseName": { - "id": 1389, + "id": 1314, "name": "ContextUpgradeable", "nameLocations": [ - "733:18:7" + "733:18:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1889, - "src": "733:18:7" + "referencedDeclaration": 1814, + "src": "733:18:6" }, - "id": 1390, + "id": 1315, "nodeType": "InheritanceSpecifier", - "src": "733:18:7" + "src": "733:18:6" } ], "canonicalName": "PausableUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 1386, + "id": 1311, "nodeType": "StructuredDocumentation", - "src": "237:439:7", + "src": "237:439:6", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 1508, + "id": 1433, "linearizedBaseContracts": [ - 1508, - 1889, - 1380 + 1433, + 1814, + 1305 ], "name": "PausableUpgradeable", - "nameLocation": "695:19:7", + "nameLocation": "695:19:6", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { - "id": 1391, + "id": 1316, "nodeType": "StructuredDocumentation", - "src": "758:73:7", + "src": "758:73:6", "text": " @dev Emitted when the pause is triggered by `account`." }, "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 1395, + "id": 1320, "name": "Paused", - "nameLocation": "842:6:7", + "nameLocation": "842:6:6", "nodeType": "EventDefinition", "parameters": { - "id": 1394, + "id": 1319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1393, + "id": 1318, "indexed": false, "mutability": "mutable", "name": "account", - "nameLocation": "857:7:7", + "nameLocation": "857:7:6", "nodeType": "VariableDeclaration", - "scope": 1395, - "src": "849:15:7", + "scope": 1320, + "src": "849:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +1577,10 @@ "typeString": "address" }, "typeName": { - "id": 1392, + "id": 1317, "name": "address", "nodeType": "ElementaryTypeName", - "src": "849:7:7", + "src": "849:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1590,37 +1590,37 @@ "visibility": "internal" } ], - "src": "848:17:7" + "src": "848:17:6" }, - "src": "836:30:7" + "src": "836:30:6" }, { "anonymous": false, "documentation": { - "id": 1396, + "id": 1321, "nodeType": "StructuredDocumentation", - "src": "872:70:7", + "src": "872:70:6", "text": " @dev Emitted when the pause is lifted by `account`." }, "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 1400, + "id": 1325, "name": "Unpaused", - "nameLocation": "953:8:7", + "nameLocation": "953:8:6", "nodeType": "EventDefinition", "parameters": { - "id": 1399, + "id": 1324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1398, + "id": 1323, "indexed": false, "mutability": "mutable", "name": "account", - "nameLocation": "970:7:7", + "nameLocation": "970:7:6", "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "962:15:7", + "scope": 1325, + "src": "962:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1628,10 +1628,10 @@ "typeString": "address" }, "typeName": { - "id": 1397, + "id": 1322, "name": "address", "nodeType": "ElementaryTypeName", - "src": "962:7:7", + "src": "962:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1641,19 +1641,19 @@ "visibility": "internal" } ], - "src": "961:17:7" + "src": "961:17:6" }, - "src": "947:32:7" + "src": "947:32:6" }, { "constant": false, - "id": 1402, + "id": 1327, "mutability": "mutable", "name": "_paused", - "nameLocation": "998:7:7", + "nameLocation": "998:7:6", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "985:20:7", + "scope": 1433, + "src": "985:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1661,10 +1661,10 @@ "typeString": "bool" }, "typeName": { - "id": 1401, + "id": 1326, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "985:4:7", + "src": "985:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1674,27 +1674,27 @@ }, { "body": { - "id": 1411, + "id": 1336, "nodeType": "Block", - "src": "1137:44:7", + "src": "1137:44:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1408, + "id": 1333, "name": "__Pausable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "1147:25:7", + "referencedDeclaration": 1347, + "src": "1147:25:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1409, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, @@ -1703,87 +1703,87 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1147:27:7", + "src": "1147:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1410, + "id": 1335, "nodeType": "ExpressionStatement", - "src": "1147:27:7" + "src": "1147:27:6" } ] }, "documentation": { - "id": 1403, + "id": 1328, "nodeType": "StructuredDocumentation", - "src": "1012:67:7", + "src": "1012:67:6", "text": " @dev Initializes the contract in unpaused state." }, - "id": 1412, + "id": 1337, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1406, + "id": 1331, "kind": "modifierInvocation", "modifierName": { - "id": 1405, + "id": 1330, "name": "onlyInitializing", "nameLocations": [ - "1120:16:7" + "1120:16:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1120:16:7" + "referencedDeclaration": 1250, + "src": "1120:16:6" }, "nodeType": "ModifierInvocation", - "src": "1120:16:7" + "src": "1120:16:6" } ], "name": "__Pausable_init", - "nameLocation": "1093:15:7", + "nameLocation": "1093:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1404, + "id": 1329, "nodeType": "ParameterList", "parameters": [], - "src": "1108:2:7" + "src": "1108:2:6" }, "returnParameters": { - "id": 1407, + "id": 1332, "nodeType": "ParameterList", "parameters": [], - "src": "1137:0:7" + "src": "1137:0:6" }, - "scope": 1508, - "src": "1084:97:7", + "scope": 1433, + "src": "1084:97:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1421, + "id": 1346, "nodeType": "Block", - "src": "1250:32:7", + "src": "1250:32:6", "statements": [ { "expression": { - "id": 1419, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1417, + "id": 1342, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "1260:7:7", + "referencedDeclaration": 1327, + "src": "1260:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1793,97 +1793,97 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1418, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1270:5:7", + "src": "1270:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1260:15:7", + "src": "1260:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1420, + "id": 1345, "nodeType": "ExpressionStatement", - "src": "1260:15:7" + "src": "1260:15:6" } ] }, - "id": 1422, + "id": 1347, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1415, + "id": 1340, "kind": "modifierInvocation", "modifierName": { - "id": 1414, + "id": 1339, "name": "onlyInitializing", "nameLocations": [ - "1233:16:7" + "1233:16:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1325, - "src": "1233:16:7" + "referencedDeclaration": 1250, + "src": "1233:16:6" }, "nodeType": "ModifierInvocation", - "src": "1233:16:7" + "src": "1233:16:6" } ], "name": "__Pausable_init_unchained", - "nameLocation": "1196:25:7", + "nameLocation": "1196:25:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1413, + "id": 1338, "nodeType": "ParameterList", "parameters": [], - "src": "1221:2:7" + "src": "1221:2:6" }, "returnParameters": { - "id": 1416, + "id": 1341, "nodeType": "ParameterList", "parameters": [], - "src": "1250:0:7" + "src": "1250:0:6" }, - "scope": 1508, - "src": "1187:95:7", + "scope": 1433, + "src": "1187:95:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1429, + "id": 1354, "nodeType": "Block", - "src": "1493:47:7", + "src": "1493:47:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1425, + "id": 1350, "name": "_requireNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "1503:17:7", + "referencedDeclaration": 1384, + "src": "1503:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1426, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -1892,67 +1892,67 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1503:19:7", + "src": "1503:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1427, + "id": 1352, "nodeType": "ExpressionStatement", - "src": "1503:19:7" + "src": "1503:19:6" }, { - "id": 1428, + "id": 1353, "nodeType": "PlaceholderStatement", - "src": "1532:1:7" + "src": "1532:1:6" } ] }, "documentation": { - "id": 1423, + "id": 1348, "nodeType": "StructuredDocumentation", - "src": "1288:175:7", + "src": "1288:175:6", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 1430, + "id": 1355, "name": "whenNotPaused", - "nameLocation": "1477:13:7", + "nameLocation": "1477:13:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1424, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "1490:2:7" + "src": "1490:2:6" }, - "src": "1468:72:7", + "src": "1468:72:6", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1437, + "id": 1362, "nodeType": "Block", - "src": "1740:44:7", + "src": "1740:44:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1433, + "id": 1358, "name": "_requirePaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1750:14:7", + "referencedDeclaration": 1395, + "src": "1750:14:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, - "id": 1434, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -1961,103 +1961,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1750:16:7", + "src": "1750:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1435, + "id": 1360, "nodeType": "ExpressionStatement", - "src": "1750:16:7" + "src": "1750:16:6" }, { - "id": 1436, + "id": 1361, "nodeType": "PlaceholderStatement", - "src": "1776:1:7" + "src": "1776:1:6" } ] }, "documentation": { - "id": 1431, + "id": 1356, "nodeType": "StructuredDocumentation", - "src": "1546:167:7", + "src": "1546:167:6", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 1438, + "id": 1363, "name": "whenPaused", - "nameLocation": "1727:10:7", + "nameLocation": "1727:10:6", "nodeType": "ModifierDefinition", "parameters": { - "id": 1432, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "1737:2:7" + "src": "1737:2:6" }, - "src": "1718:66:7", + "src": "1718:66:6", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1446, + "id": 1371, "nodeType": "Block", - "src": "1932:31:7", + "src": "1932:31:6", "statements": [ { "expression": { - "id": 1444, + "id": 1369, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "1949:7:7", + "referencedDeclaration": 1327, + "src": "1949:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1443, - "id": 1445, + "functionReturnParameters": 1368, + "id": 1370, "nodeType": "Return", - "src": "1942:14:7" + "src": "1942:14:6" } ] }, "documentation": { - "id": 1439, + "id": 1364, "nodeType": "StructuredDocumentation", - "src": "1790:84:7", + "src": "1790:84:6", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 1447, + "id": 1372, "implemented": true, "kind": "function", "modifiers": [], "name": "paused", - "nameLocation": "1888:6:7", + "nameLocation": "1888:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1440, + "id": 1365, "nodeType": "ParameterList", "parameters": [], - "src": "1894:2:7" + "src": "1894:2:6" }, "returnParameters": { - "id": 1443, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1442, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "1926:4:7", + "scope": 1372, + "src": "1926:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2065,10 +2065,10 @@ "typeString": "bool" }, "typeName": { - "id": 1441, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1926:4:7", + "src": "1926:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2077,25 +2077,25 @@ "visibility": "internal" } ], - "src": "1925:6:7" + "src": "1925:6:6" }, - "scope": 1508, - "src": "1879:84:7", + "scope": 1433, + "src": "1879:84:6", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1458, + "id": 1383, "nodeType": "Block", - "src": "2082:55:7", + "src": "2082:55:6", "statements": [ { "expression": { "arguments": [ { - "id": 1454, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -2103,23 +2103,23 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2100:9:7", + "src": "2100:9:6", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1452, + "id": 1377, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "2101:6:7", + "referencedDeclaration": 1372, + "src": "2101:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1453, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -2128,7 +2128,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2101:8:7", + "src": "2101:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2142,14 +2142,14 @@ }, { "hexValue": "5061757361626c653a20706175736564", - "id": 1455, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2111:18:7", + "src": "2111:18:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "typeString": "literal_string \"Pausable: paused\"" @@ -2168,7 +2168,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 1451, + "id": 1376, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2176,13 +2176,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2092:7:7", + "src": "2092:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1456, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -2191,55 +2191,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2092:38:7", + "src": "2092:38:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1457, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "2092:38:7" + "src": "2092:38:6" } ] }, "documentation": { - "id": 1448, + "id": 1373, "nodeType": "StructuredDocumentation", - "src": "1969:57:7", + "src": "1969:57:6", "text": " @dev Throws if the contract is paused." }, - "id": 1459, + "id": 1384, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireNotPaused", - "nameLocation": "2040:17:7", + "nameLocation": "2040:17:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1449, + "id": 1374, "nodeType": "ParameterList", "parameters": [], - "src": "2057:2:7" + "src": "2057:2:6" }, "returnParameters": { - "id": 1450, + "id": 1375, "nodeType": "ParameterList", "parameters": [], - "src": "2082:0:7" + "src": "2082:0:6" }, - "scope": 1508, - "src": "2031:106:7", + "scope": 1433, + "src": "2031:106:6", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1469, + "id": 1394, "nodeType": "Block", - "src": "2257:58:7", + "src": "2257:58:6", "statements": [ { "expression": { @@ -2248,18 +2248,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1464, + "id": 1389, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "2275:6:7", + "referencedDeclaration": 1372, + "src": "2275:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1465, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -2268,7 +2268,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2275:8:7", + "src": "2275:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2277,14 +2277,14 @@ }, { "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 1466, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2285:22:7", + "src": "2285:22:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "typeString": "literal_string \"Pausable: not paused\"" @@ -2303,7 +2303,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 1463, + "id": 1388, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2311,13 +2311,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2267:7:7", + "src": "2267:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1467, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": false, @@ -2326,70 +2326,70 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2267:41:7", + "src": "2267:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1468, + "id": 1393, "nodeType": "ExpressionStatement", - "src": "2267:41:7" + "src": "2267:41:6" } ] }, "documentation": { - "id": 1460, + "id": 1385, "nodeType": "StructuredDocumentation", - "src": "2143:61:7", + "src": "2143:61:6", "text": " @dev Throws if the contract is not paused." }, - "id": 1470, + "id": 1395, "implemented": true, "kind": "function", "modifiers": [], "name": "_requirePaused", - "nameLocation": "2218:14:7", + "nameLocation": "2218:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1461, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "2232:2:7" + "src": "2232:2:6" }, "returnParameters": { - "id": 1462, + "id": 1387, "nodeType": "ParameterList", "parameters": [], - "src": "2257:0:7" + "src": "2257:0:6" }, - "scope": 1508, - "src": "2209:106:7", + "scope": 1433, + "src": "2209:106:6", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1485, + "id": 1410, "nodeType": "Block", - "src": "2499:66:7", + "src": "2499:66:6", "statements": [ { "expression": { - "id": 1478, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1476, + "id": 1401, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "2509:7:7", + "referencedDeclaration": 1327, + "src": "2509:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2399,29 +2399,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1477, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2519:4:7", + "src": "2519:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2509:14:7", + "src": "2509:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1479, + "id": 1404, "nodeType": "ExpressionStatement", - "src": "2509:14:7" + "src": "2509:14:6" }, { "eventCall": { @@ -2430,18 +2430,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1481, + "id": 1406, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2545:10:7", + "referencedDeclaration": 1791, + "src": "2545:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1482, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -2450,7 +2450,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2545:12:7", + "src": "2545:12:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2465,18 +2465,18 @@ "typeString": "address" } ], - "id": 1480, + "id": 1405, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2538:6:7", + "referencedDeclaration": 1320, + "src": "2538:6:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1483, + "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, @@ -2485,87 +2485,87 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2538:20:7", + "src": "2538:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1484, + "id": 1409, "nodeType": "EmitStatement", - "src": "2533:25:7" + "src": "2533:25:6" } ] }, "documentation": { - "id": 1471, + "id": 1396, "nodeType": "StructuredDocumentation", - "src": "2321:124:7", + "src": "2321:124:6", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 1486, + "id": 1411, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1474, + "id": 1399, "kind": "modifierInvocation", "modifierName": { - "id": 1473, + "id": 1398, "name": "whenNotPaused", "nameLocations": [ - "2485:13:7" + "2485:13:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1430, - "src": "2485:13:7" + "referencedDeclaration": 1355, + "src": "2485:13:6" }, "nodeType": "ModifierInvocation", - "src": "2485:13:7" + "src": "2485:13:6" } ], "name": "_pause", - "nameLocation": "2459:6:7", + "nameLocation": "2459:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1472, + "id": 1397, "nodeType": "ParameterList", "parameters": [], - "src": "2465:2:7" + "src": "2465:2:6" }, "returnParameters": { - "id": 1475, + "id": 1400, "nodeType": "ParameterList", "parameters": [], - "src": "2499:0:7" + "src": "2499:0:6" }, - "scope": 1508, - "src": "2450:115:7", + "scope": 1433, + "src": "2450:115:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { - "id": 1501, + "id": 1426, "nodeType": "Block", - "src": "2745:69:7", + "src": "2745:69:6", "statements": [ { "expression": { - "id": 1494, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1492, + "id": 1417, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "2755:7:7", + "referencedDeclaration": 1327, + "src": "2755:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2575,29 +2575,29 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 1493, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2765:5:7", + "src": "2765:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2755:15:7", + "src": "2755:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1495, + "id": 1420, "nodeType": "ExpressionStatement", - "src": "2755:15:7" + "src": "2755:15:6" }, { "eventCall": { @@ -2606,18 +2606,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1497, + "id": 1422, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "2794:10:7", + "referencedDeclaration": 1791, + "src": "2794:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1498, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, @@ -2626,7 +2626,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2794:12:7", + "src": "2794:12:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2641,18 +2641,18 @@ "typeString": "address" } ], - "id": 1496, + "id": 1421, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "2785:8:7", + "referencedDeclaration": 1325, + "src": "2785:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1499, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": false, @@ -2661,63 +2661,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2785:22:7", + "src": "2785:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1500, + "id": 1425, "nodeType": "EmitStatement", - "src": "2780:27:7" + "src": "2780:27:6" } ] }, "documentation": { - "id": 1487, + "id": 1412, "nodeType": "StructuredDocumentation", - "src": "2571:121:7", + "src": "2571:121:6", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 1502, + "id": 1427, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1490, + "id": 1415, "kind": "modifierInvocation", "modifierName": { - "id": 1489, + "id": 1414, "name": "whenPaused", "nameLocations": [ - "2734:10:7" + "2734:10:6" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1438, - "src": "2734:10:7" + "referencedDeclaration": 1363, + "src": "2734:10:6" }, "nodeType": "ModifierInvocation", - "src": "2734:10:7" + "src": "2734:10:6" } ], "name": "_unpause", - "nameLocation": "2706:8:7", + "nameLocation": "2706:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1488, + "id": 1413, "nodeType": "ParameterList", "parameters": [], - "src": "2714:2:7" + "src": "2714:2:6" }, "returnParameters": { - "id": 1491, + "id": 1416, "nodeType": "ParameterList", "parameters": [], - "src": "2745:0:7" + "src": "2745:0:6" }, - "scope": 1508, - "src": "2697:117:7", + "scope": 1433, + "src": "2697:117:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" @@ -2725,18 +2725,18 @@ { "constant": false, "documentation": { - "id": 1503, + "id": 1428, "nodeType": "StructuredDocumentation", - "src": "2820:254:7", + "src": "2820:254:6", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" }, - "id": 1507, + "id": 1432, "mutability": "mutable", "name": "__gap", - "nameLocation": "3099:5:7", + "nameLocation": "3099:5:6", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "3079:25:7", + "scope": 1433, + "src": "3079:25:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2745,26 +2745,26 @@ }, "typeName": { "baseType": { - "id": 1504, + "id": 1429, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3079:7:7", + "src": "3079:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1506, + "id": 1431, "length": { "hexValue": "3439", - "id": 1505, + "id": 1430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3087:2:7", + "src": "3087:2:6", "typeDescriptions": { "typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49" @@ -2772,7 +2772,7 @@ "value": "49" }, "nodeType": "ArrayTypeName", - "src": "3079:11:7", + "src": "3079:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]" @@ -2781,12 +2781,12 @@ "visibility": "private" } ], - "scope": 1509, - "src": "677:2430:7", + "scope": 1434, + "src": "677:2430:6", "usedErrors": [] } ], - "src": "105:3003:7" + "src": "105:3003:6" }, "compiler": { "name": "solc", @@ -2794,5 +2794,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2024-06-27T12:24:25.261Z" + "updatedAt": "2024-07-04T18:51:17.142Z" } \ No newline at end of file diff --git a/migrations/2_upgrade.js b/migrations/2_upgrade.js index 6b7b3e2..b850e17 100644 --- a/migrations/2_upgrade.js +++ b/migrations/2_upgrade.js @@ -4,8 +4,9 @@ const ProxyAdmin = artifacts.require( ); const Gateway = artifacts.require("Gateway"); -const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; -// Shasta: "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; +// const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; +// Shasta: +const proxyContractAddress = "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; module.exports = async function (deployer) { try { diff --git a/scripts/forceImport.ts b/scripts/forceImport.ts new file mode 100644 index 0000000..f20bdc4 --- /dev/null +++ b/scripts/forceImport.ts @@ -0,0 +1,33 @@ +// Import necessary libraries +import { ethers, upgrades } from "hardhat"; + +async function main() { + // Define the address of the existing implementation contract + const existingContractAddress: string = + "0x5E7eC39915F6CD48829d06648F6682765846602a"; + + // Define the implementation contract factory + const deployedImplementation = await ethers.getContractFactory("Gateway"); + + // Optionally, specify the kind of proxy + const opts = { + kind: 'uups' as const, // or 'transparent', 'beacon' + }; + + // Forcefully import the existing contract + const importedContract = await upgrades.forceImport( + existingContractAddress, + deployedImplementation, + opts + ); + + console.log("Contract successfully imported at address:", importedContract.address); + +} + +main() + .then(() => process.exit(0)) + .catch(error => { + console.error(error); + process.exit; + }); \ No newline at end of file diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index e579fe0..46c004c 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -1,10 +1,16 @@ import { ethers, upgrades, network } from "hardhat"; import { NETWORKS } from "./config"; import hre from "hardhat"; +import { confirmContinue } from "./utils"; const networkConfig = NETWORKS[network.config.chainId as keyof typeof NETWORKS]; async function main() { + await confirmContinue({ + contract: "Gateway", + network: network.name, + chainId: network.config.chainId, + }); try { const [signer] = await ethers.getSigners(); // Get the signer (the account performing the upgrade) const balance = await signer.getBalance(); // Get the balance of the signer's address From 9e8bd177503f9363c7a7c7d3c656fd226961f31c Mon Sep 17 00:00:00 2001 From: onahprosperity Date: Thu, 4 Jul 2024 20:15:30 +0100 Subject: [PATCH 18/25] chore: upgrade across all chain aside scroll --- migrations/2_upgrade.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations/2_upgrade.js b/migrations/2_upgrade.js index b850e17..44ae3a0 100644 --- a/migrations/2_upgrade.js +++ b/migrations/2_upgrade.js @@ -4,9 +4,9 @@ const ProxyAdmin = artifacts.require( ); const Gateway = artifacts.require("Gateway"); -// const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; +const proxyContractAddress = "THyFP5ST9YyLZn6EzjKjFhZti6aKPgEXNU"; // Shasta: -const proxyContractAddress = "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; +// const proxyContractAddress = "TYA8urq7nkN2yU7rJqAgwDShCusDZrrsxZ"; module.exports = async function (deployer) { try { From 3c598ee90ff0bcaedaf5c9b67b3415b59a2f5d96 Mon Sep 17 00:00:00 2001 From: Prosper Date: Fri, 27 Sep 2024 15:34:53 +0100 Subject: [PATCH 19/25] refractor: gateway contract to transfer protocol fee only if it is greater than zero and emit refund address instead of sender --- contracts/Gateway.sol | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/contracts/Gateway.sol b/contracts/Gateway.sol index c1c5801..c40741c 100644 --- a/contracts/Gateway.sol +++ b/contracts/Gateway.sol @@ -104,7 +104,7 @@ contract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable { // emit order created event emit OrderCreated( - order[orderId].sender, + _refundAddress, _token, order[orderId].amount, _protocolFee, @@ -203,8 +203,10 @@ contract Gateway is IGateway, GatewaySettingManager, PausableUpgradeable { require(!order[_orderId].isRefunded, 'OrderRefunded'); require(order[_orderId].protocolFee >= _fee, 'FeeExceedsProtocolFee'); - // transfer refund fee to the treasury - IERC20(order[_orderId].token).transfer(treasuryAddress, _fee); + if (order[_orderId].protocolFee > 0) { + // transfer protocol fee + IERC20(order[_orderId].token).transfer(treasuryAddress, _fee); + } // reset state values order[_orderId].isRefunded = true; From b25cf2d0015afccf3359fbda4e3cbc2ae55412e2 Mon Sep 17 00:00:00 2001 From: Prosper Date: Sat, 28 Sep 2024 14:20:37 +0100 Subject: [PATCH 20/25] chore: update deployment and readme to support changes that added refund address to event and check for 0 during refund --- README.md | 6 ++--- scripts/deploy.ts | 29 +++++++++++++++++++++++- test/gateway/gateway.createorder.test.js | 2 +- test/gateway/gateway.settleOrder.test.js | 4 ++-- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 977296a..ccccd23 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x46D259eF5B3E704F968cA2E50DAa800b9e674634 + 0xd2d97002ec87ba57fcf3f6b510f20d5a80a6c33a @@ -161,7 +161,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x0a7aA9F8eab1665DD905288669447b66082E4B17 + 0xd2d97002ec87ba57fcf3f6b510f20d5a80a6c33a @@ -173,7 +173,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x3610bF11EBF9749ECd866ad96756C5eD65B237D5 + 0xd2d97002ec87ba57fcf3f6b510f20d5a80a6c33a diff --git a/scripts/deploy.ts b/scripts/deploy.ts index 6b6db0b..00f316d 100644 --- a/scripts/deploy.ts +++ b/scripts/deploy.ts @@ -1,10 +1,11 @@ import { ethers, upgrades, network } from "hardhat"; import { confirmContinue, assertEnvironment } from "./utils"; +import hre from "hardhat"; assertEnvironment(); // Function declarations -async function deployGateway(): Promise { +async function deployGatewayProxy(): Promise { await confirmContinue({ contract: "Gateway", network: network.name, @@ -26,6 +27,32 @@ async function deployGateway(): Promise { return tx; } +async function deployGateway(): Promise { + await confirmContinue({ + contract: "Gateway", + network: network.name, + chainId: network.config.chainId, + }); + + const factory = await ethers.getContractFactory("Gateway"); + const contract = await factory.deploy(); + + const tx = await contract.deployTransaction.wait(); + + console.log("✅ Deployed Gateway: ", tx.transactionHash); + + // const implementationAddress = await contract.implementation(); + await hre.run("verify:verify", { + address: contract.address, + }); + + console.log(`Proxy Contract Address: ${contract.address}`); + // console.log("Implementation Contract Address:", implementationAddress); + + return tx; +} + + async function main() { // Deploy Gateway await deployGateway(); diff --git a/test/gateway/gateway.createorder.test.js b/test/gateway/gateway.createorder.test.js index 176a1d7..3ca52af 100644 --- a/test/gateway/gateway.createorder.test.js +++ b/test/gateway/gateway.createorder.test.js @@ -126,7 +126,7 @@ describe("Gateway create order", function () { ) .to.emit(this.gateway, Events.Gateway.OrderCreated) .withArgs( - this.sender.address, + this.alice.address, this.mockUSDT.address, BigNumber.from(this.orderAmount), this.protocolFee, diff --git a/test/gateway/gateway.settleOrder.test.js b/test/gateway/gateway.settleOrder.test.js index 309e538..f40a536 100644 --- a/test/gateway/gateway.settleOrder.test.js +++ b/test/gateway/gateway.settleOrder.test.js @@ -154,7 +154,7 @@ describe("Gateway settle order", function () { ) .to.emit(gateway, Events.Gateway.OrderCreated) .withArgs( - this.sender.address, + this.alice.address, mockUSDT.address, this.orderAmount, this.protocolFee, @@ -261,7 +261,7 @@ describe("Gateway settle order", function () { ) .to.emit(gateway, Events.Gateway.OrderCreated) .withArgs( - this.sender.address, + this.alice.address, mockUSDT.address, this.orderAmount, this.protocolFee, From ff8bfcc9ceb937bc24a07c22033cca1b327b3d98 Mon Sep 17 00:00:00 2001 From: Prosper Date: Sat, 28 Sep 2024 20:34:55 +0100 Subject: [PATCH 21/25] chore: update gateway contract addresses in README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ccccd23..40e8b24 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x647daC4807Eb82E67CE3bca930D6202190831B4a + 0x8fd1f78d88dd008e557273b5cd517487c2a9a7de @@ -197,7 +197,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x847dfdAa218F9137229CF8424378871A1DA8f625 + 0xd2d97002Ec87ba57FCf3f6b510f20d5A80A6C33a Gateway Admin @@ -213,7 +213,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0x5E7eC39915F6CD48829d06648F6682765846602a + 0xd2d97002ec87ba57fcf3f6b510f20d5a80a6c33a Gateway Admin From ac7364d3bd1ebf28b605ed56cad603d590749ac1 Mon Sep 17 00:00:00 2001 From: Prosper Date: Sat, 28 Sep 2024 21:11:15 +0100 Subject: [PATCH 22/25] chore: update gateway contract addresses in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 40e8b24..9f1bfa0 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xD01abCEEeacfC91d2eCE31422DFe531004A7D2e6 + 0xd2d97002Ec87ba57FCf3f6b510f20d5A80A6C33a @@ -98,7 +98,7 @@ npx hardhat run scripts/tron/updateProtocolFee.ts Gateway Implementation - 0xfB411Cc6385Af50A562aFCb441864E9d541CDA67 + 0xd2d97002Ec87ba57FCf3f6b510f20d5A80A6C33a From 976700b6f70940b312db67692e944e32a837edb2 Mon Sep 17 00:00:00 2001 From: Prosper Date: Mon, 30 Sep 2024 15:10:24 +0100 Subject: [PATCH 23/25] chore: update gateway contract addresses in README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 9f1bfa0..297abcb 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,18 @@ npx hardhat run scripts/tron/updateProtocolFee.ts + + Polygon Amoy + Gateway Proxy + 0xCAD53Ff499155Cc2fAA2082A85716322906886c2 + + + Gateway Implementation + 0xd2d97002ec87ba57fcf3f6b510f20d5a80a6c33a + + + + Arbitrum Sepolia Gateway Proxy From c58483f5e00ca0e3011c7662d4991bd7aed8b57a Mon Sep 17 00:00:00 2001 From: Prosper Date: Tue, 1 Oct 2024 14:13:01 +0100 Subject: [PATCH 24/25] chore: update gateway contract addresses and deployment script This commit updates the gateway contract addresses in the config file and the deployment script. It also adds a new implementation address to the config file for the specified chainId. This allows for easier deployment and upgrading of the gateway contract. Refactor the gateway contract to transfer the protocol fee only if it is greater than zero and emit the refund address instead of the sender. This improves the efficiency and accuracy of the gateway contract. --- scripts/config.ts | 7 +++--- scripts/deploy.ts | 21 ++++++++++------ scripts/upgrade.ts | 63 ++++++++++++++++++++++++++++++++++++++++++++-- scripts/utils.ts | 43 +++++++++++++++++++++++++++++++ 4 files changed, 122 insertions(+), 12 deletions(-) diff --git a/scripts/config.ts b/scripts/config.ts index 6c84bbe..15c1a93 100644 --- a/scripts/config.ts +++ b/scripts/config.ts @@ -48,7 +48,7 @@ const NETWORKS = { }, TREASURY_FEE_PERCENT: 100, // in BPS i.e 0.1% GATEWAY_CONTRACT: "0x1FA0EE7F9410F6fa49B7AD5Da72Cf01647090028", - IMPERSONATE_ACCOUNT: "", + IMPLEMENTATION: "", }, /** @@ -154,10 +154,11 @@ const NETWORKS = { * @dev Base Sepolia */ 84532: { + IMPLEMENTATION: "0xff0E00E0110C1FBb5315D276243497b66D3a4d8a", RPC_URL: `https://rpc.shield3.com/v3/0x14a34/${SHIELD3_API_KEY}/rpc`, SUPPORTED_TOKENS: { USDC: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", - DAI: "0x7683022d84f726a96c4a6611cd31dbf5409c0ac9", + DAI: "0x7683022d84f726a96c4a6611cd31dbf5409c0ac9", }, TREASURY_FEE_PERCENT: 100, // in BPS i.e 0.1% GATEWAY_CONTRACT: "0x847dfdAa218F9137229CF8424378871A1DA8f625", @@ -171,7 +172,7 @@ const NETWORKS = { RPC_URL: `https://rpc.shield3.com/v3/0xaa36a7/${SHIELD3_API_KEY}/rpc`, SUPPORTED_TOKENS: { "6TEST": "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B", - DAI: "0x77Ab54631BfBAE40383c62044dC30B229c7df9f5", + DAI: "0x77Ab54631BfBAE40383c62044dC30B229c7df9f5", }, TREASURY_FEE_PERCENT: 100, // in BPS i.e 0.1% GATEWAY_CONTRACT: "0xCAD53Ff499155Cc2fAA2082A85716322906886c2", diff --git a/scripts/deploy.ts b/scripts/deploy.ts index 00f316d..c6246d2 100644 --- a/scripts/deploy.ts +++ b/scripts/deploy.ts @@ -1,5 +1,5 @@ import { ethers, upgrades, network } from "hardhat"; -import { confirmContinue, assertEnvironment } from "./utils"; +import { confirmContinue, assertEnvironment, waitForInput, updateConfigFile } from "./utils"; import hre from "hardhat"; assertEnvironment(); @@ -19,10 +19,10 @@ async function deployGatewayProxy(): Promise { console.log("✅ Deployed Gateway: ", tx.transactionHash); - // const implementationAddress = await contract.implementation(); - + if (network.config.chainId !== undefined) { + await updateConfigFile(network.config.chainId, contract.address); + } console.log(`Proxy Contract Address: ${contract.address}`); - // console.log("Implementation Contract Address:", implementationAddress); return tx; } @@ -46,16 +46,23 @@ async function deployGateway(): Promise { address: contract.address, }); + if (network.config.chainId !== undefined) { + await updateConfigFile(network.config.chainId, contract.address); + } + console.log(`Proxy Contract Address: ${contract.address}`); - // console.log("Implementation Contract Address:", implementationAddress); return tx; } async function main() { - // Deploy Gateway - await deployGateway(); + const response = await waitForInput("\nDo you want to deploy a new Gateway proxy? y/N\n"); + if (response !== "y") { + await deployGateway(); + } else { + await deployGatewayProxy(); + } } main().catch((error) => { diff --git a/scripts/upgrade.ts b/scripts/upgrade.ts index 46c004c..a057739 100644 --- a/scripts/upgrade.ts +++ b/scripts/upgrade.ts @@ -1,11 +1,11 @@ import { ethers, upgrades, network } from "hardhat"; import { NETWORKS } from "./config"; import hre from "hardhat"; -import { confirmContinue } from "./utils"; +import { confirmContinue, waitForInput } from "./utils"; const networkConfig = NETWORKS[network.config.chainId as keyof typeof NETWORKS]; -async function main() { +async function upgradeProxy() { await confirmContinue({ contract: "Gateway", network: network.name, @@ -40,6 +40,65 @@ async function main() { } } +async function manualUpgrade() { + await confirmContinue({ + contract: "Gateway", + network: network.name, + chainId: network.config.chainId, + }); + + try { + + const [signer] = await ethers.getSigners(); // Get the signer (the account performing the upgrade) + const balance = await signer.getBalance(); // Get the balance of the signer's address + + if (balance.eq(0)) { + throw new Error(`Can't upgrade ${network.config.chainId} with 0 balance`); + } + const proxyContractAddress = networkConfig.GATEWAY_CONTRACT; + const proxy = await ethers.getContractAt("TransparentUpgradeableProxy", proxyContractAddress); + // Get the proxy admin address + const proxyAdminAddress = await proxy.admin(); + console.log(`Proxy Admin Address: ${proxyAdminAddress}`); + + // Get the Proxy Admin contract + const proxyAdmin = await ethers.getContractAt("ProxyAdmin", proxyAdminAddress); + + // Check if IMPLEMENTATION exists in networkConfig + if (!('IMPLEMENTATION' in networkConfig)) { + throw new Error(`No implementation address found for chainId: ${network.config.chainId}`); + } + // Fetch the new implementation address from deployment.json + const newImplementationAddress = networkConfig.IMPLEMENTATION; + + if (!newImplementationAddress) { + throw new Error(`No implementation address found for chainId: ${network.config.chainId}`); + } + + console.log(`Upgrading proxy to new implementation: ${newImplementationAddress}`); + + // Call the upgrade function on the Proxy Admin contract + await proxyAdmin.upgrade(proxyContractAddress, newImplementationAddress); + + console.log(`✅ Successfully upgraded proxy at ${proxyContractAddress} to new implementation at ${newImplementationAddress}`); + } catch (error) { + if (error instanceof Error) { + console.error("❌ Upgrade failed: ", error.message); + } else { + console.error("❌ Upgrade failed: Unknown error occurred"); + } + } + +} + +async function main() { + const response = await waitForInput("\nDo you want to deploy and upgrade? y/N\n"); + if (response !== "y") { + await manualUpgrade(); + } else { + await upgradeProxy(); + } +} main().catch((error) => { console.error(error); process.exitCode = 1; diff --git a/scripts/utils.ts b/scripts/utils.ts index 67147b7..7c171ae 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -2,6 +2,8 @@ import readline from "readline"; import dotenv from "dotenv"; import { artifacts, ethers, network } from "hardhat"; import { NETWORKS } from "./config"; +import { promises as fs } from 'fs'; +import * as path from 'path'; const TronWeb = require("tronweb"); dotenv.config(); @@ -86,6 +88,47 @@ export async function confirmContinue(params: any) { } +export async function updateConfigFile(chainId: number, implementationAddress: string): Promise { + try { + const configFilePath = path.join(__dirname, 'config.ts'); + // Read the existing config file + let configContent = await fs.readFile(configFilePath, 'utf-8'); + + // Create a regex to match the network object for the specific chainId + const networkRegex = new RegExp(`(${chainId}:\\s*{[\\s\\S]*?)(},?)`, 'g'); + + if (networkRegex.test(configContent)) { + configContent = configContent.replace(networkRegex, (match) => { + const lines = match.split('\n'); + const updatedLines = lines.map(line => { + if (line.trim().startsWith('IMPLEMENTATION:')) { + return line.replace(/IMPLEMENTATION:.*/, `IMPLEMENTATION: "${implementationAddress}",`); + } + return line; + }); + + if (!updatedLines.some(line => line.trim().startsWith('IMPLEMENTATION:'))) { + // If IMPLEMENTATION doesn't exist, add it before the closing brace + updatedLines.splice(-1, 0, `\t\tIMPLEMENTATION: "${implementationAddress}",`); + } + + return updatedLines.join('\n'); + }); + } else { + console.error(`Network configuration for chainId ${chainId} not found in config file.`); + return; + } + + // Write the updated content back to the file + await fs.writeFile(configFilePath, configContent, 'utf-8'); + + console.log(`Updated config.ts with chainId: ${chainId} and implementation address: ${implementationAddress}`); + } catch (error) { + console.error('Error updating config file:', error); + } +} + + /** * Retrieves the wallet and contract instances. * From 914a8ceed0aeb605669cd01301b1cb4ba38566f2 Mon Sep 17 00:00:00 2001 From: Prosper Date: Tue, 1 Oct 2024 19:32:44 +0100 Subject: [PATCH 25/25] chore: update gateway contract addresses and deployment script - Remove the empty IMPLEMENTATION field in the NETWORKS constant - Update the GATEWAY_IMPLEMENTATION field in the 84532 network - Update the RPC_URL and SUPPORTED_TOKENS fields in the 84532 network - Update the updateConfigFile function to replace IMPLEMENTATION with GATEWAY_IMPLEMENTATION - Fix the condition in the main function to deploy a new Gateway proxy --- scripts/config.ts | 3 +-- scripts/deploy.ts | 5 +++-- scripts/utils.ts | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/config.ts b/scripts/config.ts index 15c1a93..b24cc96 100644 --- a/scripts/config.ts +++ b/scripts/config.ts @@ -48,7 +48,6 @@ const NETWORKS = { }, TREASURY_FEE_PERCENT: 100, // in BPS i.e 0.1% GATEWAY_CONTRACT: "0x1FA0EE7F9410F6fa49B7AD5Da72Cf01647090028", - IMPLEMENTATION: "", }, /** @@ -154,7 +153,7 @@ const NETWORKS = { * @dev Base Sepolia */ 84532: { - IMPLEMENTATION: "0xff0E00E0110C1FBb5315D276243497b66D3a4d8a", + GATEWAY_IMPLEMENTATION: "0xff0E00E0110C1FBb5315D276243497b66D3a4d8a", RPC_URL: `https://rpc.shield3.com/v3/0x14a34/${SHIELD3_API_KEY}/rpc`, SUPPORTED_TOKENS: { USDC: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", diff --git a/scripts/deploy.ts b/scripts/deploy.ts index c6246d2..93021b2 100644 --- a/scripts/deploy.ts +++ b/scripts/deploy.ts @@ -57,8 +57,9 @@ async function deployGateway(): Promise { async function main() { - const response = await waitForInput("\nDo you want to deploy a new Gateway proxy? y/N\n"); - if (response !== "y") { + const response = await waitForInput("\nDo you want to deploy a new Gateway proxy? y\n"); + const responseStr = response as string; // Cast response to string + if (responseStr.toLowerCase() !== "y") { await deployGateway(); } else { await deployGatewayProxy(); diff --git a/scripts/utils.ts b/scripts/utils.ts index 7c171ae..9b72ac4 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -101,15 +101,15 @@ export async function updateConfigFile(chainId: number, implementationAddress: s configContent = configContent.replace(networkRegex, (match) => { const lines = match.split('\n'); const updatedLines = lines.map(line => { - if (line.trim().startsWith('IMPLEMENTATION:')) { - return line.replace(/IMPLEMENTATION:.*/, `IMPLEMENTATION: "${implementationAddress}",`); + if (line.trim().startsWith('GATEWAY_IMPLEMENTATION:')) { + return line.replace(/IMPLEMENTATION:.*/, `GATEWAY_IMPLEMENTATION: "${implementationAddress}",`); } return line; }); - if (!updatedLines.some(line => line.trim().startsWith('IMPLEMENTATION:'))) { + if (!updatedLines.some(line => line.trim().startsWith('GATEWAY_IMPLEMENTATION:'))) { // If IMPLEMENTATION doesn't exist, add it before the closing brace - updatedLines.splice(-1, 0, `\t\tIMPLEMENTATION: "${implementationAddress}",`); + updatedLines.splice(-1, 0, `\t\GATEWAY_IMPLEMENTATION: "${implementationAddress}",`); } return updatedLines.join('\n');